yumが使えない | CentOS 6.7

NO IMAGE
         

この記事は1年以上前に更新されたものです。内容が古い可能性がありますのでご注意ください。

序章

メインのwindows8.1をwindows10に無償アップデートし、大きなトラブルもなく過ごしていたため
開発用VPSのCentOSもパッケージ更新を行ってみました。(目的がなければトラブルのもと…)

しかも、何も考えずにyum update -yでリポジトリにremiを指定して行ったため、ほぼ全てのパッケージが更新。

時既に遅し。
yumコマンドが使えない。

(お急ぎで、解決方法だけサクッと知りたい方はこちらへ)

 

yum updateや、yum installを叩くと以下のエラーメッセージ

# yum update
There was a problem importing one of the Python modules
required to run yum. The error leading to this problem was:

   /usr/lib64/libcurl.so.4: undefined symbol: ldap_init_fd

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.6.6 (r266:84292, Jul 23 2015, 15:22:56) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-11)]

If you cannot solve this problem yourself, please go to 
the yum faq at:
  http://yum.baseurl.org/wiki/Faq

いろいろなサイトをさまよった結果、Pythonのバージョンが上がるとyumが使えないという情報が多かったのですが、今回はPythonのバージョンに変更なし(Python 2.6.6)
よって、Pythonの線は消えて、さらに彷徨うこと小一時間。

curlでエラー

curlになっていることが判明。
確かにremiアップデートにありました・・・。

# rpm -qa | grep curl
curl-7.29.0-19.el5.remi.x86_64
python-pycurl-7.19.0-8.el6.x86_64
libcurl-7.29.0-19.el5.remi.x86_64

復旧への道

  • curl-7.29.0-19.el5.remi.x86_64
  • libcurl-7.29.0-19.el5.remi.x86_64

このパッケージを元に戻せばいいことまではわかったので、更にgoogle先生に聞いてみました。
参考にさせていただいたサイト:

それぞれ、rpmファイルをゲットしてダウングレードする方法ですが、なんせrpmファイルがリンク切れ(2015/08/13時点)

階層を変えてみてみましたが、欲しいrpmは存在せず。

ftp://ftp.jaist.ac.jp/pub/Linux/CentOS/6/updates/x86_64/Packages/
http://ftp.riken.jp/Linux/centos/6/updates/x86_64/Packages/

次はrpmファイル探しの旅へ。

解決方法

最終的にrpmfind.netから探し、以下のパッケージ群で直りました。
※ディレクトリは適宜読み替えてください。

# cd /tmp
# wget ftp://fr2.rpmfind.net/linux/centos/6.7/os/x86_64/Packages/libcurl-7.19.7-46.el6.x86_64.rpm
# wget ftp://rpmfind.net/linux/centos/6.7/os/x86_64/Packages/libssh2-1.4.2-1.el6_6.1.x86_64.rpm
# wget ftp://rpmfind.net/linux/centos/6.7/os/x86_64/Packages/curl-7.19.7-46.el6.x86_64.rpm
# rpm -Uvh --oldpackage *.rpm

確認
# rpm -qa | grep curl
python-pycurl-7.19.0-8.el6.x86_64
curl-7.19.7-46.el6.x86_64
libcurl-7.19.7-46.el6.x86_64

教訓

サーバのupdateは慎重に!