由于某种原因百胜破产了

由于某种原因百胜破产了

我正在尝试安装 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

相关内容