如何修复这个损坏的rpmdb?

时间:2018-05-03 18:20:23

标签: linux rpm corruption berkeley-db corrupt-data

我的rpmdb已损坏,修复它的常用程序似乎不起作用。

这是错误:

cris@PolariSuse [~]$ rpm -qa > /dev/null
error: rpmdbNextIterator: skipping h#   64697
Header V3 RSA/SHA256 Signature, key ID 3dbdc284: BAD
Header SHA1 digest: BAD (Expected bf167126ecaa67d16fee74af17096529278aad8d != cd4a91ad1f0d65d360cce5dacffea553e358b550)

如果我尝试修复它,我会得到这个:

cris@PolariSuse [~]$ sudo rpmdb --rebuilddb
[sudo] password for root:
error: cannot add record originally at 64697
warning: failed to rebuild database: original database remains in place

我甚至对Packages文件和后续的 db_load 尝试了 db_dump :它显然有效但新生成的Packages文件有相同的错误。

但是,我看到rpm在列出软件包时遇到错误后,仍然能够继续列出后续软件包,所以理想情况下我想重建Packages文件,跳过损坏的记录。 不幸的是,我没有找到任何能够做到这一点的实用程序。

有人知道修复这个损坏的数据库的另一种方法吗?

1 个答案:

答案 0 :(得分:0)

删除标题并重新安装。

请参阅rpm手册页,了解如何删除给定标题#(您发布的消息中的64697)。

您可能需要--nosignature --nodigest来禁用失败的检查