yumエラー:rpmdbを開くことができません

yumエラー:rpmdbを開くことができません

実行しようとしていますが、yum update実行時に次のエラーが発生します。

rpmdb: PANIC: fatal region error detected; run recovery
error: db3 error(-30974) from dbenv->open: DB_RUNRECOVERY: Fatal error, run database recovery
error: cannot open Packages index using db3 - (-30974)
error: cannot open Packages database in /var/lib/rpm
CRITICAL:yum.main:

Error: rpmdb open failed

ページを確認してみるこのように1つは実行中ですが、yum clean all同じエラーが発生します。

この問題をどのように解決できますか?

答え1

これが私の問題を解決する方法です。

rpmデータベースをクリーンアップすると、この問題を解決できます。ただし、まずリスクを最小限に抑えるには、次のコマンドを/var/lib/rpm/使用してファイルのバックアップを作成します。cp

mkdir /root/backups.rpm.mm_dd_yyyy/
cp -avr /var/lib/rpm/ /root/backups.rpm.mm_dd_yyyy/

問題を解決するには、以下を試してください。

# rm -f /var/lib/rpm/__db*
# db_verify /var/lib/rpm/Packages
# rpm --rebuilddb
# yum clean all

最後に、次のyumコマンドを使用してエラーが消えたかどうかを確認します。

# yum update

答え2

私がしなければならなかったのは、拡張子「.lock」を持つ2つのファイルと「__db」で始まる3つのファイルを削除することだけでした。

# rm /var/lib/rpm/.dbenv.lock
# rm /var/lib/rpm/.rpm.lock
# rm /var/lib/rpm/__db*

それからうまくyum updateいきました。

答え3

Alexに感謝します。あなたの答えは私がしなければならなかった1つの小さな変更を除いて私にとって効果的でした。

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

戻りエラー

rm: cannot remove `/var/lib/rpm/__db.001': Is a directory
rm: cannot remove `/var/lib/rpm/__db.002': Is a directory
rm: cannot remove `/var/lib/rpm/__db.004': Is a directory

だから私は繰り返さなければならなかった

rm -rf /var/lib/rpm/__db*

答え4

上記の方法を試しましたが、成功しませんでした。

以下はうまくいきます

# cd /var/lib
# tar -zcvf /var/preserve/rpmdb-$(date +%Y-%m-%d_%H-%M-%S).tar.gz rpm

注:RPMデータベースの復元に問題がある場合は、このtarバックアップを使用できます。

パッケージファイルの整合性を確認してください。

# cd /var/lib/rpm
# rm -f __db*      # to avoid stale locks
# /usr/lib/rpm/rpmdb_verify Packages

# mv Packages Packages.orig
# /usr/lib/rpm/rpmdb_dump Packages.orig | /usr/lib/rpm/rpmdb_load Packages


# rpm -vv --rebuilddb

RPM データベースを再確認してください。

# cd /var/lib/rpm
# /usr/lib/rpm/rpmdb_verify Packages

関連情報