RPM (Redhat Package Manager) è il gestore pacchetti di base di Red Hat e di tutte le distribuzioni derivate (RHEL, CentOS, Fedora…). Potrebbe accadere – alcuni hanno riscontrato il problema a causa di spazio esaurito sulla partizione contenente /var – che la struttura del database si danneggi, rendendo impossibile l’utilizzo del programma (e tutti i suoi gestori grafici associati, come YUM) sul sistema operativo. Vediamo quindi come ricostruire un database RPM corrotto, anche se il consiglio universale è di fare una copia di backup da ripristinare il tutto in caso di problemi.
Linux – guida a come ricostruire un database RPM corrotto
Per prima cosa, al fine di evitare problemi statelock di RPM – se l’applicazione usa il gestore – il consiglio è di agire in modalità single user (in alcune configurazioni basterà dare il comando init 1 come root, in altre occorrerà riavviare il sistema aggiungendo una “s”o un “1″ – senza le virgolette – ai parametri d’avvio del kernel).
Entrati in modalità single user, eliminate i file per la gestione dello statelock e ricostruire il database utilizzando il comando rpm –rebuilddb. Quindi digitate in shell:
cd /var/lib
rm __db*
rpm --rebuilddb
rpmdb_verify Packages
Adesso riavviate il sistema e verificate che RPM funzioni a dovere. Se, non avete i tools rpmdb, potrete ricorrere ai comandi :
cd /var/lib
mv Packages Packages-backup
db_dump Packages-backup | db_load Packages
rpm -qa
rpm --rebuilddb
Tutti e due i procedimenti sono utilizzabili anche in remoto (ad esempio in sessione SSH).