如果运行一些程序后,远行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就很可能会出错误。因为这个临时锁还没有被释放呢。
找到原因,相信您还可以找到其它的解决方法。