2010-01-26 3 views
9

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

ответ

18

Стандартный способ сделать это через виртуальные обеспечивает: предоставление RPM каждому состоянию, в котором они предоставляют виртуальный пакет, а зависящий RPM требует наличия виртуального пакета. Итак, в вашем примере vim и emacs оба Provides: text-editor, и ваш пакет будет Requires: text-editor.

Если пакеты, в которых вы находитесь, не предоставляют соответствующий виртуальный пакет, вы, вероятно, можете взломать это, сделав свой собственный. Сделайте манекен my-package-vim-mode и my-package-emacs-mode RPM, которые Requires: vim и Requires: emacs, соответственно, и Provides: my-package-text-editor, а затем получите свой пакет Requires: my-package-text-editor.

2

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

7

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

Requires: /usr/bin/pear 

Таким образом, ваш пакет не будет иметь значения, если груша двоичная обеспечивается PHP-груша или php53-груша.