ユムは何らかの理由で破産した

ユムは何らかの理由で破産した

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

これはyumの問題ではなくpycurlの問題かもしれません。 Python端末を開き、次のように入力してテストできます。

import pycurl

エラーメッセージが表示されます。これは、NetWorkerやMatlab Compiler Runtimeなどの一部のソフトウェアにpycurlと競合する独自のカールバージョンがあるためです。 MATLABをほとんど使用しないため、MCRを削除して問題を解決しました。競合を避けるために、パス変数を変更してみることもできます。

答え3

Lilaの回答が正しい可能性が高いです。問題を特定して解決する方法に関する追加情報を提供するために、この情報を回答として追加します。

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

関連情報