请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册
搜索

本文来自

安全运维工具

安全运维工具

人已关注

请添加对本版块的简短描述

使用yum升级curl

[复制链接]
1620 abc 发表于 2019-1-6 18:49:48
在 RedHat/CentOS 系统中,curl 默认使用的密码学库是 NSS,升级 curl 有两种方法,分别是编译安装和包安装。
编译安装的方法参考《源代码编译curl,让其支持nss》 这篇文章。在这篇文章中,NSS 也是编译安装的,实话实话编译过程还是很艰难的,如果不了解 NSS,很容易失败。
而使用包安装可能是最轻松的方法,这也是本篇文章讲解的重点,我使用 CentOS 6.5 进行讲解,基本上和 RedHat 6.5 版本无差异。
首先思考一个问题,为什么要升级高版本 curl,查看 releases:

https://curl.haxx.se/changes.html#7_61_0
https://curl.haxx.se/docs/releases.html

根本原因在于 curl 7.19 版本不支持 TLS v1.1 以上的协议,如果需要支持 TLS v1.2 版本,至少需要升级到 curl 7.34 版本。
然后查看系统目前安装的 curl 版本:
$ curl -V

curl 7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.21 Basic ECC zlib/1.2.3 libidn/1.18 libssh2/1.4.2
Protocols: tftp ftp telnet dict ldap ldaps http file https ftps scp sftp

7.19 版本 2008年就发布了,目前 CentOS 6 还使用该版本。
其次思考如何升级 curl 包,参考《推荐RHEL&CentOS系统下的几个包仓库》这篇文章,也就是寻找合适的 repo,找了几个 repo,支持的版本都是 7.19。
查看 curl 官方页面 http://curl.haxx.se/download.html#LinuxRedhat,找到对应页面 https://mirror.city-fan.org/ftp/contrib/sysutils/Mirroring,这个页面的介绍非常详细。
成功寻找到一个 repo,接下去介绍安装步骤。
(1)安装 repo
$ rpm -Uvh  http://www.city-fan.org/ftp/cont ... -1.rhel6.noarch.rpm

(2)查看该 repo 包含的 curl 版本
yum --showduplicates list curl --disablerepo="*"  --enablerepo="fan*"
yum --showduplicates list curl --disablerepo="*"  --enablerepo="city*"

输出如下:
Installed Packages
curl.x86_64        7.61.0-6.0.cf.rhel6      @city-fan.org

可见该 repo 包含 7.61 的 curl 安装包。
(3)安装
yum install  "curl-7.61.0-6.0.cf.rhel6.x86_64" --disablerepo="*"  --enablerepo="city*"
yum install "curl-7.63.0-4.0.cf.rhel7.x86_64" --disablerepo="*" --enablerepo="city*"

安装会包 libnghttp2 版本的报错,仔细查看 https://mirror.city-fan.org/ftp/contrib/sysutils/Mirroring 说明,其中说的很清楚:

Additionally, builds for recent Fedora releases and RHEL are linked against libnghttp2. This library is included in Fedora and can be obtained from the EPEL Repository for RHEL.

那么升级 libnghttp2 :
$ yum list libnghttp2  --disablerepo="*"  --enablerepo="epel"  
$ yum install libnghttp2  --disablerepo="*"  --enablerepo="epel"

最后再安装 curl 成功。
(4)查看版本:
$ curl -V

curl --http2 --head -v https://aqzt.com

特别说明的是:
在 curl 7.61 版本中,使用的密码学库从 NSS 替换为 OpenSSL 了,输入以下命令可以看出:
$ curl-config --ssl-backends
    OpenSSL

作者:虞大胆的叽叽喳喳
链接:https://www.jianshu.com/p/a337acb40453           http://www.city-fan.org/ftp/contrib/yum-repo/rhel7/x86_64/
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表