web-dev-qa-db-ja.com

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は同じエラーを実行します。

どうすればこれを解決できますか?

45
Alex Jolig

これは私が私の問題を修正した方法です。

これはかなり厄介な状況です。これは、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
89
Alex Jolig

うまくいかない上記のものを試しました

以下は正常に動作します

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

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

Packagesファイルの整合性を確認します。

# 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
0
Mongrel

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

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

その後、 yum update機能しました。

0
isapir

アレックスに感謝します。私がしなければならなかったわずかな変更を除いて、あなたの答えは私にとってうまくいきました。

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*
0
Ian Ellis