GNU/Linux >> Tutoriels Linux >  >> Cent OS

Comment récupérer des fichiers de package rpm supprimés (bibliothèques, fichiers de configuration) dans CentOS/RHEL 7

Question :Certains fichiers ou répertoires liés au système ont été supprimés/supprimés par erreur. Comment les récupérer ?

Dans ce cas, les fichiers système suivants sont manquants :
/etc/nsswitch.conf
/lib64/libc.so.6

Identifiez les fichiers/répertoires système qui ont été supprimés

L'étape suivante s'appuie sur la base de données RPM (rpmdb) pour identifier les fichiers et répertoires manquants. Par conséquent, la procédure s'applique uniquement aux fichiers/répertoires installés via un package RPM.

Procédez comme suit pour identifier les fichiers/répertoires supprimés par erreur :

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

La commande ci-dessus effectue un inventaire de tous les fichiers/répertoires en fonction de l'ensemble de packages actuellement installé. L'examen du fichier résultant produit une sortie telle que la suivante :

# 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

D'après la sortie ci-dessus, il est évident que le fichier /lib64/libc.so.6 installé à partir du package glibc-2.12-1.212.0.3.el6_10.3.x86_64 est absent du système. Passez en revue l'intégralité du journal pour identifier tous les fichiers/répertoires manquants et leurs packages d'origine. Reportez-vous à la page de manuel rpm pour les définitions des attributs du fichier de validation rpm.

# man rpm

Réinstaller/restaurer les fichiers/répertoires manquants

Après avoir identifié la liste des packages pour lesquels des fichiers/répertoires sont manquants, réinstallez ces versions exactes de packages sur le système concerné. Par exemple :

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

Une fois terminé, répétez l'étape 1 pour confirmer que les fichiers/répertoires précédemment supprimés ne manquent plus, par exemple :

### 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. Comment extraire le package 7z dans CentOS/RHEL/Fedora ?

  2. CentOS / RHEL :Comment restaurer/récupérer un groupe de volumes supprimé dans LVM

  3. CentOS / RHEL 6,7 :Comment récupérer une installation de package yum interrompue

  4. Comment installer un package RPM dans un répertoire différent dans CentOS/RHEL/Fedora

  5. Comment installer le package Mokutil sur CentOS/RHEL 7 et 8

Comment récupérer des fichiers supprimés sous Linux

Comment télécharger RPM sans installer sur RHEL 8 / CentOS 8

Comment installer RPM sur CentOS

Comment installer les packages RPM sur CentOS 8

Comment installer les packages RPM dans CentOS, RHEL et Fedora

CentOS / RHEL 7 :Comment récupérer à partir d'une entrée root supprimée dans les fichiers /etc/shadow et/ou /etc/passwd