【背景】
在使用自己做的rpm包时遇到 **error: db5 error(11) from dbenv->open: Resource temporarily unavailable**
【重建步骤】
-
备份RPM数据库
tar zcvf rpm.db.tar /var/lib/rpm -
删除 /var/lib/rpm/__db* 文件 (rpm 命令所产生的锁)
cd /var/lib/rpm && rm -rf /var/lib/rpm/__db* -
重建 RPM 数据库
rpm -vv --rebuilddb -
验证Packages中文件的完整性
/usr/lib/rpm/rpmdb_verify /var/lib/rpm/Packages
如果上面的步骤不生效, 可以执行以下步骤:
1.备份 Packages 目录
cd /var/lib/rpm && mv /var/lib/rpm/Packages /var/lib/rpm/Packages.bak
2.导出再导入数据库
/usr/lib/rpm/rpmdb_dump Packages.bak | /usr/lib/rpm/rpmdb_load Packages
3.校验 Packages 文件中的完整性
/usr/lib/rpm/rpmdb_verify Packages
4.检查 DB 中的 headers
rpm -q >/dev/null
5、若上一步没有输出,就可以重建 index
rpm -vv --rebuilddb
博客介绍了Linux系统中RPM数据库的重建步骤,包括备份RPM数据库、删除相关锁文件、重建数据库、验证文件完整性等。若这些步骤不生效,还给出了备份Packages目录、导出再导入数据库等进一步操作步骤。
171

被折叠的 条评论
为什么被折叠?



