这似乎是一个简单的问题,但the docs似乎没有任何关于这个问题的说法。我想做Requires: vim or emacs
之类的事情,但当我这样做时,我实际上依赖于vim
,or
和emacs
。取决于两个包中的一个或另一个的语法是什么?
答案 0 :(得分:18)
执行此操作的标准方法是通过虚拟提供:为每个状态提供RPM,它们提供虚拟包,而从属RPM需要虚拟包。因此,在您的示例中,vim
和emacs
都是Provides: text-editor
,您的包将Requires: text-editor
。
如果您所依赖的软件包没有提供适当的虚拟软件包,您可能可以通过编写自己的软件包来解决这个问题。制作分别为my-package-vim-mode
和my-package-emacs-mode
以及Requires: vim
的虚拟Requires: emacs
和Provides: my-package-text-editor
RPM,然后打包Requires: my-package-text-editor
。
答案 1 :(得分:7)
如果软件包没有公共Provide,并且您不想重建和维护该软件包的分支,但它们都提供相同的文件,则可以依赖于文件。例如:
Requires: /usr/bin/pear
如果梨二进制文件由php-pear或php53-pear提供,那么你的软件包将无关紧要。
答案 2 :(得分:2)
rpm中没有这样的功能。需要虚拟提供包具有共同点(如果有)。