Existe uma maneira de especificar uma dependência onde qualquer pessoa de um grupo possa satisfazer a demanda?

Existe uma maneira de especificar uma dependência onde qualquer pessoa de um grupo possa satisfazer a demanda?

Digamos que estou empacotando um RPM que requerumda seguinte,

Foo
Bar
Baz

O RPM suporta a funcionalidade de colocar isso em um arquivo de especificações?

Responder1

Vou converter o comentário de Larsen em uma resposta:

A partir do rpm 4.13.0, o rpm suporta expressões booleanas em todas as dependências.https://rpm.org/user_doc/more_dependencies.html

Por exemplo:

Requires: (pkgA or (pkgB and pkgC))

No seu caso seria:

Requires: Foo or Bar or Baz

Disponibilidade em rpm-4.13+ significa que está disponível no RHEL 8 e em todos os Fedoras recentes.

Se você quiser isso no RHEL 7, poderá solucionar isso usando suprimentos virtuais. Você pode especificar:

Requires: some-server-capability

e depois nos pacotes Foo, Bar, Baz você tem que colocar lá:

Provides: some-server-capability

Infelizmente, isso requer modificação dos pacotes Foo, Bar e Baz. Se eles não estiverem sob seu controle e você estiver no RHEL 7 ou mais antigo, você estará condenado.

Observe que alguns pacotes já usam essas ofertas virtuais. Por exemplo, você pode:

Requires: smtp-server
Requires: webserver

E, por exemplo, o servidor web é fornecido pelos pacotes httpd, nginx ou lightttpd.

informação relacionada