10

这似乎是一个简单的问题,但文档似乎没有什么要说的。我想做类似的事情,Requires: vim or emacs但是当我这样做时,我实际上依赖于vim,oremacs. 依赖两个包中的一个或另一个的语法是什么?

4

3 回答 3

18

执行此操作的标准方法是通过虚拟提供:提供 RPM 的每个状态都表明它们提供了一个虚拟包,并且依赖的 RPM 需要该虚拟包。因此,在您的示例中,vim两者emacs都是.Provides: text-editorRequires: text-editor

如果您所依赖的软件包没有提供适当的虚拟软件包,您可能会通过自己制作来解决这个问题。分别制作 和 的 dummymy-package-vim-modemy-package-emacs-modeRPMRequires: vimRequires: emacsProvides: my-package-text-editor然后拥有你的 package Requires: my-package-text-editor

于 2010-01-26T13:41:39.423 回答
8

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

Requires: /usr/bin/pear

这样,如果 pear 二进制文件是由 php-pear 或 php53-pear 提供的,那么你的包就无关紧要了。

于 2012-08-10T14:29:06.840 回答
2

rpm 中没有这样的能力。需要一个包共有的虚拟提供,如果有的话。

于 2010-01-26T13:38:24.240 回答