I am trying to install MySQL Client I am getting this annoying message. I am still unable to find the proper answer.

[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:
  • 1
    It sounds like your system is missing a Python cryptographic library file that is required by yum. You should get better diagnostic information by launching the python command interpreter and entering import yum. You can then edit your question to include this information. – Anthony Geoghegan Apr 1 '15 at 8:46

Download the latest version of the libcurl rpm from rpmfind.net or your preferred mirror and run: rpm -e --nodeps libcurl rpm -ivh libcurl

PS: I think that your problem is same as Bugzilla 960765

| improve this answer | |

This is probably a problem with pycurl, not with yum. You can test this by opening a python terminal and entering

import pycurl

You should get an error message. This is because some software, such as NetWorker and Matlab Compiler Runtime, has its own version of curl that conflicts with pycurl. I solved my problem by deleting MCR, because I rarely use MATLAB. You could also try changing path variables to avoid the conflict.

| improve this answer | |

Lila's response is very likely correct- I'm adding this info as an answer to give you more info on how to confirm and fix the issue.

You can see which library is being called by running yum with strace:

strace yum install mysql-bench

Look for a line similar to this:

open("/usr/lib/libcurl.so.4", O_RDONLY) = 9

If its a 64 bit system libcurl is usually in /usr/lib64 so a result like above is probably indicating an issue. Confirm by finding out what rpm provided the library.

Important- I'm assuming strace provided the same path and version as above. You have to replace the path I'm using with whatever strace indicated.

rpm -qf /usr/lib/libcurl.so.4

That should indicate the third party that provided the interfering library version, if the rpm is not pycurl.

Use rpm directly to uninstall the interfering package.

sudo rpm -e pkgname
| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.