![YUM 和 RPM 错误:rpmdbNextIterator:跳过 h#](https://linux22.com/image/118817/YUM%20%E5%92%8C%20RPM%20%E9%94%99%E8%AF%AF%EF%BC%9ArpmdbNextIterator%EF%BC%9A%E8%B7%B3%E8%BF%87%20h%23.png)
在 RHEL 5 中安装任何软件包时出现此错误
error: rpmdbNextIterator: skipping h# 150 region trailer: BAD, tag 1713401957 type 1919692085 offset -775433784 count 761427303
我使用“yum clean all”清理元数据,但仍然出现相同的错误
答案1
当在 rpm 数据库中查询已安装的软件包时出现问题的软件包会导致元标记混乱:
rpm --rebuilddb
当您重建 rpm 数据库包时,一切应该恢复正常。在某些情况下,问题仍然存在,然后您需要删除旧的元数据并再次重建
mkdir /var/lib/rpm/old
mv /var/lib/rpm/Pubkeys /var/lib/rpm/old/
rpm --rebuilddb
有时,就我而言,抛出错误并不是因为某些无法删除某些目录的错误。
$ sudo rpmdb --rebuilddb -v
error: could not delete old database at /var/lib/rpmold.17138
$ sudo rm -rf /var/lib/rpmold.17138
$ sudo rpmdb --rebuilddb -v
$ sudo dnf update --refresh
determining the fastest mirror (2 hosts).. done.
RPM Fusion for Fedora 28 - Free - Updates 412 kB/s | 369 kB 00:00
RPM Fusion for Fedora 28 - Nonfree - Updates 35 kB/s | 84 kB 00:02
Last metadata expiration check: 0:00:00 ago on Mon 27 Aug 2018 09:08:56 AM +08.
Dependencies resolved.
Nothing to do.
Complete!
上面的输出(带有 -v、详细参数)显示,我在/var/lib/rpmold.17138
从系统中删除目录时遇到权限问题。只需手动删除,重建 rpm 数据库即可。