老孙博客 资深网民孙先生

使用yum提示Error: rpmdb open failed的解决方案

AI摘要:使用yum或rpm安装包时,可能会遇到"Error: rpmdb open failed"的错误。这通常是由于rpm数据库损坏导致的,可能会影响到软件的升级、安装和删除。解决方法是以root身份在终端中执行一系列命令,包括重命名或删除原有的rpmdb文件,然后重新构建rpm数据库和清除yum缓存。详细步骤请参考原文链接。

使用yum或者rpm安装包时出现问题,安装时报出大约如下错误

rpmdb: Thread/process35884/139793484506880failed: Thread died inBerkeley DB library
error: db3 error(-30974) from dbenv->failchk: DB_RUNRECOVERY: Fatal error, run database recovery
error: cannot openPackages index using db3 -  (-30974)
error: cannot openPackages database in/var/lib/rpm
CRITICAL:yum.main:
Error: rpmdb openfailed

这多半是因为rpm数据库出现损坏所致,此错误可能导致多数(甚至是所有的)rpm软件的升级、安装甚至是删除都会出现问题。

解决办法如下:

修复此错误,请以root身份在终端输入以下命令

   [root@www~]# cd /var/lib/rpm      # rpmdb所在目录
   [root@www rpm]# ls | grep 'db.'   # 列出相关rpmdb文件
   __db.001
   __db.002
   __db.003
   __db.004
   [root@www rpm]# for i in $(ls | grep 'db.');do mv $i $i.bak;done
   # 将原rpmdb文件都更名为结尾带.bak的文件
   或者
   [root@www rpm]# rm -f __db.*     # 清除原rpmdb文件
   [root@www rpm]# rpm --rebuilddb     # 重建rpm数据库
   [root@www rpm]# yum clean all     # 清除所有yum的缓存
本文出自 “Craft Life” 博客,请务必保留此出处http://allenh.blog.51cto.com/481430/1739188
By 老孙 On