Как я могу сделать RPM зависеть от пакета или пакета b? - PullRequest
9 голосов
/ 26 января 2010

Это кажется простым вопросом, но документы , похоже, ничего не могут сказать по этому вопросу. Я хотел бы сделать что-то вроде Requires: vim or emacs, но когда я это делаю, я фактически зависим от vim, or и emacs. Каков синтаксис зависимости от одного или другого из двух пакетов?

Ответы [ 3 ]

18 голосов
/ 26 января 2010

Стандартный способ сделать это с помощью виртуальных средств: обеспечить 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, затем получите пакет Requires: my-package-text-editor.

7 голосов
/ 10 августа 2012

Если у пакетов нет общего Provide, и вы не хотите перестраивать и поддерживать ветки этих пакетов, но оба они предоставляют один и тот же файл, вы можете зависеть от файла. Например:

Requires: /usr/bin/pear

Таким образом, ваш пакет не будет иметь значения, если бинарный файл pear предоставлен php-pear или php53-pear.

2 голосов
/ 26 января 2010

В rpm такой возможности нет. Требовать, чтобы виртуальные пакеты имели общие пакеты, если они есть.

...