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.