GNU/Linux >> Linux の 問題 >  >> Cent OS

CentOS/RHEL 7 で削除された rpm パッケージ ファイル (ライブラリ、構成ファイル) を回復する方法

質問 :特定のシステム関連のファイルまたはディレクトリが誤って削除/削除されました。それらを回復する方法は?

この例では、次のシステム ファイルがありません:
/etc/nsswitch.conf
/lib64/libc.so.6

削除されたシステム ファイル/ディレクトリを特定する

次の手順では、RPM データベース (rpmdb) を使用して、欠落しているファイルとディレクトリを特定します。したがって、この手順は、RPM パッケージを介してインストールされたファイル/ディレクトリにのみ適用されます。

以下を実行して、誤って削除されたファイル/ディレクトリを特定します:

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

上記のコマンドは、現在インストールされているパッケージ セットに基づいて、すべてのファイル/ディレクトリのインベントリを実行します。結果ファイルを確認すると、次のような出力が生成されます:

# 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

上記の出力から、パッケージ glibc-2.12-1.212.0.3.el6_10.3.x86_64 からインストールされたファイル /lib64/libc.so.6 がシステムにないことが明らかです。ログ全体を確認して、欠落しているすべてのファイル/ディレクトリとそれらの元のパッケージを特定します。 rpm 検証ファイルの属性の定義については、rpm のマニュアル ページを参照してください。

# man rpm

見つからないファイル/ディレクトリを再インストール/復元

ファイル/ディレクトリが欠落しているパッケージのリストを特定したら、それらの正確なパッケージ バージョンを影響を受けるシステムに再インストールします。例:

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

完了したら、手順 1 を再度実行して、以前に削除したファイル/ディレクトリが失われていないことを確認します。例:

### 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. CentOS / RHEL / Fedoraで7zパッケージを抽出する方法は?

  2. CentOS / RHEL 6 で /etc/shadow および/または /etc/passwd ファイルの削除されたルート エントリから復元する方法

  3. CentOS/RHEL でボンディング ネットワーク構成を削除する方法

  1. RPM パッケージを CentOS/RHEL/Fedora の別のディレクトリにインストールする方法

  2. CentOS/RHEL 7 および 8 で RAR ファイルを抽出する方法

  3. CentOS/RHEL 7 および 8 に Mokutil パッケージをインストールする方法

  1. Linux OS(CentOS、RHEL、およびFedora)にRPMファイルをインストールする方法

  2. CentOS / RHEL :LVM で削除されたボリューム グループを復元/回復する方法

  3. CentOS / RHEL 6,7 :中断された yum パッケージのインストールを回復する方法