当给出一个包作为参数时,apt-get autoremove 如何工作?

当给出一个包作为参数时,apt-get autoremove 如何工作?

我最近登录了一台共享服务器,想看看为什么我无法访问 Samba 共享。我尝试打开smb.confvim发现vim不再安装。我发现我的 Samba 共享无法访问,因为samba也不再安装。

我查看了apt日志并看到了 Samba 被删除时的时间戳,然后查看了一下auth.log,发现了那段时间左右的这一行:

COMMAND=/usr/bin/apt-get autoremove libpython3.8-stdlib

我能找到的每个apt/示例apt-get autoremove都显示它在没有参数的情况下被调用。当你给它一个包时会发生什么?这会明确删除该包及其所有级联依赖项吗?这是我能想到的唯一解释,可以解释为什么sambavim被卸载。

答案1

您的假设(几乎)是正确的。运行apt-get autoremove <package>将首先删除<package>,然后自动删除,就像您apt-get autoremove没有使用任何参数运行一样(即删除所有不依赖任何“手动安装”软件包的“自动安装”软件包)

这里的重要区别是,运行的自动删除部分apt-get autoremove <package>不仅会删除依赖的包<package>,还会删除全部否则将被自动删除的软件包。

相关内容