执行 yum 或 rpm 命令时出现以下错误。
错误:rpmdb:BDB0113 线程/进程 22448/139817567954752 失败:BDB1507 线程在 Berkeley DB 库中死亡 错误:db5 错误(-30973)来自 dbenv->failchk:BDB0087 DB_RUNRECOVERY:致命错误,运行数据库恢复 错误:无法使用 db5 打开软件包索引 - (-30973) 错误:无法在 /var/lib/rpm 中打开软件包数据库 CRITICAL:yum.main:错误:rpmdb 打开失败
我相信这是因为 RPM DB 损坏而发生的。我曾尝试在重建 RPM 数据库后执行 yum 或 rpm 命令。当时,它运行正常。但几天后,同样的错误再次出现
让我知道如何永久地解决这个问题。
提前致谢,
答案1
您应该删除旧的损坏的 RPM 数据库并重建 RPM 数据库。您可以通过运行以下命令执行这些操作:
rm -f /var/lib/rpm/__db*
rpmdb --rebuilddb
请注意,此问题通常是由中断软件包安装、更新或删除引起的。您应确保此类操作不会被用户中断,并且您的系统具有适当的备用电源(例如 UPS),以防止电源故障导致问题。
答案2
您可以使用以下命令删除损坏的 RPM 数据库并重建。
首先,请进行备份以防万一:
mkdir /tmp/rpm-backup
cp -a /var/lib/rpm/__db* /tmp/rpm-backup/
删除旧数据库:
rm -fv /var/lib/rpm/__db.[0-9]*
清理并重建 rpm 数据库:
rpm --quiet -qa
rpm --rebuilddb
yum clean all
由于数据库经常由于包安装中断或失败而损坏,您可能还需要运行:
rm -rf /var/cache/yum
上述操作将释放孤立更新所占用的所有空间。