yum曰く「セグメンテーション違反です」

敷布団にクールシーツを使うようになって、寝返りが極上に気持ちよくなったなあと思っていたある日、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

これでまた気持ちのいい寝返りを打てる安息の日々が戻ってきましたとさ。