我正在尝试安装 MySQL 客户端,但收到这条恼人的消息。我仍然无法找到正确的答案。
[root@localhost Downloads]# yum install mysql-bench
There was a problem importing one of the Python modules
required to run yum. The error leading to this problem was:
/usr/lib64/python2.7/site-packages/pycurl.so: undefined symbol: CRYPTO_num_locks
Please install a package which provides this module, or
verify that the module is installed correctly.
It's possible that the above module doesn't match the
current version of Python, which is:
2.7.5 (default, Jun 17 2014, 18:11:42)
[GCC 4.8.2 20140120 (Red Hat 4.8.2-16)]
If you cannot solve this problem yourself, please go to
the yum faq at:
http://yum.baseurl.org/wiki/Faq
答案1
从 rpmfind.net 或您首选的镜像下载最新版本的 libcurl rpm 并运行:
rpm -e --nodeps libcurl rpm -ivh libcurl
PS:我认为你的问题与虫虫 960765
答案2
这可能是 pycurl 的问题,而不是 yum 的问题。您可以通过打开 python 终端并输入来测试这一点
import pycurl
您应该会收到一条错误消息。这是因为某些软件(例如 NetWorker 和 Matlab Compiler Runtime)有自己的 curl 版本,与 pycurl 冲突。我通过删除MCR解决了我的问题,因为我很少使用MATLAB。您还可以尝试更改路径变量以避免冲突。
答案3
莉拉的回应很可能是正确的 - 我添加此信息作为答案,以便为您提供有关如何确认和解决问题的更多信息。
您可以通过运行 yum 和 strace 来查看正在调用哪个库:
strace yum install mysql-bench
查找与此类似的行:
open("/usr/lib/libcurl.so.4", O_RDONLY) = 9
如果它是 64 位系统 libcurl 通常位于 /usr/lib64 中,那么像上面这样的结果可能表明存在问题。通过找出哪些 rpm 提供了库来确认。
重要 - 我假设 strace 提供了与上面相同的路径和版本。您必须将我正在使用的路径替换为 strace 指示的任何路径。
rpm -qf /usr/lib/libcurl.so.4
如果 rpm 不是 pycurl,则应指示提供干扰库版本的第三方。
直接使用rpm卸载干扰包。
sudo rpm -e pkgname