前几天,我试图更新我的 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
这是我第一次遇到这样的错误,我不确定问题的根源。
而且,我尝试了一些不同的命令:
$ 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
有时,重建 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