RPM数据库修复
在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