小编Kev*_*ost的帖子

可以在 RPM 规范文件中要求“这个或那个”包吗?

有谁知道如何(或是否可以)在规范文件中指定替代需求或一组需求,而不是单个需求?

例如,假设有两个包可用,方便地命名为foo-barbar-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

33
推荐指数
3
解决办法
2万
查看次数

标签 统计

rpm ×1