意外删除了 /var/lib/apt/

Hos*_*and 10 command-line apt files

我不小心使用以下命令删除了 /var/lib/apt 的内容:

sudo rm -rf /var/lib/apt/*
Run Code Online (Sandbox Code Playgroud)

我现在该怎么办?我可以恢复吗?有必要吗?

Ser*_*nyy 24

该文件夹包含一些有趣的内容,特别是/var/lib/apt/keyrings/您通过apt-add-repository( 然后还有/etc/apt/trusted.gpgand /etc/apt/trusted.gpg.d/)添加到系统中的任何存储库的目录,并且cdroms.list 应该将安装介质引用为包的源。删除后/var/lib/apt/keyrings/ubuntu-archive-keyring.gpg可以重新安装sudo apt-get install --reinstall ubuntu-keyring

还有/var/lib/apt/lists,其中包含apt运行更新或升级时的锁定文件,以及远程存储库中的包列表。例如,该目录中的项目有时会被清除或删除,例如在这篇文章中。运行后它应该会重新生成apt-get update

简而言之,我不会担心这么多。只需运行sudo apt-get update它就会返回,但是如果您添加了apt-add-repository可能需要 GPG 密钥的存储库,那么您可能需要再次添加该密钥或暂时从/etc/apt/sources.list.d.

虽然在这种情况下这不是一个大问题,但正如Lightness评论中提到的,问题的核心是意外使用rm -rf. 当用户使用可能对其系统造成损害的命令时,他们应该承担全部责任。AskUbuntu 和其他 StackExchange 站点上有无数示例,其中用户删除或更改核心系统组件的所有权。从新用户的角度来看,可以理解新用户不熟悉可以造成多少损害,尽管这并不能免除新用户的责任。谴责命令或用户都没有意义,但正确的方法应该是养成在命令行或其他地方验证自己的步骤的习惯。这不仅适用于 Ubuntu,而且适用于一般的计算,并且伴随着经验,通常是通过实际犯错误和破坏您的系统只是为了修复它并再次破坏它。

  • 您还需要首先检查错误是如何产生的,因为写出 `sudo` 后跟 `rm -rf` 后跟一个非预期的目录名称后跟 `*` 不应该是你的大脑允许发生的事情。可能需要采取纠正措施/改变行为,以避免将来出现更严重的问题。 (9认同)