Suatu hari, saya mencoba memperbarui sistem desktop Fedora 34 saya menggunakan sudo dnf --refresh upgrade
perintah dan berakhir dengan masalah ini - kesalahan:rpmdbNextIterator:melewatkan h# 3643 Header V4 RSA/SHA256 Tanda tangan, ID kunci 45719a39:BURUK .
$ sudo dnf --refresh upgrade
Contoh keluaran:
[...] 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
Ini adalah pertama kalinya saya mendapatkan kesalahan seperti itu dan saya tidak yakin tentang akar masalahnya.
Dan juga, saya mencoba beberapa perintah berbeda:
$ sudo dnf update
$ sudo dnf --refresh update
$ sudo dnf --refresh dist-upgrade
Setiap kali, saya mendapatkan kesalahan yang sama seperti yang ditunjukkan di atas.
Setelah beberapa pencarian web, saya menemukan solusi untuk masalah ini di forum Fedora.
Perbaiki "kesalahan:rpmdbNextIterator:skipping" di Fedora
Untuk memperbaiki rpmdbNextIterator
error, cukup buat ulang basis data RPM dengan menjalankan perintah berikut:
$ sudo rpm --rebuilddb
Jika Anda masih mengalami kesalahan yang sama, jalankan perintah di atas sekali lagi. Anda tidak akan melihat hasil apa pun jika masalah telah diperbaiki.
Dan kemudian perbarui sistem Fedora menggunakan perintah:
$ sudo dnf --refresh update
Terkadang, membangun kembali basis data RPM tidak membantu. Dalam hal ini, Anda dapat membuat cadangan dan membangunnya kembali seperti di bawah ini:
$ sudo mkdir /var/lib/rpm/old
$ sudo mv /var/lib/rpm/Pubkeys /var/lib/rpm/old/
Cadangan basis data RPM:
$ mv /var/lib/rpm/__db* /var/lib/rpm/old/
Jika Anda tidak ingin membuat cadangan basis data RPM, hapus saja.
$ sudo rm /var/lib/rpm/__db*
Sekarang jalankan perintah berikut untuk membangun kembali basis data RPM:
$ sudo rpm --rebuilddb
Jika semuanya berjalan dengan baik, Anda tidak akan mendapatkan hasil apa pun.
Dan kemudian perbarui/upgrade sistem Fedora seperti biasa.
$ sudo dnf update --refresh
Dalam beberapa kasus, Anda akan melihat kesalahan izin ditolak seperti di bawah ini.
$ sudo rpmdb --rebuilddb -v
error: could not delete old database at /var/lib/rpmold.161084
Hapus database di atas secara manual menggunakan rm
perintah:
$ sudo rm -rf /var/lib/rpmold.rpmold.161084
Kemudian, bangun kembali basis data RPM:
$ sudo rpmdb --rebuilddb -v
Terakhir, perbarui sistem Fedora:
$ sudo dnf update --refresh
Contoh keluaran:
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. [...]
Semoga membantu.
Bacaan terkait:
- [Terpecahkan] error rpmdb header rusak di Fedora, CentOS
- Cara Mengatasi Error “Error:rpmdb open failed” Di CentOS