RPM データベースの修復
RPM データベースが破損して rpm コマンドがハングして応答しなくなるのは良く聞く話。
破損したデータベースの修復方法もそこらへんでよく見ます。
だけど、その修復方法が微妙に違ってたりするので、自分がやったメモを残しておきます。
1.破損したデータベースのバックアップ
RPM データベースは /var/lib/rpm にある
- __db.001
- __db.002
- __db.003
これを他のディレクトリにコピーしておきましょう。
とは言え、本当に破損している場合、バックアップしておいたところで使い物になりません。
2.破損したデータベースの削除
バックアップしたらデータベースファイルは /var/lib/rpm 内から削除します。
これが重要で、破損した RPM データベースが残ってると修復のコマンドを実行しても、そのコマンド自体がハングします。
3.RPM データベースの修復
以下のコマンドを使って RPM データベースを修復します。
破損したファイルは削除されているので、修復というより再構築ですが。
# rpm --rebuilddbコマンドが終了すると、エラー: db4 error(16) from dbenv->remove: デバイスもしくはリソースがビジー状態です※日本語環境の場合というメッセージが表示されますが、再構築自体は正常に完了してます。以上で完了です。
rpm コマンドを試してみてください。