yum install を kill してから再実行しようとしたら、"Error: rpmdb open failed" と怒られた。以下の対応で解決した。
rpmdbが壊れる原因
CentOSでYumコマンドを実行したときに、下記のエラーで yum コマンドが失敗しました。
yum がバックグラウンドでロックしていて、 yum コマンドが実行できないときに、カッとなって、yum のプロセスを kill してしまうと、こういうことが起きてしまいます。それ以外にも rpm のデータベースの更新作業中に、パソコン・サーバのOSがクラッシュしてしまったなどのケースでも、データベースが破損する可能性があるでしょう。
$ sudo yum install w3m エラー: rpmdb: BDB0113 Thread/process 3553/139637759510336 failed: BDB1507 Thread died in Berkeley DB library エラー: db5 エラー (-30973) (dbenv->failchk において): BDB0087 DB_RUNRECOVERY: Fatal error, run database recovery エラー: Packages インデックスを db5 で開けません - (-30973) エラー: /var/lib/rpm にある Package データベースを開けません。 CRITICAL:yum.main: Error: rpmdb open failedCentOSのrpmdbが壊れてyumコマンドが失敗する場合の修正方法修正方法
rpmdb が壊れてしまったので、rpmdb を再構築すれば良いわけです。rpmコマンドには、 rebuilddb (Rebuild DB) というオプションが用意されています。rpmdb を修正するには、以下のコマンドを実行します。
$ sudo rpm --rebuilddb