spec. rpm: condizione condizionale basata sulla versione distro


8

Sto cercando di scrivere una singola specifica rpm per RHEL / CentOS / SL 5 e 6. Questa specifica è per l'app Python, quindi non ci sono differenze nel processo di compilazione. Ma su RHEL / CentOS5 ho bisogno di aggiungere una dipendenza aggiuntiva.

Come definirei dipendenza solo per el5? Ho provato a seguire:

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

Non funziona (compilato su CentOS5 non aggiunge la dipendenza kmod-coretemp).

Ho provato anche a seguire:

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

Segnala con errore di sintassi. Sono sicuro che la macro dist è impostata e contiene 'el5'. Ma non sono sicuro di quale sia la sintassi di if conditionals in rpm? rpmguide non ha una risposta dettagliata.

Risposte:



8

La wiki di Fedora, come al solito, fornisce le migliori linee guida sull'imballaggio. Dai un'occhiata alla pagina Packaging: DistTag . È possibile utilizzare la %{el5}variabile e una condizione abbreviata per assicurarsi che Requirevenga utilizzata la riga pertinente durante la creazione di pacchetti per EL5.

%{?el5:Requires: kmod-coretemp}

Probabilmente vorrai aggiungere il disttag al campo versione per evitare confusioni successive tra i pacchetti:

Release: 1%{?dist}

Vedi Scopo del tag Dist .


Grazie! Bene, il mio sistema non ha questo per qualche motivo, ma ho definito la macro manualmente. Scusate, contrassegnando Ignacio come accettata, poiché era la prima.
camper

1
Se non sono presenti, potrebbe essere necessario installare il pacchetto redhat-rpm-configda Yum.
Dan Carley,

È installato, ma ancora nessuna macro. Credo che sia specifico per centos, come su altre macchine rhel5 sono a posto.
camper
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.