在CentOS系统上,在使用 yum 命令安装软件包或升级时候报以下错误:

1
2
3
4
5
6
7
error: rpmdb: BDB0113 Thread/process 31238/139881131583552 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
CRITICAL:yum.main:

Error: rpmdb open failed

错误可能会有稍许差异,但都会提示 error: cannot open Packages database in /var/lib/rpm ,发生以上错误原因是RPM数据库损坏。

按照以下命令重建数据库后恢复正常:

1
2
3
4
cd /var/lib/rpm/
for i in `ls | grep 'db.'`;do mv $i $i.bak;done
rpm --rebuilddb
yum clean all