如何使RPM依赖于包OR包?

kdt*_*kdt 9 dependencies rpm requires

这似乎是一个简单的问题,但文档似乎没有任何关于这个主题的说法.我想做点什么,Requires: vim or emacs但是当我这样做时,我实际上依赖于vim,or而且emacs.取决于两个包中的一个或另一个的语法是什么?

Jos*_*ley 18

执行此操作的标准方法是通过虚拟提供:为每个状态提供RPM,它们提供虚拟包,而从属RPM需要虚拟包.所以,在你的榜样,vim并且emacsProvides: text-editor和你的包会Requires: text-editor.

如果您所依赖的软件包没有提供适当的虚拟软件包,您可能可以通过编写自己的软件包来解决这个问题.让虚拟my-package-vim-modemy-package-emacs-modeRPM包是Requires: vimRequires: emacs,分别和Provides: my-package-text-editor,然后让你的包Requires: my-package-text-editor.


Jak*_*sic 7

如果软件包没有公共Provide,并且您不想重建和维护该软件包的分支,但它们都提供相同的文件,则可以依赖于文件.例如:

Requires: /usr/bin/pear
Run Code Online (Sandbox Code Playgroud)

这样,如果pear-binary由php-pear或php53-pear提供,那么你的包将无关紧要.