基于 RPM 的包管理器支持子命令,例如要求、推荐、冲突、过时、建议和补充。
在阅读 rpm 手册页和依赖项文档时,不清楚它们有何不同。
例如,如果我运行命令rpm --query --info MozillaFirefox
,将返回以下输出。
Name : MozillaFirefox
Version : 60.4.0
Release : lp150.3.30.1
Architecture: x86_64
Install Date: Sun 06 Jan 2019 07:43:50 AM NZDT
Group : Productivity/Networking/Web/Browsers
Size : 161608776
License : MPL-2.0
Signature : RSA/SHA256, Thu 13 Dec 2018 08:35:09 PM NZDT, Key ID b88b2fd43dbdc284
Source RPM : MozillaFirefox-60.4.0-lp150.3.30.1.src.rpm
Build Date : Wed 12 Dec 2018 10:35:10 PM NZDT
Build Host : cloud138
Relocations : (not relocatable)
Packager : http://bugs.opensuse.org
Vendor : openSUSE
URL : http://www.mozilla.org/
Summary : Mozilla Firefox Web Browser
Description :
Mozilla Firefox is a standalone web browser, designed for standards
compliance and performance. Its functionality can be enhanced via a
plethora of extensions.
如果我运行命令rpm --query --recommends MozillaFirefox
,将返回以下输出。
libavcodec-full >= 0.10.16
libcanberra0
libpulse0
我假设 libpulse0 指的是 PulseAudio 包。如果是,则命令rpm --query --info pulseaudio
返回
Name : pulseaudio
Version : 11.1
Release : lp150.4.1
Architecture: x86_64
Install Date: Sun 06 Jan 2019 06:49:12 AM NZDT
Group : System/Sound Daemons
Size : 3605819
License : GPL-2.0+ AND LGPL-2.1+
Signature : RSA/SHA256, Mon 23 Apr 2018 10:39:20 AM NZST, Key ID b88b2fd43dbdc284
Source RPM : pulseaudio-11.1-lp150.4.1.src.rpm
Build Date : Mon 23 Apr 2018 10:38:51 AM NZST
Build Host : build70
Relocations : (not relocatable)
Packager : https://bugs.opensuse.org
Vendor : openSUSE
URL : http://pulseaudio.org
Summary : A Networked Sound Server
Description :
pulseaudio is a networked sound server for Linux, other Unix like
operating systems and Microsoft Windows. It is intended to be an
improved drop-in replacement for the Enlightened Sound Daemon (ESOUND).
如果pulseaudio
软件包已经安装,为什么还要推荐安装libpulse0
?
- 推荐、冲突、过时、建议和补充指的是什么?
- 推荐、建议和补充之间有什么区别?
- 什么时候应该使用它们?
列出
MozillaFirefox
软件包推荐的软件包(我将在下面进一步解释)。与计算机解释的大多数事物一样,输出是按字面意思理解的。因此,libpulse0
建议涉及libpulse0
包裹,而不是pulseaudio
包裹。包列表是静态的,并按照
MozillaFirefox
包中的定义显示;它不考虑系统上已经安装的软件包。包关系如下:
这应该可以帮助您了解这些术语的含义、它们之间的区别以及何时应该使用它们。
是否实际考虑这些关系取决于所使用的包管理工具。
rpm
它本身处理单个包,因此只有强依赖关系对它很重要(“需要”)。据我所知,yum
也只考虑了强依赖关系。dnf
配置为默认安装弱依赖;见中的install_weak_deps
标志dnf.conf
。Zypperurpm
也可以配置为考虑弱依赖。另一个微妙之处是推荐/建议和补充/增强对之间的差异,即为什么我们需要两者。它们代表了可以在不同地方获得的知识。例如,可以选择使用库的包“知道”它可以这样做;适当的关系是“推荐”或“建议”。然而,像 Firefox 这样的包不可能知道它所有的插件,所以它不会尝试在“推荐”或“建议”中列出所有可用的插件;每个单独的插件都可以通过在其 RPM 规范中表明它“补充”或“增强”它来表明它向 Firefox 添加了功能。
有关详细信息,请参阅RPM 文档。