在命令之间报告不同版本的libcurl

我以前有在Ubuntu 12.04服务器cURL 7.22.0 ..但我现在需要升级到cURL 7.30.0。

我已经做了以下编译这个版本的Ubuntu:

wget http://curl.haxx.se/download/curl-7.30.0.tar.gz tar -xvzf curl-7.30.0.tar.gz cd curl-7.30.0/ ./configure --prefix=/usr make clean make make install 

做了所有我跑curl --version期待看到新版本安装。 cURL已经按预期更新到了7.30.0,但是libcurl没有:

curl 7.30.0 (i686-pc-linux-gnu) libcurl/7.22.0 OpenSSL/1.0.1 zlib/1.2.3.4 libidn/1.23 libssh2/1.2.8 librtmp/2.3 Protocols: dict file ftp ftps gopher http https imap imaps ldap pop3 pop3s rtmp rtsp scp sftp smtp smtps telnet tftp Features: GSS-Negotiate IDN IPv6 Largefile NTLM NTLM_WB SSL libz TLS-SRP

但是,如果我运行curl-config --version我得到libcurl 7.30.0这是正确的。

任何人都可以解释为什么版本号有所不同? 如何让他们都显示正确的7.30.0?

有没有人有任何教程/build议/任何帮助在适当的方式升级所有cURL相关的更高版本。 这个话题似乎是令人难以置信的在线,不知道为什么:/

谢谢

编辑 –以下其中一个评论,这里有一些额外的信息:

which curl-config/usr/bin/curl-config

which curl/usr/bin/curl

whereis curl curl: /usr/bin/curl /usr/include/curl /usr/share/man/man1/curl.1.gz /usr/share/man/man1/curl.1

whereis libcurl提供libcurl: /usr/lib/libcurl.a /usr/lib/libcurl.so /usr/lib/libcurl.la /usr/share/man/man3/libcurl.3

echo $PATH/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

我正在复制一个我为zabbix wiki写的小教程,希望它有用。

在Debian和衍生产品(Mepis,Mint,Ubuntu)中从源代码重build软件包

本指南将主要集中在Debian,尽pipe从其他衍生产品的源头build立应该基本上是相同的过程。 关于包pipe理的上游文件最终是最权威的智慧来源。

为什么要select“make install”包装?

包在许多方面使你的生活更轻松:

  1. 您可以使用存储库轻松地在许多系统上部署软件包
  2. 你可以安装和删除它们干净的方式
  3. 跟踪其他包的依赖关系
  4. 有一个更新configuration文件的策略

源代码包在哪里?/

检查在Debian和Ubuntu官方软件仓库中可以find哪些版本

本指南解决以下情况

  1. 您正在使用Debian稳定版,并希望从源重build以更改某些默认选项
  2. 您正在使用Debian stable,并且想要在testing中使用该版本或者不稳定
  3. 你想从上游来源build立一个deb包
  4. 官方Debian包装系统的替代品

本指南的其余部分将假定这些命令由具有sudo访问权限的非root用户运行

 $ sudo -l 
  • 激活 source.list中的源代码库
  • 安装build设,重新编译和打包所需的基础设施

    $ sudo aptitude install build-essentials devscripts quilt

1.您正在使用Debian stable,并且想要重build源代码

当您想要激活/停用某些在预编译的二进制文件中默认生成的特性,应用额外的补丁,回溯特性,使用编译时优化(针对特定平台, 强化选项)时,就会出现这种情况。 步骤是:

创build一个临时目录来工作

 $ mkdir ~/temp && cd ~/temp 

获取源码包

 $ apt-get source curl 

或者(如果你的sources.list指向stable版本的deb-src行),你可以从web上获得.dsc文件,

 $ dget http://security.debian.org/debian-security/pool/updates/main/c/curl/curl_7.21.0-2.1+squeeze3.dsc 

两种替代方法中的任何一种都可以

  1. 从存储库中获取来源
  2. validation包的encryption签名
  3. 应用所有发行版特定的补丁

检查debian / rules的makefile

 $ cd curl* $ vi debian/rules 

这是打包过程的主要生成文件,在这里您可以查看可选的configuration选项,还可以启用/禁用所有将要构build的软件包(服务器,代理,代理)

用被子审查补丁

假设您对一个或多个应用的发行版补丁感兴趣。 要检查源中可用的修补程序,请使用

 $ quilt series 

检查已经应用的补丁(在这个阶段,列表应该是相同的)

 $ quilt applied 

还原所有的补丁

 $ quilt pop -a 

可以select删除不需要的

 $ quilt delete -r $patch_name 

应用其余的补丁

 $ quilt push -a 

安装要重新编译的包的依赖关系

 $ apt-get build-dep curl 

可以select标记包

 $ dch -l +local 'Rebuilt from sources' 

如果您需要添加更详细的更改日志条目,请检查dch联机帮助页。

最后,重新编译这个包

 $ debuild -us -uc 

在这个过程之后,在zabbix- *目录之外,你会发现刚编译的deb包,准备安装

 $ sudo dpkg -i $deb_package 

2.您正在使用Debian stable,并且想要在testing中使用该版本或者不稳定

这个过程被称为backporting

以下预防措施适用

  • 这个软件包可能根本无法为你打造
  • 为了构build它可能需要更新的依赖关系
  • 为了构build它可能需要额外的软件包
  • 包装布局可能已经改变

这个过程和稳定版本的重build过程是一样的,除了源代码包之外,可以从你的sources.list中使用类似这样的一行来从apt存储库中获得源代码包(注意,这两个选项中只有一个)

 deb-src http://ftp.de.debian.org/debian/ testing main non-free contrib deb-src http://ftp.de.debian.org/debian/ unstable main non-free contrib 

或者再次使用networking

 $ dget http://ftp.de.debian.org/debian/pool/main/c/curl/curl_7.30.0-1.dsc 

如果需要卸载,还需要额外的注意事项来标记软件包以方便识别。

 $ dch -l ~local 'Sid backport' 

其余的过程是相同的,结果将是backported软件包,可以安装在其余的。

3.你想从上游来源构build一个deb包

如果你想要或者需要一个比Sid中可以find的版本更新的版本,你仍然可以检查实验库,以及mantainer的git仓库,看看有没有什么工作。 除此之外,您需要使用上游项目回购,但是可以从Debian包装结构中受益。 为此,可以下载最新的稳定或alpha版本的快照。 所以,从上面列出的发行版(Debian或Ubuntu,如适用)下载源码包之后,接下来的步骤是(可能适用的版本有所不同):

  $ wget https://github.com/bagder/curl/archive/curl-7_30_0.zip $ mv master.zip curl-7.30.0.zip $ cd curl-${stable} $ uupdate ../curl-7.30.0.zip -v 7.30.0 $ cd ../curl-7.30.0 

之后,必须检查debian / patches中的所有补丁,以确定它们是否仍然有用或必须被丢弃。 如上所述使用被子。 完成重新编译过程标记

 $ dch -l ~local 'Upstream packaging' 

重build

 $ debuild -us -uc 

并安装

 $ sudo dpkg -i $deb_package 

包裹。

4.替代官方的Debian包装系统

有些人发现Debian的打包系统过于复杂,但仍然希望从使用打包软件的好处中受益。 有些项目试图解决这种情况。 这里给出了一个列表,但是使用这些工具的细节留给读者来练习。

  • 检查安装
  • fpm及其配套工具fpm-烹饪