rpmdbが壊れた場合の修復手順

dnfコマンドを実行して下記のようなエラーが表示された場合
rpmdbが壊れている可能性があります。

rpmdbが壊れる原因は様々考えられますが、
最も多いのがdnfコマンド途中でプロセスをkillしてまう、
またはrpmdb更新中にPCやサーバーがクラッシュして処理が途中停止する
などが考えられます。

■rpmdbが壊れた時のエラーメッセージ

エラー: rpmdb: BDB0113 Thread/process 1473/140098314725248 failed: BDB1507 Thread died in Berkeley DB library エラー: db5 error(-30973) from dbenv->failchk: BDB0087 DB_RUNRECOVERY: Fatal error, run database recovery エラー: cannot open Packages index using db5 - (-30973) エラー: /var/lib/rpm にある Package データベースを開けません。 警告: NetworkManager-1.30.0-9.el8_4.x86_64.rpm: ヘッダー V3 RSA/SHA256 Signature、鍵 ID fd431d51: NOKEY エラー: rpmdb: BDB0113 Thread/process 1473/140098314725248 failed: BDB1507 Thread died in Berkeley DB library エラー: db5 error(-30973) from dbenv->failchk: BDB0087 DB_RUNRECOVERY: Fatal error, run database recovery エラー: cannot open Packages index using db5 - (-30973) エラー: /var/lib/rpm にある Package データベースを開けません。



rpmdbの修復手順

壊れたrpmdbは、再構築することで修復することできます。
下記rpmコマンドを実行します。

# rpm --rebuilddb


他のrpmdb修復手順

その他の修復手順としては、次の方法があります。

# rm -f /var/lib/rpm/__db*
# rpm --rebuilddb


# dnf clean rpmdb
# dnf clean all


# dnf makecache


/var/lib/rpmを削除してしまった場合の手順

上記の手順で修復出来ない場合、 /var/lib/rpmファイルを削除してしまっている可能性があります。 その場合は、rpmdbを初期化することで修復できる場合があります。 初期化コマンドは次の通りです。

# rpm --initdb




P.S
rpmdbが壊れた場合の修復手順など、より高度な現場のLinux技術をマスターしたいなら

詳しくはこちらをクリック

P.P.S
Linuxインストールマニュアルのダウンロードはこちら


<<関連記事>>
・Ubuntu20.04+Apacheのインストールエラー対策
・FortiGuardのスパムメールブロックを解除方法
・LinuxにUSB外付けHDDを接続する(NTFSフォーマットの場合要注意)
・viエディタ(vim)で「readonlyオプションが設定されています」と表示された場合
・yumコマンドがロックファイルエラーになった時の対処