AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 503555
Accepted
BT643
BT643
Asked: 2013-04-30 05:34:27 +0800 CST2013-04-30 05:34:27 +0800 CST 2013-04-30 05:34:27 +0800 CST

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

  • 772

我以前在 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

ubuntu
  • 1 1 个回答
  • 3145 Views

1 个回答

  • Voted
  1. Best Answer
    dawud
    2013-04-30T08:24:08+08:002013-04-30T08:24:08+08:00

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

    在 Debian 和衍生产品(Mepis、Mint、Ubuntu)中从源代码重建包

    本指南将主要关注 Debian,尽管在其他衍生产品中从源代码构建应该基本上是相同的过程。包管理的上游 文档 最终是最权威的智慧来源。

    为什么要选择打包而不是“make install”?

    套餐在许多方面让您的生活更轻松:

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

    源码包在哪里?/

    检查在Debian和 Ubuntu的官方存储库中可以找到哪些版本

    本指南针对以下场景

    1. 您正在使用 Debian 稳定版,并希望从源代码重建以更改一些默认选项
    2. 您正在使用 Debian 稳定版,并希望使用测试版或不稳定版
    3. 你想从上游源构建一个 deb 包
    4. 官方 Debian 打包系统的替代品

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

    $ sudo -l
    
    • 在您的 sources.list 中激活源存储库
    • 安装构建、重新编译和打包所需的基础设施

      $ sudo aptitude install build-essentials devscripts 被子

    1. 您正在使用 Debian 稳定版,并且想要重建源代码

    当您想要激活/停用预编译二进制文件中默认构建的某些功能、应用额外补丁、向后移植功能、使用编译时优化(针对特定平台、强化选项)时,就会出现这种情况。步骤是:

    创建一个临时目录以在其中工作

    $ mkdir ~/temp && cd ~/temp
    

    获取源码包

    $ apt-get source curl 
    

    或者(如果您没有 指向稳定版本的deb-src行),您可以从网上获取 .dsc 文件,对于当前稳定版本,这将是sources.list

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

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

    1. 从存储库中获取源
    2. 验证包的加密签名
    3. 应用所有特定于发行版的补丁

    检查 debian/rules 生成文件

    $ cd curl*
    $ vi debian/rules
    

    这是打包过程的主要 makefile,您可以在此处查看可选的配置选项,还可以启用/禁用有关将构建的所有包(服务器、代理、代理)的功能

    用被子检查补丁

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

    $ quilt series
    

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

    $ quilt applied
    

    还原所有补丁

    $ quilt pop -a
    

    可选择删除不需要的

    $ quilt delete -r $patch_name
    

    应用其余补丁

    $ quilt push -a
    

    安装你要重新编译的包的依赖

    $ apt-get build-dep curl
    

    可选择标记包裹

    $ dch -l +local 'Rebuilt from sources'
    

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

    最后,重新编译包

    $ debuild -us -uc
    

    处理完成后,在zabbix-*目录外,会发现刚才编译好的deb包,准备安装

    $ sudo dpkg -i $deb_package
    

    2.你使用的是Debian stable,想用testing或者unstable的版本

    此过程称为向后移植

    以下预防措施适用

    • 该软件包可能根本不适合您
    • 为了构建它可能需要更新的依赖项
    • 为了构建它可能需要额外的包
    • 包装布局可能已更改

    该过程与为稳定版本重建相同,但源包除外,源包可以使用 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
    

    或者再次使用网络

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

    一个额外的预防措施是标记软件包,以便在需要卸载时轻松识别。

    $ dch -l ~local 'Sid backport'
    

    其余过程是相同的,结果将是可以与其余部分一起安装的反向移植包。

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

    如果您想要或需要比 Sid 中可以找到的版本更新的版本,您仍然可以检查实验 存储库和 mantainer(s) 的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'
    

    重建

    $ debuild -us -uc
    

    并安装

    $ sudo dpkg -i $deb_package
    

    包裹。

    4. 官方 Debian 打包系统的替代品

    有些人发现 Debian 打包系统过于复杂,但仍想从使用打包软件的优势中获益。存在一些试图解决这种情况的项目。这里给出了一个列表,但是使用这些工具的细节留给读者作为练习。

    • 检查安装
    • fpm及其配套工具fpm-cookery
    • 1

相关问题

  • 无法通过 Ubuntu VPN 访问外部网络

  • ubuntu apt-get upgrade - 如何在 shell 中单击确定?

  • VirtualBox 上 Ubuntu 的访客优化技巧 [关闭]

  • 外部硬盘上的 virtualbox 虚拟硬盘驱动器(Vista 主机上的 ubuntu 客户机)

  • 如何在 Ubuntu 上挂载 LVM 分区?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve