自动删除安全吗?

Han*_*bid 2 apt

我正在运行 Ubuntu 14.04 并且对使用它有点陌生。因此,每次我通过 aptitude 或 apt-get 安装某些东西时,都会收到此消息,如下所示。除非我删除这些软件包,否则 Aptitude 不会让我继续安装,但是,我使用 apt-get 解决了它。删除这些包而不会弄乱某些东西对我来说安全吗?

The following packages were automatically installed and are no longer required: gir1.2-totem-1.0 gir1.2-totem-plparser-1.0 libtotem0 linux-headers-3.19.0-25 linux-headers-3.19.0-25-generic linux-image-3.19.0-25-generic linux-image-extra-3.19.0-25-generic Use 'apt-get autoremove' to remove them.

tho*_*ter 8

当您安装一个包并且 APT 需要安装一个或多个您没有明确请求的附加包时,因为它们是依赖项,APT 会保留这些是“自动安装”的记录——即,它们没有被明确请求。

它记住这一点的唯一原因是,当所有依赖它们的包也被删除时,它知道它可以自动删除这些附加包。

使用 apt-get,这可以通过以下任一方式完成

apt-get remove <mainpackage>
apt-get autoremove
Run Code Online (Sandbox Code Playgroud)

或者,您可以告诉 apt-get 同时执行自动删除:

apt-get autoremove <mainpackage>
Run Code Online (Sandbox Code Playgroud)

注意:其他 APT 前端如 aptitude 也可以利用这一点。

auto-remove 语句告诉 APT 删除任何标记为自动安装的包,并且不再安装依赖于它们的包。

在几乎所有情况下,此操作都是安全的,因为它们很可能是您从未直接与之交互的包;只能通过依赖于它们的其他包。

这可能会导致问题的唯一情况是,当一个包最初在没有明确请求的情况下自动安装,但后来您开始直接使用该包时。当你把原来依赖的包去掉之后再做autoremove,你会发现你开始使用的这个新包也没有了,因为它原来是标记为自动安装的。

这种操作很容易逆转,通常不是什么大问题,而且这种情况很少见。使用 apt-get,您可以通过显式请求安装来确保永远不会自动删除已安装的软件包

apt-get install <package>
Run Code Online (Sandbox Code Playgroud)

如果该软件包已安装,它将保持安装状态,仅删除其“自动安装”状态。