有谁知道如何(或是否可以)在规范文件中指定替代需求或一组需求,而不是单个需求?
例如,假设有两个包可用,方便地命名为foo-bar和bar-foo. 我的包裹需要其中之一,但不是两者都需要,而且我不在乎存在哪一个。在运行时,我使用任何可用的。
如此有效,我想用一种方式说:
Requires: foo-bar OR bar-foo
Run Code Online (Sandbox Code Playgroud)
据我所知这是不可能的,但我认为这里有人比我更了解 RPM,所以也许有办法做到这一点。
更新:我只控制bar-foo,而不是的包装foo-bar,因此两者都提供虚拟包将不起作用。
更新:我真正需要的是每个包内的虚拟包。假设foo-bar provides eagle' andbar-foo 提供了 beagle and my package works with either (or both); but other packages require eithereagle orbeagle orfoo-bar orbar-foo`,目标系统可以安装其中一个或两个。
我目前倾向于使用执行以下操作的%pre脚本来解决此问题:
rpm -q eagle || rpm -q beagle || echo "need eagle or beagle" && /bin/false
Run Code Online (Sandbox Code Playgroud)
虽然我很确定这会起作用,但它似乎是对 RPM 依赖项跟踪的残酷规避。例如,当您询问whatrequires foo-bar或时,您永远不会看到我的包裹whatrequires beagle。
更新:再想一想,foo-bar …
rpm ×1