不小心删除了/ var / lib / apt /


10

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

sudo rm -rf /var/lib/apt/*

我现在应该怎么做?我可以还原它吗?有必要吗?


发生此事故的原因是我试图删除/ var / lib / apt / lists / *,因为它的大小很大,无法在磁盘上创建空白空间。
侯赛因·侯赛因凡

Answers:


24

该文件夹中包含了一些有趣的事情,特别是存在/var/lib/apt/keyrings/于你已经通过添加到系统中的任何资源库目录apt-add-repository(然后有也/etc/apt/trusted.gpg/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,而且通常适用于计算,并且具有经验,并且经常会通过实际犯错并破坏系统来修复它并再次破坏。


9
您还需要首先检查错误的产生原因,因为写出来sudo后跟rm -rf一个意想不到的目录名再跟着*应该是您的大脑不允许发生的事情。为避免将来出现更严重的问题,可能需要采取纠正措施/更改行为。
Lightness Races in Orbit

1
@LightnessRacesinOrbit我认为此注释应放在OP的问题下,但我同意-用户必须知道他们键入的内容,避免在rm -rf未检查并确保首先删除正确的内容的情况下进行操作。
Sergiy Kolodyazhnyy

1
好吧,我认为应该将其添加到答案中,这就是为什么我将其放在这里:)问题下的注释应该是对问题的澄清提出建议
轨道上的轻度竞赛

1
@KasperThystrupKarstensen同意。通常,您还可以看到echo首先放在要与通配符或其他破坏性命令一起运行的命令之前。例如,echo rm /tmp/*事物类型
Sergiy Kolodyazhnyy

1
很好,谢谢。当然,这并不是说我从来没有犯过这样的错误,但是我立即查看了错误并调整了我的做法,以使我再也没有犯错了:)只要您从中学习,这都是一种形成性的经验。
Lightness Races in Orbit Race '18
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.