Mengapa basis data rpm rusak
Ada beberapa alasan yang dapat menyebabkan korupsi basis data rpm. Seseorang tidak dapat secara tepat menentukan satu RCA untuk itu karena keterbatasan, tidak ada mekanisme untuk memantau korupsi basis data rpm.
– database rpm akan ditanyakan setiap kali Administrator/beberapa proses menjalankan perintah rpm apa pun.
– Bahkan selama transaksi yum, database rpm sangat berubah.
– Sebuah pointer kecil juga dapat menyebabkan kerusakan seperti itu.
– Jika LD_LIBRARY_PATH diatur ke beberapa nilai, bahkan basis data rpm akan rusak.
– Jika ada paket pihak ketiga yang diinstal yang menyebabkan perubahan yang tidak perlu dalam basis data rpm.
– Transaksi yang tidak lengkap juga dapat menyebabkan kerusakan tersebut.
– Jika partisi /var terletak pada volume SAN.
Jadi secara total, banyak faktor yang dapat dipertimbangkan untuk korupsi database rpm tersebut. Jika basis data rpm sering rusak, disarankan untuk sering mencadangkan basis data RPM melalui cron.
Perbaiki basis data RPM
Alat RPM menggunakan implementasi database kustomnya sendiri untuk memuat informasinya. Terkadang database itu bisa rusak; gejala termasuk klaim bahwa paket RPM yang diinstal hilang; atau upaya untuk memperbarui RPM hanya hang. Upaya query (rpm -q) beberapa paket mungkin gagal dengan kesalahan di bawah ini.
rpmdb: /var/lib/rpm/Packages: unexpected file type or format error: cannot open Packages index using db3 - Invalid argument (22)
Jika basis data RPM Anda macet atau rusak, Anda dapat mencoba memperbaikinya dengan perintah ini. Harap diperhatikan:Proses ini tidak dijamin berhasil. Anda harus masuk dengan hak pengguna super (alias "root") untuk langkah-langkah ini. Perintah dapat disalin dan ditempelkan langsung ke jendela terminal root.
1. Pastikan tidak ada proses RPM yang berjalan di sistem Anda. Gunakan perintah ps untuk mengidentifikasi mereka. Gunakan perintah kill untuk menghentikan proses "rpm" yang Anda temukan; "kill -9" mungkin diperlukan.
# ps -ef | grep-i rpm
2. Hapus file kunci yang digunakan RPM:
# rm -f /var/lib/rpm/__db*
# /usr/lib/rpm/rpmdb_verify /var/lib/rpm/Packages
3. Jika Anda mengalami perintah “rpm” yang menggantung, coba lagi. Jika berhasil, Anda selesai. Jika tidak, lakukan Langkah #1 dan #2 lagi. Kemudian lanjutkan ke langkah berikutnya.
4. Buat cadangan basis data RPM Anda:
# cd /var/lib # mkdir rpm-backup # rsync -av ./rpm/. ./rpm-backup/.
5. Bangun kembali basis data RPM Anda:
# rpm -vv --rebuilddb > /tmp/rpmrebuilddb.log 2>&1
6. Coba verifikasi database rpm lagi.
# cd /var/lib/rpm # /usr/lib/rpm/rpmdb_verify PackagesCatatan :Jika langkah pemulihan di atas gagal atau menimbulkan kesalahan, memulihkan direktori /var/lib/rpm dari cadangan sistem terbaru mungkin merupakan pilihan terbaik Anda. Ingatlah untuk tidak menimpa cadangan tar karena mungkin masih berharga.
6. Coba lagi perintah RPM Anda yang gagal.
Contoh perintah RPM untuk menanyakan, menginstal, menghapus, dan meningkatkan paket