Comment reconstruire la base de données RPM corrompue dans CentOS

Comment reconstruire la base de données RPM corrompue dans CentOS

Le RPM la base de données est composée de fichiers sous le / var / lib / rpm / répertoire dans Centos et d'autres distributions Linux d'entreprise telles que Rhel, ouverte, Oracle Linux et plus.

Si la RPM la base de données est corrompue, RPM ne fonctionnera pas correctement, donc les mises à jour ne peuvent pas être appliquées à votre système, vous rencontrez des erreurs tout en mettant à jour les packages sur votre système via Yum Package Manager. Le pire des cas n'est pas en mesure d'exécuter un régime et Miam Commandes avec succès.

Lire aussi: 20 exemples pratiques de commande RPM dans Linux

Il existe un certain nombre de facteurs qui peuvent conduire à la corruption de la base de données RPM, tels que des transactions antérieures incomplètes, l'installation de certains logiciels tiers, la suppression de packages spécifiques et bien d'autres.

Dans cet article, nous montrerons comment reconstruire une base de données RPM corrompue; De cette façon, vous pouvez vous remettre d'une corruption de la base de données RPM dans CentOS. Cela nécessite des privilèges de l'utilisateur racine, sinon, utilisez la commande sudo pour gagner ces privilèges.

Reconstruire la base de données RPM corrompue dans CentOS

Commencez d'abord par sauvegarder votre base de données RPM actuelle avant de continuer (vous pourriez en avoir besoin à l'avenir), en utilisant les commandes suivantes.

# MKDIR / BACKUPS / # TAR -ZCVF / BACKUPS / RPMDB - $ (Date + "% D% M% Y").le goudron.gz / var / lib / rpm 
Base de données RPM de sauvegarde

Ensuite, vérifiez l'intégrité du fichier de métadonnées du package maître / var / lib / rpm / packages; Ceci est le fichier qui doit être reconstruit, mais supprimez d'abord / var / lib / rpm / __ db * Fichiers pour empêcher les verrous périmés en utilisant les commandes suivantes.

# rm -f / var / lib / rpm / __ db * # / usr / lib / rpm / rpmdb_verify / var / lib / rpm / packages 
Vérifiez la base de données RPM

Dans le cas où l'opération ci-dessus échoue, ce qui signifie que vous rencontrez toujours des erreurs, vous devez vider et charger une nouvelle base de données. Vérifiez également l'intégrité du fichier de packages fraîchement chargés comme suit.

# cd / var / lib / rpm / # packages MV packages.dos # / usr / lib / rpm / rpmdb_dump packages.Retour | / usr / lib / rpm / rpmdb_load packages # / usr / lib / rpm / rpmdb_verify packages 
Base de données RPM de vidage et de chargement

Maintenant, pour vérifier les en-têtes de base de données, interrogez tous les packages installés à l'aide du -q et -un drapeaux, et essayez d'observer soigneusement toute erreur envoyée au stderror.

# rpm -qa> / dev / null #Output est rejeté pour permettre à l'impression d'erreurs uniquement 

Enfin et surtout, reconstruire la base de données RPM à l'aide de la commande suivante, la commande -vv L'option permet d'afficher de nombreuses informations de débogage.

# rpm -vv --rebuilddb 
Reconstruire la base de données RPM

Utilisez l'outil DCRPM pour détecter et corriger la base de données RPM

Nous avons également découvert le DCRP (détecter et corriger RPM) outil de ligne de commande utilisé pour identifier et corriger les problèmes bien connus à faire avec la corruption de la base de données RPM. C'est un outil simple et facile à utiliser que vous pouvez exécuter sans option. Pour une utilisation efficace et fiable, vous devriez l'exécuter régulièrement via Cron.

Vous pouvez l'installer à partir de la source; Téléchargez l'arborescence source et installez-la en utilisant installation.py (qui devrait saisir le putil dépendance de PYPI aussi), comme indiqué.

# git clone https: // github.com / FacebookIncubator / DCRPM.GIT # CD DCRPM # Python Configuration.Installation PY 

Une fois que vous avez installé DCRP, Exécutez-le comme indiqué.

# dcrpm 

Enfin, essayez à nouveau d'exécuter votre RPM échoué ou votre commande yum pour voir si tout fonctionne bien.

DCRPM GitHub Repository: https: // github.com / FacebookIncubator / DCRPM
Vous pouvez trouver plus d'informations sur la page de récupération de la base de données RPM.

C'est tout! Dans cet article, nous avons expliqué comment reconstruire une base de données RPM corrompue dans CentOS. Pour poser des questions ou partager vos réflexions sur ce guide, utilisez le formulaire de rétroaction ci-dessous.