適当にyum updateしてたらGLIBC_2.14が見えないとか

管理しているサーバのうち一台を久しぶりにyum update。全部やるのは怖いので適当なパッケージ(といってもアルファベット順)を選択しながらupdateしてたら、ある時点でrpmが動作しなくなった。こんなエラー。

# rpm -v
rpm: /lib64/libc.so.6: version `GLIBC_2.14' not found (required by /usr/lib64/libmagic.so.1)
rpm: /lib64/libc.so.6: version `GLIBC_2.15' not found (required by /usr/lib64/libmagic.so.1)

/usr/lib64/libmagic.so.1 が glibcの新しいのを要求しているようです。
現在入っているglibc(/lib64/libc.so.6)のバージョンはlddで出てきます。

# ldd --version
ldd (GNU libc) 2.12

ふうむ、古いのか。でもyum update glibcやってももう最新ですって言われるので、当該リポジトリではこれが最新みたい。

# yum update glibc
読み込んだプラグイン:product-id, refresh-packagekit, rhnplugin, security, subscription-
                   : manager
This system is receiving updates from RHN Classic or RHN Satellite.
更新処理の設定をしています
更新と設定されたパッケージがありません。

そうすると /usr/lib64/libmagic.so.1 が新しすぎるのでは。リストを参照してみると、二つある実体のうちサフィックスが5.19のものからリンクされている。

ls -l /usr/lib64/libmagic*
lrwxrwxrwx 1 root root     28  3月 16 16:26 2015 /usr/lib64/libmagic.so.1 -> /usr/lib64/libmagic.so.1.0.0-5.19
-rwxr-xr-x 1 root root 115768  8月  4 13:55 2014 /usr/lib64/libmagic.so.1.0.0
-rwxr-xr-x 1 root root 127840  6月 13 22:50 2014 /usr/lib64/libmagic.so.1.0.0-5.19

日付が古いな。これを1.0.0のものにリンクし直す。

# rm /usr/lib64/libmagic.so.1
# ln -s /usr/lib/64/libmagic.so.1.0.0 /usr/lib64/libmagic.so.1

rpmもちゃんと動作スルようになりました。

# rpm -v
RPM バージョン 4.8.0
Copyright (C) 1998-2002 - Red Hat, Inc.
このプログラムは GNU GPL の下で自由に配布できます。

使い方: rpm [オプション...]
(以下略)