Neulich habe ich versucht, mein Fedora 34-Desktopsystem mit sudo dnf --refresh upgrade
zu aktualisieren Befehl und endete mit diesem Problem - Fehler:rpmdbNextIterator:skiping h# 3643 Header V4 RSA/SHA256 Signature, key ID 45719a39:BAD .
$ sudo dnf --refresh upgrade
Beispielausgabe:
[...] 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
Es war das erste Mal, dass ich einen solchen Fehler bekam, und ich war mir nicht sicher, was die Ursache des Problems war.
Außerdem habe ich ein paar verschiedene Befehle ausprobiert:
$ sudo dnf update
$ sudo dnf --refresh update
$ sudo dnf --refresh dist-upgrade
Jedes Mal erhalte ich denselben Fehler wie oben gezeigt.
Nach einigen Websuchen fand ich eine Lösung für dieses Problem in den Fedora-Foren.
Fix "error:rpmdbNextIterator:skipping" in Fedora
Um rpmdbNextIterator
zu reparieren Fehler, erstellen Sie einfach die RPM-Datenbank neu, indem Sie den folgenden Befehl ausführen:
$ sudo rpm --rebuilddb
Wenn derselbe Fehler immer noch auftritt, führen Sie den obigen Befehl noch einmal aus. Sie sehen keine Ausgabe, wenn das Problem behoben ist.
Und aktualisieren Sie dann das Fedora-System mit dem Befehl:
$ sudo dnf --refresh update
Manchmal hilft es nicht, die RPM-Datenbank neu aufzubauen. In diesem Fall können Sie es wie folgt sichern und neu erstellen:
$ sudo mkdir /var/lib/rpm/old
$ sudo mv /var/lib/rpm/Pubkeys /var/lib/rpm/old/
RPM-Datenbank sichern:
$ mv /var/lib/rpm/__db* /var/lib/rpm/old/
Wenn Sie die RPM-Datenbank nicht sichern möchten, löschen Sie sie einfach.
$ sudo rm /var/lib/rpm/__db*
Führen Sie nun den folgenden Befehl aus, um die RPM-Datenbank neu zu erstellen:
$ sudo rpm --rebuilddb
Wenn alles gut geht, erhalten Sie keine Ausgabe.
Und aktualisieren/aktualisieren Sie dann das Fedora-System wie gewohnt.
$ sudo dnf update --refresh
In einigen Fällen wird der Fehler „Berechtigung verweigert“ wie unten angezeigt.
$ sudo rpmdb --rebuilddb -v
error: could not delete old database at /var/lib/rpmold.161084
Löschen Sie die obige Datenbank manuell mit rm
Befehl:
$ sudo rm -rf /var/lib/rpmold.rpmold.161084
Erstellen Sie dann die RPM-Datenbank neu:
$ sudo rpmdb --rebuilddb -v
Aktualisieren Sie abschließend das Fedora-System:
$ sudo dnf update --refresh
Beispielausgabe:
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. [...]
Hoffe das hilft.
Verwandte Lektüre:
- [Gelöst] Fehler rpmdb beschädigter Header in Fedora, CentOS
- So beheben Sie den Fehler „Error:rpmdb open failed“ in CentOS