正如主题所读,我想知道是否可以在 RPM 规范文件中使所需的包依赖于某个条件?
例如,如果在安装目标上,则检查 shell 语句,例如主机正在使用绑定接口
并且仅当要求生效时。
作为您最初问题的答案 - 是的,这是可能的,但是您可以实现的内容取决于您想要用作条件的内容,并且这些条件是在包的构建期间而不是在安装期间写入包中的。您可以轻松地在 .spec 中执行某些操作,例如
%if some_condition_is_true
Requires: foo
%else
Requires: bar
%endif
问题是,这有多大意义?您的特定用例是什么?
对于您所描述的情况,这是不可能的,因为您无法在安装期间更改软件包。对于您的场景,您有几种选择:
- 创建包的两个版本,一种用于绑定,一种用于没有主机的主机
- 将绑定主机所需的部分分开
子包,并且仅将其安装在需要它的主机上
- 将绑定主机的逻辑放在
%pre/%post
脚本,以便它仅有条件地运行。
- 使用一些虚拟需求,这些需求由多个包满足,然后在主机上添加一些配置,优先考虑您需要的包,即绑定或不绑定的包。但这是高度特定于发行版的......
有关自 rpm.org v4.12 以来大部分可用的条件/动态宏的更多详细信息,请参阅https://web.archive.org/web/20160513021804/http://rpm.org/wiki/DynamicDependencies
有关的更多详细信息%pre/%post
和其他脚本参见例如https://fedoraproject.org/wiki/Packaging:ScriptletSnippets
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)