yum コマンドで発生する Transaction Check Error

CentOS 5 に pcre をインストールしようと yum コマンドを実行した際に、Transaction Check Error というものが発生してしまいました。これは 64bit OS に 32bit 用のパッケージと 64bit 用のパッケージの両方がインストールされていたことが原因でした。

rpm -q で、パッケージがインストールされているかどうかを確認すると、

$ rpm -q pcre
pcre-6.6-2.el5_1.7
pcre-6.6-2.el5_1.7

となり、同じパッケージが二つインストールされていました。

まず、arch コマンドで、CPU のアーキテクチャが 32 bit なのか 64bit なのか確認します。

$ arch
x86_64

結果は i386 か x86_64 の場合がほとんどだと思います。
…本当かな…。自信ない…。

前者は 32bit、後者は 64bit です。

次に、重複しているパッケージ (ここでは pcre) で、不要なアーキテクチャのものを削除します。
アーキテクチャを指定するには、[パッケージ名].[アーキテクチャ名] と表記します。

yum remove pcre.i386

これで正常に yum で操作ができるはずです。

参考:
CentOS 5 アップデートでエラー – samba で行こう!
CentOS 5.4 x64になぜi386のパッケージが入っているのか。 – にわかSEの独り言
システムのアーキテクチャを表示 (archコマンド) – Linux コマンドリファレンス