[Solved] “错误:rpmdbNextIterator:跳过”中 Fedora Linux

前几天,我试图更新我的 Fedora 34桌面系统使用 sudo dnf --refresh upgrade 命令并最终出现此错误 – error: rpmdbNextIterator: skipping h# 3643 Header V4 RSA/SHA256 Signature, key ID 45719a39: BAD.

$ sudo dnf --refresh upgrade

示例输出:

[...] Running transaction check error: rpmdbNextIterator: skipping h#    3643  Header V4 RSA/SHA256 Signature, key ID 45719a39: BAD Header SHA256 digest: BAD (Expected cc14b51b22595cfdf9d87d21e6ab8604b62eb6481c4669fe814a9109754f4d54 != 00a7eb336286e45cec1ce6b67c4093fe6059bbe1ec95279f81dc51e2dc97ec89) Header SHA1 digest: BAD (Expected a5f792ecf06988120d3127a8b272471bf6927fca != 348ab5cbf958d0898e9ac2b69a5306a5fba7dbfd) The downloaded packages were saved in cache until the next successful transaction. You can remove cached packages by executing 'dnf clean packages'. Error: An rpm exception occurred: package not installed
Fedora 中的 rpmdbNextIterator 错误

这是我第一次遇到这样的错误,我不确定问题的根源。

而且,我尝试了一些不同的命令:

$ sudo dnf update
$ sudo dnf --refresh update
$ sudo dnf --refresh dist-upgrade

每次,我都会遇到与上图相同的错误。

经过几次网络搜索,我找到了解决此问题的方法 Fedora 论坛。

修复“错误:rpmdbNextIterator:跳过” Fedora

为了修复 rpmdbNextIterator 错误,只需通过执行以下命令重建 RPM 数据库:

$ sudo rpm --rebuilddb

如果您仍然遇到相同的错误,请再次运行上述命令。 如果问题得到解决,您将看不到任何输出。

然后更新 Fedora 系统使用命令:

$ sudo dnf --refresh update
修复“错误:rpmdbNextIterator:跳过” Fedora

有时,重建 RPM 数据库无济于事。 在这种情况下,您可以像下面这样再次备份和重建它:

$ sudo mkdir /var/lib/rpm/old
$ sudo mv /var/lib/rpm/Pubkeys /var/lib/rpm/old/

备份 RPM 数据库。

$ mv /var/lib/rpm/__db* /var/lib/rpm/old/

如果您不备份 RPM 数据库,只需将其删除即可。

$ sudo rm /var/lib/rpm/__db*

现在运行以下命令 o 重建 RPM 数据库:

$ sudo rpm --rebuilddb

如果一切顺利,您将不会得到任何输出。

然后更新/升级 Fedora 系统为 suaul。

$ sudo dnf 更新 –refresh

在某些情况下,您会看到如下所示的权限被拒绝错误。

$ sudo rpmdb --rebuilddb -v
error: could not delete old database at /var/lib/rpmold.161084

使用手动删除上述数据库 rm 命令:

$ sudo rm -rf /var/lib/rpmold.rpmold.161084

然后,重建 RPM 数据库:

$ sudo rpmdb --rebuilddb -v

最后,更新 Fedora 系统:

$ sudo dnf update --refresh

示例输出:

Fedora 34 - x86_64                               19 kB/s | 6.4 kB     00:00     Fedora 34 openh264 (From Cisco) - x86_64        3.2 kB/s | 989  B     00:00     Fedora Modular 34 - x86_64                       14 kB/s | 6.5 kB     00:00     Fedora 34 - x86_64 - Updates                     12 kB/s | 5.6 kB     00:00     Fedora Modular 34 - x86_64 - Updates             22 kB/s | 6.5 kB     00:00     RPM Fusion for Fedora 34 - Free                 4.9 kB/s | 7.1 kB     00:01     RPM Fusion for Fedora 34 - Free - Updates       6.9 kB/s | 6.5 kB     00:00     RPM Fusion for Fedora 34 - Free - Updates        45 kB/s | 337 kB     00:07     RPM Fusion for Fedora 34 - Nonfree              6.6 kB/s | 7.1 kB     00:01     RPM Fusion for Fedora 34 - Nonfree - Updates    7.7 kB/s | 7.1 kB     00:00     Dependencies resolved. [...]

希望这可以帮助。

相关阅读:

  • 如何解决 CentOS 中的“Error: rpmdb open failed”错误

DNFdnf 命令FedoraLinuxLinux 故障排除Rpm 数据库RpmdbYUM