如果我尝试卸载一个元包,apt实际上并不会删除元包的依赖项,只会删除"包装器"本身。即使运行apt autoremove命令,这些子包也不会被列出。我发现很困惑的是,autoremove命令可以删除大多数普通软件包的依赖项,但对于许多元包却不起作用。为什么会这样呢?
apt autoremove
来摆脱这些自动安装的软件包。lubuntu-desktop
需要lxqt-core
lxqt-core
需要lxqt-panel
lxqt-panel
依赖于lxqt-core
。实际上,这个依赖关系不是Requires
,而是Recommends
- 但这应该足够让apt决定不自动删除任何一个软件包。以下答案提供了更多细节:
Ubuntu的ubiquity安装程序所安装的所有软件包都被标记为“手动”(而不是“自动”),这使得所有这些软件包都不能自动删除。
当然,您仍然可以删除它们,只是无法自动删除。
Ubuntu服务器、Minimal Image和Cloud Image安装程序并不基于ubiquity,它们的软件包是符合自动删除条件的。
如果您对apt-marking不熟悉,那就是apt用来跟踪管理员指定的依赖项(“手动”)和作为依赖项引入的依赖项(“自动”)的方式。有关更多信息,请参阅man apt-mark
。
非标准Ubiquity行为的原因是为了保护您:人们以各种方式修改他们的桌面系统,其中一些方式需要删除元软件包。大多数用户通常并不打算删除整个桌面系统,但如果意外发生,则可能会引起相当重要的情绪事件。因此,Ubuntu开发人员进行了更改,以保护用户免受其自身(无意中的)错误影响。毕竟,Ubuntu也面向新手和不熟练的用户。
想要精简软件包,只保留实际使用的功能的朋友们(我们都曾尝试过这样做),从Minimal Image开始逐步构建会比与apt-marking抗争来减少软件包要容易得多。
apt autoremove
不会显示任何元软件包的依赖关系,而如果卸载一个“普通”的软件包,则会显示出来。对此有什么想法吗? - tech4himxubuntu-desktop
,kubuntu-desktop
,lubuntu-desktop
等),都发生了这种情况。要卸载它们,我总是不得不返回到Apt日志。 - tech4him