所以我只是在我最新的 Arch 系统上这样做了:
[anna@home ~]$ sudo rm -rf /usr/
^C[anna@home ~]$ ^C
[anna@home ~]$ ^C
我rm
很快就终止了。/usr/
肉眼看不出什么毛病。
有哪些选项可以查看是否造成任何损坏?我应该运行一些 pacman 完整性检查吗?我应该检查哪些特定文件以确保系统可以再次启动?
从现在开始,我会保留以下内容的备份全部的系统。
答案1
我认为 Dennis Kaarsemaker 写了正确的事情:重新安装所有软件包。
几分钟的谷歌搜索揭示了这一点Arch 维基文章,其中有一节介绍重新安装所有软件包。由于您没有删除/var/cache/pacman/pkg
,因此该过程应该在本地进行。该命令如下所示:
pacman -Qenq | pacman -S -
pacamn -Qeng
仅按组列出“显式安装”、“本机”软件包。它可能会丢失“额外”或“社区”存储库中的一些软件包,或者您已安装的任何 AUR 软件包。我个人不敢尝试这个,因为我的 Arch 安装正在运行,但是
pacman -Qn | awk '{print $1}' | pacman -S -
可能会重新安装它可以重新安装的每个软件包。我不确定它将如何处理稍后在此过程中显式安装的依赖项。您最终可能会重新安装已经作为依赖项重新安装的软件包。
如果您设法删除pacman
,我认为该过程可能只涉及使用 Arch 安装 ISO 的部分“新安装”,但我不敢推荐这样做。
答案2
如果您不想(重新)安装所有软件包,您可以使用一个技巧:检查/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}
并继续),但我认为主要思想还不错:)