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.