この記事の監修:宮崎智広(Linux実務・教育歴20年以上・受講者3,100名超)
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
3,100名以上が実践した「型」を無料で公開中
プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。
登録10秒/合わなければ解除3秒 / 詳細はこちら
- 次のページへ:Ubuntu20.04+Apacheのインストールエラー対策
- 前のページへ:FortiGuardのスパムメールブロックを解除方法
- この記事の属するカテゴリ:Linuxエラー対処法へ戻る

無料メルマガで学習を続ける
Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。
登録無料・いつでも解除できます