GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

Wiederherstellen einer beschädigten RPM-Datenbank

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
Cent OS
  1. Häufig gestellte Fragen zur MySQL-Bereitstellung

  2. RPM-Befehle

  3. PostgreSQL-Datenbankserver

  4. So reparieren Sie eine beschädigte MySQL-Datenbanktabelle

  5. So stellen Sie eine beschädigte RPM-Datenbank wieder her (Neuaufbau einer RPM-Datenbank)

10 Best Practices für die Datenbanksicherheit

Was ist eine Datenbank?

So erstellen Sie eine Datenbank in PostgreSQL

RPM-Befehl unter Linux

MySQL-Datenbankserver

Installieren Sie htop auf Centos 6.4