Vor einigen Tagen berichtete einer unserer Kunden, dass er keine Pakete mit dem Befehl yum unter CentOS Linux installieren konnte. Nach der Untersuchung stellte ich fest, dass die RPM-Datenbank beschädigt war. Dies ist ein sehr häufiges Problem auf CentOS- und RHEL-Servern.
CentOS- und RHEL-Server verwenden RPM, um Paketinstallationen, -entfernungen und -upgrades zu verwalten. Wenn die RPM-Datenbank auf irgendeine Weise beschädigt ist, funktionieren andere Systemtools, die auf RPM angewiesen sind, wie Yum/Dnf, nicht mehr.
Wie kann ich die RPM-Datenbank auf CentOS oder RHEL neu erstellen?
Installieren Sie einige Anforderungen, um sicherzustellen, dass Sie Ihre RPM-Datenbank reparieren können:
yum install db4-utils yum-utils -y
Stellen Sie immer sicher, dass Sie eine Sicherungskopie Ihrer aktuellen RPM-Datenbank haben
rsync -avpr /var/lib/rpm /var/lib/rpm.bak
Wiederaufbau einer beschädigten RPM-Datenbank:2 Lösungen
1) RPM-Datenbankdateien entfernen und neu erstellen:
rm /var/lib/__db* -fv rpm --rebuilddb
Der Befehl rpm –rebuilddb baut die RPM-Datenbank basierend auf der Datei /var/lib/rpm/Packages neu auf. Die „Packages“-Dateien werden benötigt, um Ihre RPM-Datenbank neu zu erstellen. Auf langsamen Servern kann die Ausführung dieses Befehls einige Zeit in Anspruch nehmen.
Versuchen Sie jetzt, yum normal zu verwenden. Wenn das Ihr Problem nicht behebt, fahren Sie mit Schritt 2 fort:
2) RPM-Pakete neu laden
Eine weitere gute Strategie zum Wiederaufbau Ihrer beschädigten RPM-Datenbank ist die Verwendung der Tools db_dump und db_load. Im folgenden Beispiel verwenden wir db_dump, um die Packages-Datei zu sichern, und dann wird db_load verwendet, um die Packages-Datei neu zu laden. Dies ist eine alternative Möglichkeit, Probleme mit der RPM-Datenbank zu beheben:
cd /var/lib/rpmdb mv Packages Packages.bak db_dump Packages.bak | db_load Packages
Als zusätzliche Plausibilitätsprüfung alle Header in der DB abfragen
rpm -qa
Bauen Sie abschließend die RPM-Datenbank neu auf:
rpm --rebuilddb
An diesem Punkt sollte Ihre RPM-Datenbank wieder voll funktionsfähig sein. Bitte lassen Sie uns wissen, wenn diese beiden Schritte für Sie nicht funktionieren oder wenn Sie andere Lösungen kennen, die Sie uns mitteilen können.
Weiterführende Literatur
- Wiederaufbau einer RPM-Datenbank, von rpm.org:http://www.rpm.org/max-rpm/ch-rpm-miscellania.html
- Neuaufbau der RPM-Datenbank, von:fedoraproject.org: http://docs.fedoraproject.org/en-US/Fedora_Draft_Documentation/0.1/html/RPM_Guide/ch04s05s02.html
- RPM-DB-Wiederherstellung auf RHEL, von Daniel Berrange: http://people.redhat.com/berrange/notes/rpmrecovery.html
Wiederherstellen einer beschädigten RPM-Datenbank wurde zuletzt geändert:7. Februar 2017 von Esteban Borges