RPM 如何解决条件“<capability> if <capability>”类型的依赖关系?

Adm*_*Bee 5 rpm dependencies

在检查 RHEL8 软件包的依赖关系时,我最近遇到了以下依赖关系声明:

~$ rpm -qpv --需要 cockpit-ws-264.1-1.0.1.el8.x86_64.rpm
帖子:(policycoreutils 如果以 selinux-policy 为目标)
手册:(selinux-policy >= 3.14.3-95.0.1.el8,如果以selinux-policy为目标)
...

我理解or类型要求声明,但是 RPM 包管理如何处理if类型依赖关系?

  • 在上面的示例中,这是否意味着仅当目标系统中已存在时才policycoreutils需要?selinux-policy-targeted
  • 同样,只有已经安装selinux-policy才需要吗?selinux-policy-targeted或者版本要求 ( >= 3.14.3-95.0.1.el8) 仅在安装后才适用(尽管在-type 要求的selinux-policy-targeted情况下这会偏离含义)?or

Ste*_*itt 4

a if b相当于a or not(b),所以是的,policycoreutils仅是安装时的要求selinux-policy-targeted

if运算符适用于整个依赖项,因此仅在安装selinux-policy >= 3.14.3-95.0.1.el8时才需要。selinux-policy-targeted

if在此上下文中,是 RPM 中的布尔运算符,并在RPM 参考手册布尔依赖项部分中进行了记录。