BT6*_*643 5 ubuntu installation curl ubuntu-12.04
我以前在 Ubuntu 12.04 Server 上有 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
Run Code Online (Sandbox Code Playgroud)
完成所有操作后,我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,尽管在其他衍生版本中从源代码构建应该基本上是相同的过程。包管理的上游 文档 最终是最权威的智慧来源。
套餐在很多方面让您的生活更轻松:
检查Debian和 Ubuntu的官方存储库中可以找到哪些版本
本指南的其余部分将假设命令由具有 sudo 访问权限的非 root 用户运行
$ sudo -l
Run Code Online (Sandbox Code Playgroud)
安装构建、重新编译和打包所需的基础设施
$ sudo aptitude install build-essentials devscripts 被子
当您想要激活/停用预编译二进制文件中默认构建的某些功能、应用额外补丁、向后移植功能、使用编译时优化(针对特定平台、强化选项)时,就会出现这种情况。步骤是:
创建一个临时目录来工作
$ mkdir ~/temp && cd ~/temp
Run Code Online (Sandbox Code Playgroud)
获取源码包
$ apt-get source curl
Run Code Online (Sandbox Code Playgroud)
或者(如果您没有指向稳定版本的deb-src
行sources.list
),您可以从网络获取 .dsc 文件,对于当前的稳定版本,这将是
$ dget http://security.debian.org/debian-security/pool/updates/main/c/curl/curl_7.21.0-2.1+squeeze3.dsc
Run Code Online (Sandbox Code Playgroud)
两种替代方法中的任何一种都将
检查 debian/rules makefile
$ cd curl*
$ vi debian/rules
Run Code Online (Sandbox Code Playgroud)
这是打包过程的主要 makefile,您可以在此处查看可选的配置选项,还可以启用/禁用有关将构建的所有包(服务器、代理、代理)的功能
用被子检查补丁
假设您对 未应用的一个或多个发行版补丁感兴趣。要检查源中可用的补丁,请使用
$ quilt series
Run Code Online (Sandbox Code Playgroud)
检查已应用的补丁(在此阶段列表应该相同)
$ quilt applied
Run Code Online (Sandbox Code Playgroud)
恢复所有补丁
$ quilt pop -a
Run Code Online (Sandbox Code Playgroud)
可选择删除不需要的
$ quilt delete -r $patch_name
Run Code Online (Sandbox Code Playgroud)
应用其余补丁
$ quilt push -a
Run Code Online (Sandbox Code Playgroud)
安装要重新编译的包的依赖项
$ apt-get build-dep curl
Run Code Online (Sandbox Code Playgroud)
可选择标记包裹
$ dch -l +local 'Rebuilt from sources'
Run Code Online (Sandbox Code Playgroud)
如果您需要添加更详细的变更日志条目,请检查 dch 联机帮助页。
最后重新编译包
$ debuild -us -uc
Run Code Online (Sandbox Code Playgroud)
处理完成后,在zabbix-*目录外,会发现刚刚编译好的deb包,准备安装
$ sudo dpkg -i $deb_package
Run Code Online (Sandbox Code Playgroud)
此过程称为向后移植
以下预防措施适用
该过程与稳定版本的重建相同,但源包除外,可以使用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
Run Code Online (Sandbox Code Playgroud)
或者再次使用网络
$ dget http://ftp.de.debian.org/debian/pool/main/c/curl/curl_7.30.0-1.dsc
Run Code Online (Sandbox Code Playgroud)
额外的预防措施是对软件包进行标记,以便在需要卸载时轻松识别。
$ dch -l ~local 'Sid backport'
Run Code Online (Sandbox Code Playgroud)
该过程的其余部分是相同的,结果将是向后移植的软件包,可以与其余部分一起安装。
如果您想要或需要比 Sid 中可以找到的版本更新的版本,您仍然可以检查实验 存储库和 管理器的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
Run Code Online (Sandbox Code Playgroud)
此后,必须审查 debian/patches 中的所有补丁,以确定它们是否仍然有用或必须丢弃。如上所述使用被子。完成重新编译过程标记
$ dch -l ~local 'Upstream packaging'
Run Code Online (Sandbox Code Playgroud)
重建
$ debuild -us -uc
Run Code Online (Sandbox Code Playgroud)
并安装
$ sudo dpkg -i $deb_package
Run Code Online (Sandbox Code Playgroud)
包裹。
有些人发现 Debian 打包系统过于复杂,但仍然希望受益于使用打包软件的优势。有些项目试图解决这种情况。这里给出了一个列表,但使用这些工具的细节留给读者作为练习。
归档时间: |
|
查看次数: |
3663 次 |
最近记录: |