Это похоже на простой вопрос, но the docs, похоже, нечего сказать по этому вопросу. Я хотел бы сделать что-то вроде Requires: vim or emacs
, но когда я это сделаю, я действительно зависеть от vim
, or
и emacs
. Какой синтаксис зависит от того или иного из двух пакетов?Как я могу заставить RPM зависеть от пакета пакета ИЛИ?
ответ
Стандартный способ сделать это через виртуальные обеспечивает: предоставление 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
.
Нет такой возможности в об/мин. Требовать, чтобы виртуальный пакет обеспечивал общий доступ к пакетам, если таковой имеется.
Если у пакетов нет общего Provide, и вы не хотите перестраивать и поддерживать вилки этих пакетов, но оба они предоставляют одинаковый файл, вы можете зависеть от файла. Например:
Requires: /usr/bin/pear
Таким образом, ваш пакет не будет иметь значения, если груша двоичная обеспечивается PHP-груша или php53-груша.