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


図解60p「Linuxサーバー構築入門マニュアル」無料
登録10秒/自動返信でDL/合わなければ解除3秒
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




無料プレゼント
図解60p「Linuxサーバー構築入門マニュアル」
独学で詰まる前に、“型(手順書)”で最初の環境構築をサクッと終わらせましょう。
登録10秒/自動返信でDL/合わなければ解除3秒
無料で受け取る ※メールアドレスだけでもOK(必須項目は最小限)

宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として15年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

<<関連記事>>
・Ubuntu20.04+Apacheのインストールエラー対策
・FortiGuardのスパムメールブロックを解除方法
・LinuxにUSB外付けHDDを接続する(NTFSフォーマットの場合要注意)
・vi(vim)で「readonly」エラーの対処法 sudoを忘れた編集を消さず保存する方法(強制保存の裏技も)
・yumコマンドがロックファイルエラーになった時の対処


図解60pのLinux無料マニュアル
登録10秒/自動返信でDL
無料で受け取る