GNU/Linux >> Linux Esercitazione >  >> Cent OS

Come recuperare file di pacchetto rpm eliminati (librerie, file di configurazione) in CentOS/RHEL 7

Domanda :Alcuni file o directory relativi al sistema sono stati rimossi/eliminati erroneamente. Come recuperarli?

In questo caso, mancano i seguenti file di sistema:
/etc/nsswitch.conf
/lib64/libc.so.6

Identifica quali file/directory di sistema sono stati rimossi

Il passaggio seguente si basa sul database RPM (rpmdb) per identificare i file e le directory mancanti. Pertanto, la procedura è applicabile solo per file/directory installati tramite un pacchetto RPM.

Esegui le seguenti operazioni per identificare quali file/directory sono stati rimossi erroneamente:

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

Il comando precedente esegue un inventario di tutti i file/directory in base al set di pacchetti attualmente installato. La revisione del file risultante produce un output come il seguente:

# 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

Dall'output sopra, è evidente che il file /lib64/libc.so.6 installato dal pacchetto glibc-2.12-1.212.0.3.el6_10.3.x86_64 manca dal sistema. Esaminare l'intero registro per identificare tutti i file/directory mancanti e i relativi pacchetti di origine. Fare riferimento alla pagina man di rpm per le definizioni degli attributi del file di convalida rpm.

# man rpm

Reinstalla/ripristina i file/le directory mancanti

Dopo aver identificato l'elenco dei pacchetti per i quali mancano file/directory, reinstallare le versioni esatte del pacchetto sul sistema interessato. Ad esempio:

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

Una volta completato, esegui nuovamente il passaggio 1 per confermare che i file/directory rimossi in precedenza non siano più mancanti, ad esempio:

### 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. Come estrarre il pacchetto 7z in CentOS/RHEL/Fedora?

  2. CentOS / RHEL:come ripristinare/ripristinare un gruppo di volumi eliminato in LVM

  3. CentOS / RHEL 6,7 :Come recuperare un'installazione del pacchetto yum interrotta

  4. Come estrarre i file RAR in CentOS/RHEL 7 e 8

  5. Come installare il pacchetto Mokutil su CentOS/RHEL 7 e 8

Come recuperare file cancellati in Linux

Come scaricare RPM senza installarlo su RHEL 8 / CentOS 8

Come installare RPM su CentOS

Come installare i pacchetti RPM su CentOS 8

Come installare i pacchetti RPM in CentOS, RHEL e Fedora

CentOS / RHEL 7:come recuperare dalla voce di root eliminata nei file /etc/shadow e/o /etc/passwd