¿Hay alguna manera de especificar una dependencia en la que cualquiera de un grupo pueda satisfacer la demanda?

¿Hay alguna manera de especificar una dependencia en la que cualquiera de un grupo pueda satisfacer la demanda?

Digamos que estoy empaquetando un RPM que requiereunode los siguientes,

Foo
Bar
Baz

¿RPM admite la funcionalidad de poner eso en un archivo de especificaciones?

Respuesta1

Voy a convertir el comentario de Larsen en una respuesta:

A partir de rpm 4.13.0, rpm admite expresiones booleanas en todas las dependencias.https://rpm.org/user_doc/more_dependencies.html

Por ejemplo:

Requires: (pkgA or (pkgB and pkgC))

En tu caso sería:

Requires: Foo or Bar or Baz

La disponibilidad en rpm-4.13+ significa que está disponible en RHEL 8 y todos los Fedoras recientes.

Si desea esto en RHEL 7, puede solucionarlo utilizando suministros virtuales. Puedes especificar:

Requires: some-server-capability

y luego en los paquetes Foo, Bar, Baz tienes que poner ahi:

Provides: some-server-capability

Desafortunadamente, esto requiere la modificación de los paquetes Foo, Bar y Baz. Si no están bajo su control y tiene RHEL 7 o una versión anterior, entonces está condenado.

Tenga en cuenta que algunos paquetes ya utilizan esta oferta virtual. Por ejemplo, puedes:

Requires: smtp-server
Requires: webserver

Y, por ejemplo, el servidor web lo proporcionan los paquetes httpd, nginx o lightttpd.

información relacionada