Memperbaiki / Recovery RPM Database yang Rusak #
RPM Database mendukung dua backend database, yaitu SQLite dan NDB. Untuk mengetahui backend yang digunakan sistem, jalankan:
rpm -E "%{_db_backend}"Secara umum, lokasi database ada di direktori:
/var/lib/rpm
Dengan nama file:
- Backend SQLite:
rpmdb.sqlite - Backend NDB:
Packages.db
Kerusakan pada RPM Database bisa terjadi karena instalasi paket yang tidak selesai, software pihak ketiga, atau penghapusan file/konten RPM secara manual. Jika database corrupt, maka perintah seperti yum, dnf, atau rpm tidak akan berfungsi dengan baik, termasuk saat melakukan instalasi, update, maupun penghapusan paket.
Berikut langkah-langkah untuk memperbaiki atau merekonstruksi RPM Database yang rusak.
1. Backup RPM Database #
Selalu lakukan backup sebelum melakukan perbaikan:
mkdir -p /backups
tar -zcvf /backups/rpmdb-$(date +"%d%m%Y").tar.gz /var/lib/rpm2. Verifikasi Integritas Database #
Hapus file cache database (__db*) kemudian verifikasi file Packages:
cd /var/lib/rpm
rm -f __db*
/usr/lib/rpm/rpmdb_verify /var/lib/rpm/Packages3. Dump dan Reload Database (Jika Terdapat Error) #
Jika verifikasi menemukan error, lakukan dump dan load ulang:
mv Packages Packages.orig
/usr/lib/rpm/rpmdb_dump Packages.orig | /usr/lib/rpm/rpmdb_load Packages4. Verifikasi dengan Query Paket #
Pastikan database dapat dibaca dengan menampilkan daftar paket:
rpm -qa5. Rebuild RPM Database #
Terakhir, rebuild indeks database untuk memastikan konsistensi penuh:
rpm -vv --rebuilddb