Есть ли способ определить зависимость, при которой любой член группы может удовлетворить спрос?

Есть ли способ определить зависимость, при которой любой член группы может удовлетворить спрос?

Допустим, я упаковываю RPM, который требуетодиниз следующих,

Foo
Bar
Baz

Поддерживает ли RPM функцию помещения этого в файл спецификации?

решение1

Я собираюсь преобразовать комментарий Ларсена в ответ:

Начиная с версии rpm 4.13.0, rpm поддерживает логические выражения во всех зависимостях.https://rpm.org/user_doc/more_dependencies.html

Например:

Requires: (pkgA or (pkgB and pkgC))

В вашем случае это будет:

Requires: Foo or Bar or Baz

Наличие в rpm-4.13+ означает, что он доступен в RHEL 8 и всех последних Fedora.

Если вы хотите это в RHEL 7, то вы можете обойти это с помощью virtual provide. Вы можете указать:

Requires: some-server-capability

и затем в пакетах Foo, Bar, Baz нужно поместить:

Provides: some-server-capability

К сожалению, это требует модификации пакетов Foo, Bar и Baz. Если они не находятся под вашим контролем и вы используете RHEL 7 или старше, то вы обречены.

Обратите внимание, что некоторые пакеты уже используют этот виртуальный provide. Например, вы можете:

Requires: smtp-server
Requires: webserver

Например, веб-сервер предоставляется пакетами httpd, nginx или lightttpd.

Связанный контент