GNU/Linux >> Tutoriales Linux >  >> Cent OS

Cómo recuperar archivos de paquetes rpm eliminados (bibliotecas, archivos de configuración) en CentOS/RHEL 7

Pregunta :Ciertos archivos o directorios relacionados con el sistema se han eliminado/eliminado por error. ¿Cómo recuperarlos?

En este caso, faltan los siguientes archivos del sistema:
/etc/nsswitch.conf
/lib64/libc.so.6

Identifique qué archivos/directorios del sistema se han eliminado

El siguiente paso se basa en la base de datos RPM (rpmdb) para identificar los archivos y directorios que faltan. Por lo tanto, el procedimiento solo se aplica a archivos/directorios que se instalan a través de un paquete RPM.

Realice lo siguiente para identificar qué archivos/directorios se han eliminado por error:

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

El comando anterior realiza un inventario de todos los archivos/directorios en función del conjunto de paquetes instalado actualmente. La revisión del archivo resultante genera un resultado como el siguiente:

# 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

Del resultado anterior, es evidente que el archivo /lib64/libc.so.6 instalado desde el paquete glibc-2.12-1.212.0.3.el6_10.3.x86_64 no se encuentra en el sistema. Revise todo el registro para identificar todos los archivos/directorios faltantes y sus paquetes de origen. Consulte la página de manual de rpm para conocer las definiciones de los atributos del archivo de validación de rpm.

# man rpm

Reinstalar/restaurar los archivos/directorios faltantes

Después de identificar la lista de paquetes para los que faltan archivos/directorios, reinstale esas versiones exactas de paquetes en el sistema afectado. Por ejemplo:

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

Una vez completado, realice el Paso 1 nuevamente para confirmar que los archivos/directorios eliminados anteriormente ya no faltan, por ejemplo:

### 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. ¿Cómo extraer el paquete 7z en CentOS/RHEL/Fedora?

  2. Cómo recuperarse de una entrada raíz eliminada en archivos /etc/shadow y/o /etc/passwd en CentOS / RHEL 6

  3. Cómo extraer archivos RAR en CentOS/RHEL 7 y 8

  4. Cómo instalar el paquete Mokutil en CentOS/RHEL 7 y 8

  5. Cómo eliminar la configuración de red de vinculación en CentOS/RHEL

Cómo recuperar archivos borrados en Linux

Cómo descargar RPM sin instalar en RHEL 8 / CentOS 8

Cómo instalar RPM en CentOS

Cómo instalar paquetes RPM en CentOS 8

Cómo instalar paquetes RPM en CentOS, RHEL y Fedora

CentOS / RHEL 7:cómo recuperarse de una entrada raíz eliminada en archivos /etc/shadow y/o /etc/passwd