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

我检查了页面像这样一个但运行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”的文件,以及三个以“__db”开头的文件。

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

之后yum update就工作了。

答案3

谢谢亚历克斯,除了我必须做的一个小小的改变之外,你的回答对我有用。

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

相关内容