RPM データベースの修復

RPM データベースが破損して rpm コマンドがハングして応答しなくなるのは良く聞く話。
破損したデータベースの修復方法もそこらへんでよく見ます。

だけど、その修復方法が微妙に違ってたりするので、自分がやったメモを残しておきます。


1.破損したデータベースのバックアップ

RPM データベースは /var/lib/rpm にある

  • __db.001
  • __db.002
  • __db.003
の 3 つのファイルです。
これを他のディレクトリにコピーしておきましょう。

とは言え、本当に破損している場合、バックアップしておいたところで使い物になりません。

2.破損したデータベースの削除

バックアップしたらデータベースファイルは /var/lib/rpm 内から削除します。
これが重要で、破損した RPM データベースが残ってると修復のコマンドを実行しても、そのコマンド自体がハングします。

3.RPM データベースの修復

以下のコマンドを使って RPM データベースを修復します。
破損したファイルは削除されているので、修復というより再構築ですが。

# rpm --rebuilddb
コマンドが終了すると、
エラー: db4 error(16) from dbenv->remove: デバイスもしくはリソースがビジー状態です※日本語環境の場合
というメッセージが表示されますが、再構築自体は正常に完了してます。

以上で完了です。
rpm コマンドを試してみてください。

トラックバック

このエントリーのトラックバックURL:
http://www.tec-q.com/mt/mt-tb.cgi/870

コメント (1)

RPM データベースの修復 (tec-q note)

コメントを投稿