2017-09-10

Redhat系OSの壊れたシステムファイルを修復

なぜかシステムのファイルが変更されてしまったときは, 以下の手順をとる.
  1. 変更されたファイルをつきとめる
    sudo rpm -Va
    
    変更されたファイルが出力される. フラグの「S」はサイズ違い, 「5」はMD5違い.
  2. ファイルを提供するパッケージ名を調べ, 再インストールする.
    rpm -qf /path/to/file
    sudo yum reinstall package_name
    

補足: prelinkというツールがインストールされていると, バイナリファイルに共有オブジェクトをリンクしてしまう. rpm -Vaではprelinkの変更を戻してからmd5をチェックするらしい.

何らかの理由で同じパッケージの異なるバージョンがインストールされてしまった場合, 以下のコマンドでそのようなパッケージを探すことができる.

rpm -qa --qf '%{NAME}\n' | sort | uniq -c | grep -v '^ *1 '

0 件のコメント:

コメントを投稿