标签 centos 下的文章

在CENTOS 8上执行 dnf 命令时,出现了如下错误:

# dnf --help
error: rpmdb: BDB0113 Thread/process 472301/140429384558464 failed: BDB1507 Thread died in Berkeley DB library
error: db5 error(-30973) from dbenv->failchk: BDB0087 DB_RUNRECOVERY: Fatal error, run database recovery
error: cannot open Packages index using db5 -  (-30973)
error: cannot open Packages database in /var/lib/rpm
Error: Error: rpmdb open failed

典型的 rpm 数据库(rpmdb)损坏问题,通常是由于系统崩溃、电源故障或其他未预期的事件导致的。

解决方案

备份 rpm 数据库

cd /var/lib
cp -a rpm rpm.bak.$(date +%F)

删除锁文件

删除 __db.001、__db.002、__db.003 ... 锁文件

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

重建 rpm 数据库

rpm --rebuilddb

等待完成(可能 1~2 分钟)

清理 dnf 缓存

dnf clean all

验证是否恢复

rpm -qa | head