RPM : Récupérer la base de données

De Adadov.net wiki
Ecrit Par : Adadov


Supprimer le fichier de lock

Si une commande RPM se bloque, plante ou disfonctionne, il faut commencer par vérifier les fichiers de lock. On peut le faire avec -CA sur la commande rpmdb_stat:

[root@linux] # cd /var/lib/rpmdblclick to copy
[root@linux] # /usr/lib/rpm/rpmdb_stat -CA

Reconstruire la base de données RPM

Si après le nettoyage les problèmes persistes, la base est probablement corrompue. Il se peut aussi que vous ayez directement reçu un message vous annonçant la corruption ...

Dans ce cas il vous faudra reconstruire les metadonnées. Cette action est DESTRUCTIVE pensez bien à faire une sauvegarde avant en cas de soucis.

[root@linux] # cd /var/libdblclick to copy
[root@linux] # tar zcvf /var/preserve/rpmdb-`date +"%d%m%Y"`.tar.gz rpm

Ensuite on vérifie l'intégrité du fichier Packages.

[root@linux] # cd /var/lib/rpmdblclick to copy
[root@linux] # rm -f __db* # to avoid stale locks
[root@linux] # /usr/lib/rpm/rpmdb_verify Packages

Si vous obtenez une erreur, régénérez le.

[root@linux] # mv Packages Packages.origdblclick to copy
[root@linux] # /usr/lib/rpm/rpmdb_dump Packages.orig | /usr/lib/rpm/rpmdb_load Packages
[root@linux] # /usr/lib/rpm/rpmdb_verify Packages

Pour vérifier que tout est en ordre vous pouvez utiliser la fonction suivante:

[root@linux] # rpm -qa 1> /dev/nulldblclick to copy

Il ne restera plus qu'à reconstruire les métadonnées elles-mêmes:

[root@linux] # rpm -v --rebuilddbdblclick to copy

Votre base de RPM devrait de nouveau fonctionner.