我使用 aptitude 作为软件包管理器。很多时候软件包会推荐一些其他软件包。
xfce4
xfce4-themes
例如建议。
这就说得通了。
但很多时候我都不知道为什么会有这样的建议。这对我有什么帮助?这意味着什么?
例如,i3
软件包建议使用诸如libpoe-perl
或 之类的东西libio-async-perl
。好吧,我也可以检查有关这些软件包的信息,但很多时候我并不清楚这些库如何帮助i3
完成任何事情。如果其中有i3
依赖它们的东西,为什么它们只是建议而不是强制的?
是否有一种标准的方法来获取有关我正在安装的软件包及其建议的软件包的协作的信息?
答案1
首先关于获取有关软件包的信息。您可以在网站上搜索包名称launchpad.net搜索您感兴趣的某个软件包的功能。以下链接是您提到的软件包的链接,供您参考:
同样,所有包裹都有这样的详细信息。
第二,对于建议、推荐的问题。这来自 Ubuntu 的起源,即 Debian。Debian FAQ (Debian 依赖项等常见问题解答...) 给出了以下详细信息。(这些原则可能在 Ubuntu 中就是这样的。)
Debian 软件包系统具有一系列软件包“依赖项”,旨在指示(在单个标志中)程序 A 可以独立于给定系统上的程序 B 的存在而运行的级别:
套餐A依靠如果为了运行 A 必须安装 B,则依赖于包 B。在某些情况下,A 不仅依赖于 B,还依赖于 B 的某个版本。在这种情况下,版本依赖性通常有一个下限,即 A 依赖于比某个指定版本更新的任何 B 版本。
套餐A建议包 B,如果包维护者判断,如果包 A 没有 B 所提供的功能,那么大多数用户就不会想要包 A。
套餐A建议如果 B 包含与 A 的功能相关(且通常会增强)的文件,则为包 B。
套餐A冲突如果系统中安装了 B,A 将无法运行,则与 B 包冲突。最常见的情况是 A 包含的文件比 B 中的文件有所改进。“冲突”通常与“替换”结合使用。
套餐A取代当 B 安装的文件被删除并且(在某些情况下)被 A 中的文件覆盖时,软件包 B。
套餐A休息当两个软件包无法同时在系统中配置时,软件包 B。如果系统中已安装并配置了其中一个软件包,则软件包管理系统将拒绝安装另一个软件包。
套餐A提供当 B 的所有文件和功能都合并到 A 中时,就会生成包 B。此机制为磁盘空间有限的用户提供了一种仅获取包 A 中真正需要的部分的方法。
通常用于建议的套餐,软件包开发者/维护者判断(可能基于使用情况统计和添加的功能)大多数用户不会想要某些软件包 A,除非它们同时具有软件包 B 所提供的功能。在这种情况下,就会出现建议的软件包。