【问题标题】:How can I make an RPM depend on package a OR package b?如何使 RPM 依赖于包 a 或包 b?
【发布时间】:2011-01-09 12:34:35
【问题描述】:

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

【问题讨论】:

    标签: dependencies rpm requires


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

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

        Requires: /usr/bin/pear
        

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

        【讨论】:

          猜你喜欢
          • 2014-03-24
          • 1970-01-01
          • 2015-08-08
          • 1970-01-01
          • 1970-01-01
          • 2021-05-01
          • 2011-12-04
          • 2018-11-11
          • 2020-02-19
          相关资源
          最近更新 更多