pycurl.so: undefined symbol解决方法

本文解决CentOS7系统中因libcurl.so链接问题导致的yum错误。通过删除高版本的libcurl.so并重新加载ldconfig,确保仅有一个libcurl.so.4链接,最终修复了错误。

centos7的系统yum报如下错误:

/usr/lib64/python2.7/site-packages/pycurl.so: undefined symbol: CRYPTO_num_locks

解决方法:

使用ldconfig -p | grep curl查看libcurl.so的链接情况

分别查看libcurl.so.4链接的文件

删除其中高版本的,这里删的是libcurl.so.4.5.0

删除之后使用命令ldconfig重新加载

加载完成后使用ldconfig -p | grep curl查看libcurl.so的链接情况,保证只有一个libcurl.so.4,如图:

现在更新一下yum cache就可以用了

在 CentOS 7 系统中,使用 `yum` 时遇到 `/usr/lib64/python2.7/site-packages/pycurl.so: undefined symbol: CRYPTO_num_locks` 错误,通常是由于 `pycurl` 模块与当前系统中使用的 OpenSSL 版本不兼容所致。此问题通常出现在系统升级了 OpenSSL 库之后,导致 `pycurl` 仍试图调用旧版本中已弃用的符号 `CRYPTO_num_locks`,而该符号在新版本中已被移除[^1]。 ### 问题原因 `pycurl` 是基于 `libcurl` 构建的 Python 模块,而 `libcurl` 又依赖于系统的 OpenSSL 库。当 OpenSSL 被升级到 1.1.x 版本后,`CRYPTO_num_locks` 函数已被移除,但旧版本的 `pycurl` 仍尝试调用该函数,从而引发符号未定义错误。这种情况会导致 `yum` 命令无法正常运行,因为 `yum` 依赖于 Python 的 `pycurl` 模块进行网络请求[^2]。 ### 解决方案 #### 方法一:更新 `pycurl` 模块 通过升级 `pycurl` 到兼容 OpenSSL 1.1.x 的版本(如 7.43.0 及以上),可以解决此问题。由于系统自带的 `pycurl` 可能无法直接升级,建议使用 `pip` 安装新版: ```bash pip install pycurl --upgrade --ignore-installed ``` 此操作将覆盖系统默认的 `pycurl` 模块,并使用与新版本 OpenSSL 兼容的实现,从而修复符号缺失问题[^3]。 #### 方法二:回退 OpenSSL 版本 如果无法升级 `pycurl`,可以考虑将 OpenSSL 降级到 1.0.x 版本。此方法适用于无法更改 `pycurl` 的环境,但需要注意降级 OpenSSL 可能会影响其他依赖其新功能的服务。 ```bash # 安装 EPEL 仓库 yum install epel-release # 安装旧版本 OpenSSL yum downgrade openssl-1.0.2k-21.el7_9.x86_64 ``` 此操作需确保系统中所有依赖 OpenSSL 的服务兼容 1.0.x 版本,否则可能导致其他组件异常。 #### 方法三:使用替代源重新安装 `pycurl` 如果系统中已有多个版本的 Python 或 `pycurl` 混乱,建议使用 `easy_install` 或 `pip` 指定 Python 2.7 的路径重新安装: ```bash /usr/bin/easy_install-2.7 pycurl ``` 此方式可确保新版本的 `pycurl` 被正确安装到 Python 2.7 的路径下,避免与系统模块冲突[^4]。 ### 验证修复 完成上述操作后,运行以下命令验证 `yum` 是否恢复正常: ```bash yum clean all yum makecache yum update ``` 若不再出现 `undefined symbol: CRYPTO_num_locks` 错误,则表示问题已解决。 ###
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

高晓伟_Steven

相逢即是有缘,动力源于金钱。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值