我以前在 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?
有没有人有关于升级与更高版本相关的所有 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)中从源代码重建包
本指南将主要关注 Debian,尽管在其他衍生产品中从源代码构建应该基本上是相同的过程。包管理的上游 文档 最终是最权威的智慧来源。
为什么要选择打包而不是“make install”?
套餐在许多方面让您的生活更轻松:
源码包在哪里?/
检查在Debian和 Ubuntu的官方存储库中可以找到哪些版本
本指南针对以下场景
本指南的其余部分将假定命令由具有 sudo 访问权限的非根用户运行
安装构建、重新编译和打包所需的基础设施
$ sudo aptitude install build-essentials devscripts 被子
1. 您正在使用 Debian 稳定版,并且想要重建源代码
当您想要激活/停用预编译二进制文件中默认构建的某些功能、应用额外补丁、向后移植功能、使用编译时优化(针对特定平台、强化选项)时,就会出现这种情况。步骤是:
创建一个临时目录以在其中工作
获取源码包
或者(如果您没有 指向稳定版本的
deb-src
行),您可以从网上获取 .dsc 文件,对于当前稳定版本,这将是sources.list
两种替代方法中的任何一种都将
检查 debian/rules 生成文件
这是打包过程的主要 makefile,您可以在此处查看可选的配置选项,还可以启用/禁用有关将构建的所有包(服务器、代理、代理)的功能
用被子检查补丁
假设您对一个或多个 未应用的发行版补丁感兴趣。要检查源中有哪些补丁可用,请使用
检查已经应用的补丁(在这个阶段列表应该是相同的)
还原所有补丁
可选择删除不需要的
应用其余补丁
安装你要重新编译的包的依赖
可选择标记包裹
如果您需要添加更详细的更改日志条目,请查看 dch 联机帮助页。
最后,重新编译包
处理完成后,在zabbix-*目录外,会发现刚才编译好的deb包,准备安装
2.你使用的是Debian stable,想用testing或者unstable的版本
此过程称为向后移植
以下预防措施适用
该过程与为稳定版本重建相同,但源包除外,源包可以使用 sources.list 中的这样一行从 apt 存储库获得(注意,只有两种选择之一)
或者再次使用网络
一个额外的预防措施是标记软件包,以便在需要卸载时轻松识别。
其余过程是相同的,结果将是可以与其余部分一起安装的反向移植包。
3. 你想从上游源构建一个 deb 包
如果您想要或需要比 Sid 中可以找到的版本更新的版本,您仍然可以检查实验 存储库和 mantainer(s) 的git 存储库,看看是否有一些东西在工作中。除此之外,您需要使用上游项目仓库,但仍然可以从 Debian 打包结构中获益。为此,可以下载最新稳定版或 alpha 版的快照。因此,在如上所述从发行版(Debian 或 Ubuntu,视情况而定)存储库下载源包之后,接下来的步骤将是(可能会因使用的版本而异):
在此之后,必须检查 debian/patches 中的所有补丁以确定它们是否仍然有用或必须丢弃。如上所述使用被子。完成重新编译过程标记
重建
并安装
包裹。
4. 官方 Debian 打包系统的替代品
有些人发现 Debian 打包系统过于复杂,但仍想从使用打包软件的优势中获益。存在一些试图解决这种情况的项目。这里给出了一个列表,但是使用这些工具的细节留给读者作为练习。