分类: LINUX
2006-09-20 08:46:18
有的时候,我们的rpm的数据库会因为某些原因损坏,这样当你执行rpm的相关命令的时候就会报类似下面的错误:
rpmdb: fatal region error detected; run recovery
error: db4 error(-30982) from dbenv->open: DB_RUNRECOVERY: Fatal error, run database recovery
error: cannot open Packages index
这样的后果是你将不能使用rpm来添加删除,更新查询你系统的RPM软件包了,其实只要按照下面的步骤做就可以恢复您的RPM数据库而不需要重新安装系统
# cd /var/lib
# mv rpm rpm.old
# mkdir rpm
# rpmdb --initdb
# cp rpm.old/Packages rpm
# rpmdb --rebuilddb
就可以了
以上是针对redhat8 和redhat9的做法如果是以前的版本或者其他版本的linux
请按照下面的步骤进行
# cd /var/lib
# mv rpm rpm.old
# mkdir rpm
# rpm --initdb
# cp rpm.old/Packages rpm
# rpm --rebuilddb
另一篇
当进行包安装、升级、卸载等操作时,可能损坏RPM DB,这时需要通过--rebuild参数来修复RPM DB,但有时会碰到这样的问题:
[root@tiv125 lib]# rpm -v --rebuilddb
rpmdb: fatal region error detected; run recovery
error: db4 error(-30982) from dbenv->open: DB_RUNRECOVERY: Fatal error, run database recovery
error: cannot open Packages index
这时需要先手动删除/var/lib/rpm目录下的 __db.* 文件,比如 __db.001, __db.002, etc.
然后再运行 rpm -v --rebuilddb 即可。