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

So stellen Sie gelöschte RPM-Paketdateien (Bibliotheken, Konfigurationsdateien) in CentOS/RHEL 7 wieder her

Frage :Bestimmte systembezogene Dateien oder Verzeichnisse wurden fälschlicherweise entfernt/gelöscht. Wie kann man sie wiederherstellen?

In diesem Fall fehlen die folgenden Systemdateien:
/etc/nsswitch.conf
/lib64/libc.so.6

Identifizieren Sie, welche Systemdateien/Verzeichnisse entfernt wurden

Der folgende Schritt stützt sich auf die RPM-Datenbank (rpmdb), um fehlende Dateien und Verzeichnisse zu identifizieren. Daher ist das Verfahren nur für Dateien/Verzeichnisse anwendbar, die über ein RPM-Paket installiert werden.

Gehen Sie wie folgt vor, um festzustellen, welche Dateien/Verzeichnisse fälschlicherweise entfernt wurden:

# for i in `rpm -qa | sort`
do 
    echo "### $i: 'rpm -Vv $i' >> 'hostname'-'date %+F-%T'-rpm-Vv.txt
done

Der obige Befehl führt eine Bestandsaufnahme aller Dateien/Verzeichnisse basierend auf dem aktuell installierten Paketsatz durch. Die Überprüfung der resultierenden Datei erzeugt eine Ausgabe wie die folgende:

# cat localhost-2020-12-11-11:45:27-rpm-Vv.txt

### glibc-2.12-1.212.0.3.el6_10.3.x86_64: ......... c /etc/gai.conf
......... c /etc/ld.so.conf
......... /etc/ld.so.conf.d
missing c /etc/nsswitch.conf
......... c /etc/rpc
......... /lib64/ld-2.12.so
......... /lib64/ld-linux-x86-64.so.2
......... /lib64/libBrokenLocale-2.12.so
......... /lib64/libBrokenLocale.so.1
......... /lib64/libSegFault.so
......... /lib64/libanl-2.12.so
......... /lib64/libanl.so.1
......... /lib64/libc-2.12.so
missing /lib64/libc.so.6
......... /lib64/libcidn-2.12.so
......... /lib64/libcidn.so.1
......... /lib64/libcrypt-2.12.so
......... /lib64/libcrypt.so.1
......... /lib64/libdl-2.12.so
......... /lib64/libdl.so.2
......... /lib64/libm-2.12.so
......... /lib64/libm.so.6
...
......... /usr/sbin/iconvconfig.x86_64
......... /usr/share/doc/glibc-2.12
......... d /usr/share/doc/glibc-2.12/BUGS
......... d /usr/share/doc/glibc-2.12/CONFORMANCE
......... d /usr/share/doc/glibc-2.12/COPYING
......... d /usr/share/doc/glibc-2.12/COPYING.LIB
......... d /usr/share/doc/glibc-2.12/FAQ
......... d /usr/share/doc/glibc-2.12/INSTALL
......... d /usr/share/doc/glibc-2.12/LICENSES
......... d /usr/share/doc/glibc-2.12/NEWS
......... d /usr/share/doc/glibc-2.12/NOTES
......... d /usr/share/doc/glibc-2.12/PROJECTS
......... d /usr/share/doc/glibc-2.12/README
......... d /usr/share/doc/glibc-2.12/README.hesiod
......... d /usr/share/doc/glibc-2.12/README.libm
......... /var/cache/ldconfig

Aus der obigen Ausgabe geht hervor, dass die aus dem Paket glibc-2.12-1.212.0.3.el6_10.3.x86_64 installierte Datei /lib64/libc.so.6 im System fehlt. Überprüfen Sie das gesamte Protokoll, um alle fehlenden Dateien/Verzeichnisse und ihre Ursprungspakete zu identifizieren. Siehe RPM-Manpage für Definitionen von RPM-Validierungsdateiattributen.

# man rpm

Die fehlenden Dateien/Verzeichnisse neu installieren/wiederherstellen

Nachdem Sie die Liste der Pakete identifiziert haben, für die Dateien/Verzeichnisse fehlen, installieren Sie genau diese Paketversionen auf dem betroffenen System neu. Zum Beispiel:

# yum reinstall glibc-2.12-1.212.0.3.el6_10.3.x86_64

Wenn Sie fertig sind, führen Sie Schritt 1 erneut aus, um zu bestätigen, dass die zuvor entfernten Dateien/Verzeichnisse nicht mehr fehlen, z. B.:

### glibc-2.12-1.212.0.3.el6_10.3.x86_64: ......... c /etc/gai.conf
......... c /etc/ld.so.conf
......... /etc/ld.so.conf.d
......... c /etc/nsswitch.conf 
......... c /etc/rpc
......... /lib64/ld-2.12.so
......... /lib64/ld-linux-x86-64.so.2
......... /lib64/libBrokenLocale-2.12.so
......... /lib64/libBrokenLocale.so.1
......... /lib64/libSegFault.so
......... /lib64/libanl-2.12.so
......... /lib64/libanl.so.1
......... /lib64/libc-2.12.so
......... /lib64/libc.so.6 
......... /lib64/libcidn-2.12.so
......... /lib64/libcidn.so.1
......... /lib64/libcrypt-2.12.so
......... /lib64/libcrypt.so.1
......... /lib64/libdl-2.12.so
......... /lib64/libdl.so.2
......... /lib64/libm-2.12.so
......... /lib64/libm.so.6
...
......... /usr/sbin/iconvconfig.x86_64
......... /usr/share/doc/glibc-2.12
......... d /usr/share/doc/glibc-2.12/BUGS
......... d /usr/share/doc/glibc-2.12/CONFORMANCE
......... d /usr/share/doc/glibc-2.12/COPYING
......... d /usr/share/doc/glibc-2.12/COPYING.LIB
......... d /usr/share/doc/glibc-2.12/FAQ
......... d /usr/share/doc/glibc-2.12/INSTALL
......... d /usr/share/doc/glibc-2.12/LICENSES
......... d /usr/share/doc/glibc-2.12/NEWS
......... d /usr/share/doc/glibc-2.12/NOTES
......... d /usr/share/doc/glibc-2.12/PROJECTS
......... d /usr/share/doc/glibc-2.12/README
......... d /usr/share/doc/glibc-2.12/README.hesiod
......... d /usr/share/doc/glibc-2.12/README.libm
......... /var/cache/ldconfig
...


Cent OS
  1. Wie entpacke ich ein 7z-Paket in CentOS/RHEL/Fedora?

  2. So stellen Sie gelöschte Root-Einträge in /etc/shadow- und/oder /etc/passwd-Dateien in CentOS / RHEL 6 wieder her

  3. So installieren Sie ein RPM-Paket in einem anderen Verzeichnis in CentOS/RHEL/Fedora

  4. So extrahieren Sie RAR-Dateien in CentOS/RHEL 7 und 8

  5. So installieren Sie das Mokutil-Paket unter CentOS/RHEL 7 und 8

So stellen Sie gelöschte Dateien unter Linux wieder her

So laden Sie RPM herunter, ohne es auf RHEL 8 / CentOS 8 zu installieren

So installieren Sie RPM auf CentOS

So installieren Sie RPM-Pakete unter CentOS 8

So installieren Sie RPM-Pakete in CentOS, RHEL und Fedora

CentOS / RHEL 7 :So stellen Sie gelöschte Root-Einträge in /etc/shadow- und/oder /etc/passwd-Dateien wieder her