yumでエラーが出たので頑張って修復するお話
エラーメッセージを見るとどんなときでも心臓が一瞬止まる感じがしませんか。
この一瞬の間に、今日中に終わるのかとかぶっ壊れていないかとかいろいろ頭をよぎります。
先日ちょいと作業があったのでyum installをしようとするとエラーが発生しました。
yumでエラーとか初めてなので超焦りました。
心臓バクバクです。
しかしググったらすんなり解決しました。
稀な現象かと思うので備忘録として残しておきます。
rpmエラー
エラーメッセージは下記の通りです。
エラー: rpmdb: BDB0113 Thread/process 28567/140570088089664 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 failed
installが悪いのかと思いcheck-updateをしてもエラーがでます。
rpmdbがぶっ壊れた!という感じでしょうか。
rpmdbはrpmのデータベースでパッケージを管理している。
yumはrpmを使って依存関係を管理してくれている。
なのでrpmが壊れるとyumが使えない。
なるほど、とても勉強になりました。
で、修復方法はいろいろあるみたいです。
CentOSのrpmdbが壊れてyumコマンドが失敗する場合の修正方法
薫のhack - FreeBSD や セキュリティ、プログラミングの記録
上記を参考にしたコマンドが下記、rpmdbを再構築します。
# rpm --rebuilddb
私の環境はこれ一発でなおりました。
修復できなかったら大変な感じになりそうだったのでよかったです。
コメント