写点什么

升级 curl 版本,及升级后引起的动态库链接不正常问题的解决

  • 2025-12-19
    北京
  • 本文字数:802 字

    阅读完需:约 3 分钟

本文分享自天翼云开发者社区《升级curl版本,及升级后引起的动态库链接不正常问题的解决》.作者:李****壮

服务器使用的 curl,可能版本较低,无法支持请求 ipv6 地址等新功能,此时,就需要升级 curl 版本。一般的云源提供的版本本身较低,需要指定特定的云源进行升级。升级后,部分机器会产生动态库链接不正确的问题,虽然 curl 程序已升级到最新,但未正确链接对应最新版本的动态库,导致 curl 程序的执行错误。需要重新建立 curl 程序与动态库的链接。

以下介绍针对 centos 系统

一、新建 yum 源

通过

vi /etc/yum.repos.d/city-fan.repo  

 

插入以下内容

[CityFanforCurl]

name=City Fan Repo

baseurl=http://www.city-fan.org/ftp/contrib/yum-repo/rhel7/x86_64/

enabled=0

gpgcheck=0

 

新建一个云源,支持较新版本的 curl 的升级,如果有其他合适的云源,也可以不用这个云源

 

指定该云源对 curl 升级

yum update curl --enablerepo=CityFanforCurl -y

 

二、可能出现 libcurl 不匹配的问题及解决

 

更新完 curl 以后,执行 curl 命令,可能存在 curl 执行不了,报错的问题,此时,可能是 curl 链接的动态库不正确,链接到老版本 curl 的动态库。

 

先查找 curl 使用的 libcurl 动态库

ldd /usr/bin/curl | grep libcurl

看到当前 curl 程序,链接的动态库是/usr/local/lib/libcurl.so.4

 

查看使用的/usr/local/lib/libcurl.so.4 动态库的详细信息

ls -al /usr/local/lib/libcurl.so.4

可以看到,/usr/local/lib/libcurl.so.4 实际只是一个软链接,真实使用的动态库是 libcurl.so.4.4.0。而安装的 curl 版本更新。 

 

查找所有的 libcurl 动态库

find / -name "libcurl.*"

我们需要链接最新版本的动态库 /usr/lib64/libcurl.so.4.8.0

 

建立引用使用最新的 libcurl 库

rm /usr/local/lib/libcurl.so.4

ln -s /usr/lib64/libcurl.so.4.8.0 /usr/local/lib/libcurl.so.4

 

查看链接是否正确

ls -al /usr/local/lib/libcurl.so.4

已经成功建立链接

 

再次测试 curl,发现已经可以正常使用了

用户头像

还未添加个人签名 2022-02-22 加入

天翼云是中国电信倾力打造的云服务品牌,致力于成为领先的云计算服务提供商。提供云主机、CDN、云电脑、大数据及AI等全线产品和场景化解决方案。

评论

发布
暂无评论
升级curl版本,及升级后引起的动态库链接不正常问题的解决_测试_天翼云开发者社区_InfoQ写作社区