日期:2014-05-16  浏览次数:20512 次

转:解决rpmdb: Lock table is out of available locker entries问题。
http://hi.baidu.com/hansanpu/blog/item/4ba0b61bdf050ffcaf51330e.html/cmtid/f597c43e19ae9ff3828b1391

如果运行一些程序后,远行yum命令出现

“rpmdb: Lock table is out of available locker entries...”的问题时, 你可以按照如下操作来修复它:

错误表现如下:
rpmdb: Lock table is out of available locker entries
error: db4 error(22) from db->close: Invalid argument
error: cannot open Packages index using db3 - Cannot allocate memory (12)
error: cannot open Packages database in /var/lib/rpm

操作之前请先备份 /var/lib/rpm :
tar cvzf rpmdb-backup.tar.gz /var/lib/rpm

去除rpm使用的BDB数据库:
rm /var/lib/rpm/__db.00*

重建立 rpm 使用的数据库,注意:此处可能需要一点时间:
rpm --rebuilddb

现在检查,看看 rpm 包是否一切正常:
rpm -qa | sort

为什么为发生这个问题呢?
其实当您用rpm命令后,rpm访问BDB数据库,首先会设置一个临时锁。如果在它运行时您用 control-c 中断它,或者是给它发了中断信号。那么rpm就很可能会出错误。因为这个临时锁还没有被释放呢。找到原因,相信您还可以找到其它的解决方法。