especificación rpm: requiere condicional basado en la versión de distribución


8

Estoy tratando de escribir una sola especificación de rpm para RHEL / CentOS / SL 5 y 6. Esta especificación es para la aplicación python, por lo que no hay diferencias en el proceso de compilación. Pero en RHEL / CentOS5 necesito agregar una dependencia adicional.

¿Cómo definiría la dependencia solo para el5? He intentado lo siguiente:

%if 0%{?redhat} == 5 || 0%{?centos} == 5
Requires:   kmod-coretemp
%endif

No funciona (construir en CentOS5 no agrega dependencia kmod-coretemp).

También he intentado lo siguiente:

%if %{?dist} == "el5"

Informa con error de sintaxis. Estoy seguro de que dist macro está configurado y contiene 'el5'. Pero no estoy seguro de cuál es la sintaxis de if condicionales en rpm? rpmguide no tiene una respuesta detallada.

Respuestas:



8

La wiki de Fedora, como de costumbre, proporciona las mejores pautas sobre el empaquetado. Eche un vistazo a la página Empaquetado: DistTag . Puede usar la %{el5}variable y una condicional abreviada para asegurarse de que la Requirelínea relevante se use al crear paquetes para EL5.

%{?el5:Requires: kmod-coretemp}

Probablemente desee agregar la distetiqueta al campo de versión para evitar confusiones posteriores entre paquetes:

Release: 1%{?dist}

Ver Propósito de la etiqueta Dist .


¡Gracias! Bueno, mi sistema no tiene esto por alguna razón, pero he definido la macro manualmente. Lo siento, marcando la respuesta de Ignacio como aceptada, ya que fue la primera.
— rvs

1
Si no están presentes, es posible que deba instalar el paquete redhat-rpm-configdesde Yum.
— Dan Carley

Está instalado, pero aún no hay macros. Creo que es centos específico, ya que en otras máquinas rhel5 están en su lugar.
— rvs
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.