requisitos de dependencia condicionales rpm

John :

Estoy trabajando en una pieza de software hace un momento que necesita ejecutarse en una nueva versión de Red Hat. En la actualidad trabaja muy bien los días 6 y 7, pero ahora necesita para instalar y ejecutar en RedHat 8.

No hay nada realmente específica en el software que va a dejar de hacerlo funcionar en la versión del sistema operativo más nuevo pero estoy teniendo un problema con los requisitos de dependencia. El script que se ejecuta el software necesita tener acceso a semanage (/ usr / sbin / semanage). En RedHat 6 y 7 de este paquete fue suministrado por policycoreutils-python y se dio como un argumento requisito cuando el número de revoluciones fue construido. De Redhat 8 en adelante, el paquete se ha cambiado a policycoreutils-python-utils (véase este enlace , sección 8.6.2).

De rpm 4.13, existe un apoyo para las dependencias booleanos (ver aquí ), que haría de este un arreglo fácil como acabo podría hacer algo así -R (policycoreutils-python or policycoreutils-python-utils), pero cambiando el paquete rpm-build de la versión actual 4.8 es un dolor importante ya que es utilizado por otro equipo por otra pieza de software. También tengo que mantenerlo en rpm independiente distribución por lo que no puede tener diferentes versiones de las revoluciones por minuto para las versiones más recientes del sistema operativo.

Por lo tanto, mis preguntas:

1) ¿Hay alguna otra manera de tener un requisito condicional en el archivo de especificaciones con la versión anterior 4.8 rpm?

2) Si tuviera que obtener la aprobación para actualizar a la última rpm 4,15, es probable que haya ningún problema en los sistemas de destino que tienen mayores rpm instalado, por ejemplo no entender el condicional?

Actualización: Las rpm se construirá una vez en una caja RH 6 y debería funcionar en RH 7 y 8.

Chris Field:

si se construye un rpm para todas las plataformas

Usted puede depender de semanagesí mismo:

Requires: /usr/sbin/semanage

yum, dnfO rpmdebe ser lo suficientemente inteligente como para trabajar en eso.

si se construye cada rpm en el objetivo correspondiente:

puede utilizar las %rhel_versionmacros, consulte https://en.opensuse.org/openSUSE:Build_Service_cross_distribution_howto :

%if 0%{?rhel_version} < 800
Requires: policycoreutils-python
%else
Requires: policycoreutils-python-utils
%endif

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=280907&siteId=1
Recomendado
Clasificación