敷布団にクールシーツを使うようになって、寝返りが極上に気持ちよくなったなあと思っていたある日、yumを叩くと「セグメンテーション違反です」と怒ってくるようになった。
ググるとすでにソリューションはいろいろあがっている。
https://www.google.co.jp/search?q=yum+セグメンテーション違反です
しかし
$ sudo rm -f /var/lib/rpm/__db.00* $ sudo rpm –rebuilddb $ sudo yum clean all
も
$ sudo yum –disablerepo=* –enablerepo=base install
もダメだった場合、libz.so.1.2.5が悪さをしているので1.2.3にダウングレードする、というソリューションがあります。
結果から言うと、これでうちも解決しました。
クールシーツに取り替えるタイミングのいつかどこかでかに、何かをインストールした際にlibzが1.2.5にあがってしまったのでしょう。依存性するライブラリを暗黙でインストールとかしちゃったのでしょうか。そら恐ろしいです。もはやうすら寂しいです。
ではなぜここであらためて記事にして書いているのかというと、「libzは1.2.8の上位バージョンではダメ」でした。
上位バージョンであれば、不具合解消はおのずと務まっているはずだというのは、少なくとも本件においては幻想でした。
環境によるかもしれません。うちはこうです。
$ cat /proc/version Linux version 2.6.18-308.13.1.el5 (mockbuild@builder10.centos.org) (gcc version 4.1.2 20080704 (Red Hat 4.1.2-52)) #1 SMP Tue Aug 21 17:10:06 EDT 2012 $ cat /etc/redhat-release CentOS release 5.5 (Final) $ yum --version 3.2.22
仕方ないので、以下を参考に1.2.3にして解決です。
http://serverfault.com/questions/256385/yum-segmentation-fault-in-centos
それと蛇足かもしれませんが一点注意を。
libzがなくなるとsudoコマンドが使えなくなります。1.2.5を削除してからインストールしようなどとすると、
$ sudo make install error while loading shared libraries: libz.so.1:cannot open shared object file : No such file or directory
となってインストールできなくなってしまいます。
素直に以下のように、シンボリックを元に戻して対応が吉。
$ ls -l /usr/lib | grep zlib -rw-r--r-- 1 root root 101462 7月 25 2010 libz.a lrwxrwxrwx 1 root root 13 7月 25 2010 libz.so -> libz.so.1.2.5 lrwxrwxrwx 1 root root 13 7月 25 2010 libz.so.1 -> libz.so.1.2.5 -rwxr-xr-x 1 root root 75028 1月 10 2007 libz.so.1.2.3 -rwxr-xr-x 1 root root 96572 7月 25 2010 libz.so.1.2.5 $ sudo rm libz.so libz.so.1 $ sudo lin -s libz.so.1.2.3 libz.so $ sudo lin -s libz.so.1.2.3 libz.so.1
これでまた気持ちのいい寝返りを打てる安息の日々が戻ってきましたとさ。