Cara Membangun Kembali Database RPM yang Rusak di CentOS


Basis data RPM terdiri dari file-file di bawah direktori /var/lib/rpm/ di CentOS dan distribusi Linux perusahaan lainnya seperti RHEL, openSUSE, Oracle Linux dan banyak lagi.

Jika basis data RPM rusak, RPM tidak akan berfungsi dengan benar, sehingga pembaruan tidak dapat diterapkan ke sistem Anda, Anda mengalami kesalahan saat memperbarui paket di sistem Anda melalui manajer paket YUM. Skenario terburuknya adalah tidak dapat menjalankan perintah rpm dan yum dengan sukses.

Baca Juga: 20 Contoh Praktis Perintah RPM di Linux

Ada sejumlah faktor yang dapat menyebabkan kerusakan database RPM, seperti transaksi sebelumnya yang tidak lengkap, instalasi perangkat lunak pihak ketiga tertentu, penghapusan paket tertentu, dan banyak lainnya.

Pada artikel ini, kami akan menunjukkan cara membangun kembali database RPM yang rusak; dengan cara ini Anda dapat memulihkan kerusakan database RPM di CentOS. Ini memerlukan hak pengguna root, jika tidak, gunakan perintah sudo untuk mendapatkan hak istimewa tersebut.

Bangun Kembali Database RPM yang Rusak di CentOS

Mulailah dengan mencadangkan database RPM Anda saat ini terlebih dahulu sebelum melanjutkan (Anda mungkin memerlukannya di masa mendatang), menggunakan perintah berikut.

mkdir /backups/
tar -zcvf /backups/rpmdb-$(date +"%d%m%Y").tar.gz  /var/lib/rpm

Selanjutnya, verifikasi integritas file metadata paket master /var/lib/rpm/Packages; ini adalah file yang perlu dibangun kembali, tetapi pertama-tama hapus file /var/lib/rpm/__db* untuk mencegah kunci basi menggunakan perintah berikut.

rm -f /var/lib/rpm/__db*		
/usr/lib/rpm/rpmdb_verify /var/lib/rpm/Packages

Jika operasi di atas gagal, artinya Anda masih mengalami kesalahan, maka Anda harus membuang dan memuat database baru. Verifikasi juga integritas file Paket yang baru dimuat sebagai berikut.


cd /var/lib/rpm/
mv Packages Packages.back
/usr/lib/rpm/rpmdb_dump Packages.back | /usr/lib/rpm/rpmdb_load Packages
/usr/lib/rpm/rpmdb_verify Packages

Sekarang untuk memeriksa header database, kueri semua paket yang terinstal menggunakan flag -q dan -a, dan coba amati dengan cermat setiap kesalahan yang dikirim ke kesalahan std.


rpm -qa >/dev/null	#output is discarded to enable printing of errors only

Terakhir, bangun kembali database RPM menggunakan perintah berikut, opsi -vv memungkinkan untuk menampilkan banyak informasi debug.

rpm -vv --rebuilddb

Gunakan Alat dcrpm untuk Mendeteksi dan Memperbaiki Basis Data RPM

Kami juga menemukan alat baris perintah dcrpm (deteksi dan koreksi rpm) yang digunakan untuk mengidentifikasi dan memperbaiki masalah umum yang berkaitan dengan kerusakan basis data RPM. Ini adalah alat sederhana dan mudah digunakan yang dapat Anda jalankan tanpa opsi. Untuk penggunaan yang efektif dan andal, Anda harus menjalankannya secara rutin melalui cron.

Anda dapat menginstalnya dari sumber; unduh pohon sumber dan instal menggunakan setup.py (yang juga akan mengambil ketergantungan psutil dari pypi), seperti yang ditunjukkan.

git clone https://github.com/facebookincubator/dcrpm.git
cd dcrpm
python setup.py install

Setelah Anda menginstal dcrpm, jalankan seperti yang ditunjukkan.

dcrpm

Terakhir, coba jalankan kembali perintah rpm atau yum yang gagal untuk melihat apakah semuanya berfungsi dengan baik.

dcrpm Repositori Github: https://github.com/facebookincubator/dcrpm
Anda dapat menemukan informasi lebih lanjut dari halaman pemulihan basis data RPM.

Itu saja! Pada artikel ini, kami telah menjelaskan cara membangun kembali database RPM yang rusak di CentOS. Untuk mengajukan pertanyaan atau membagikan pendapat Anda tentang panduan ini, gunakan formulir umpan balik di bawah.