琐碎笔记

解决 cURL 报错 “curl: undefined symbol: curl_mime_free”

佩佩 · 4月13日 · 2020年 · · · · · · · 3323次查看

说明

记一次 curllibcurl 版本与当前安装的 curl 版本不一致引发的报错。

问题引发来源

报错信息

最近在一台VPS上运行curl命令居然运行失败,报错如下:

curl: symbol lookup error: curl: undefined symbol: curl_mime_free

解决

Google 了一番,得知可能是因为libcurl版本与当前安装的 curl 版本不一致引发的,所以解决如下:

yum upgrade libcurl curl

遗憾的是,如上操作无果,提示无可用的更新包。

[[email protected] ~]# yum upgrade libcurl curl
Loaded plugins: fastestmirror
Determining fastest mirrors
epel/x86_64/metalink                                                      |  17 kB  00:00:00     
 * base: mirror.keystealth.org
 * epel: mirrors.sonic.net
 * extras: mirror.centos.lax1.serverforge.org
 * updates: mirror.keystealth.org
base                                                                      | 3.6 kB  00:00:00     
epel                                                                      | 4.7 kB  00:00:00     
extras                                                                    | 2.9 kB  00:00:00     
updates                                                                   | 2.9 kB  00:00:00     
(1/2): epel/x86_64/updateinfo                                             | 1.0 MB  00:00:00     
(2/2): epel/x86_64/primary_db                                             | 6.8 MB  00:00:00     
No packages marked for update

可能是系统自带的更新源没有可用的更新,于是给系统增加一个源:

rpm -ivh http://mirror.city-fan.org/ftp/contrib/yum-repo/city-fan.org-release-2-1.rhel7.noarch.rpm

强制通过刚才添加的源更新库文件:

yum --enablerepo=city-fan.org install libcurl libcurl-devel

一路 y 确认即可。再来运行下 curl 指令:

[[email protected] ~]# curl
curl: try 'curl --help' or 'curl --manual' for more information

偶了!成功解决。

原因

原因是之前在测试HTTP/3文章《Nginx 配置启用 Quiche 和 HTTP/3.0》时特意编了译开发版的curl,使其能够支持HTTP/3请求。但是系统默认自带的有libcurl,但编译时并没有一并将系统自带的libcurl给更新到最新。而且直接替换了libcurl的软连接,导致再次运行系统原来已安装的稳定版的curl时,找不到与稳定版相对应的libcurl,所以就运行不了啦。


本文作者:佩佩
原文链接:https://www.nange.cn/error-for-curl.html
版权声明:若无特殊注明,文章均为本站【楠格】原创,并以《知识共享署名-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》协议进行许可,转载时请以超链接形式标明文章原始出处和作者信息,否则谢绝转载!

0 条回应