Archで "rm -rf /usr/"をキャンセルした後に何をすべきですか?

Archで "rm -rf /usr/"をキャンセルした後に何をすべきですか?

だから私は最新のArchシステムでこれを行いました。

[anna@home ~]$ sudo rm -rf /usr/
^C[anna@home ~]$ ^C
[anna@home ~]$ ^C

rm早く終了しました。/usr/肉眼で見ることができるのは何の問題もありません。

損傷が発生したかどうかを確認するためのオプションは何ですか?パックマン精神検査をする必要がありますか?システムを再起動できることを確認するには、どの特定のファイルを確認する必要がありますか?

これから、次の項目をバックアップしておきます。みんなシステム。

答え1

私はDennis Kaarsemakerが正しい言葉を書いたと思います:すべてのパッケージを再インストールしてください。

数分間グーグルをしてみたところ、この事実が明らかになりました。アーチウィキ記事、すべてのパッケージを再インストールするためのセクションがあります。削除するわけではないので、/var/cache/pacman/pkgプロセスはローカルで実行する必要があります。コマンドは次のとおりです。

pacman -Qenq | pacman -S -

pacamn -Qeng「明示的にインストールされた」、「ネイティブ」パッケージのみがグループごとに一覧表示されます。 「Extra」または「Community」リポジトリの一部のパッケージ、またはインストールしたAURパッケージが欠落している可能性があります。私は個人的にアーチのインストールが実行されているので、あえてこれを試してはいけません。

pacman -Qn | awk '{print $1}' | pacman -S -

再インストールできるすべてのパッケージを再インストールできます。プロセスの後半に明示的にインストールされた依存関係をどのように処理するのかわかりません。すでに依存関係で再インストールしたパッケージを再インストールすることもできます。

pacman.

答え2

すべてのパッケージを(再)インストールしたくない場合は、1つの方法を使用できます。各パッケージにインストールされているすべてのファイルを含む/var/lib/pacman/localサブディレクトリとそのサブディレクトリを確認してください。files

以下は単純でテストされていない(不完全な)スクリプトです。

cd /var/lib/pacman
for package in *; do
    for file in $(grep ^usr ${package}/files); do
        [ -e "/${file}" ] || echo Bad package: ${package}
    done
done

${file}このスクリプトを改善することはできますが(存在しない場合は実行し続けますpacman -S ${package})、主なアイデアはかなり良いと思います。 :)

関連情報