Dependencies 如何使RPM依赖于包a或包b?

Dependencies 如何使RPM依赖于包a或包b?,dependencies,rpm,requires,Dependencies,Rpm,Requires,这似乎是一个简单的问题,但似乎没有什么要说的主题。我想做一些类似于Requires:vim或emacs的事情,但当我这样做时,我实际上依赖于vim、或和emacs。依赖于两个包中的一个或另一个包的语法是什么?rpm中没有这种功能。如果有一个虚拟包,则需要一个虚拟包。执行此操作的标准方法是通过虚拟提供:提供RPM的每个状态都提供一个虚拟包,并且从属RPM需要该虚拟包。因此,在您的示例中,vim和emacs都提供了:文本编辑器,您的包将需要:文本编辑器 如果您所依赖的软件包没有提供合适的虚拟软件包,

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

rpm中没有这种功能。如果有一个虚拟包,则需要一个虚拟包。执行此操作的标准方法是通过虚拟提供:提供RPM的每个状态都提供一个虚拟包,并且从属RPM需要该虚拟包。因此,在您的示例中,
vim
emacs
都提供了:文本编辑器
,您的包将
需要:文本编辑器


如果您所依赖的软件包没有提供合适的虚拟软件包,那么您可能会通过构建自己的虚拟软件包来解决这个问题。分别使虚拟
my package-vim模式
my package-emacs模式
RPM
需要:vim
需要:emacs
,并
提供:my package-text-editor
,然后让您的包
需要:my package-text-editor
如果包没有公共提供,您不想重建和维护这些包的分支,但它们都提供相同的文件,您可以依赖于一个文件。例如:

Requires: /usr/bin/pear
这样,无论pear二进制文件是由php pear还是php53 pear提供,您的包都不会有任何影响