Drehzahlspezifikation: Bedingt erforderlich basierend auf der Distribution-Version

8

Ich versuche, eine einzelne Drehzahlspezifikation für RHEL / CentOS / SL 5 und 6 zu schreiben. Diese Spezifikation ist für die Python-App, daher gibt es keine Unterschiede im Erstellungsprozess. Aber unter RHEL / CentOS5 muss ich eine zusätzliche Abhängigkeit hinzufügen.

Wie würde ich die Abhängigkeit nur für el5 definieren? Ich habe Folgendes versucht:

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

Funktioniert nicht (Build auf CentOS5 fügt keine kmod-coretemp-Abhängigkeit hinzu).

Ich habe auch folgendes versucht:

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

Es meldet mit Syntaxfehler. Ich bin sicher, dass das dist-Makro gesetzt ist und 'el5' enthält. Aber ich bin nicht sicher, wie lautet die Syntax von if-Bedingungen in U / min? rpmguide hat keine detaillierte Antwort.

rvs
quelle

Antworten:

8

Das Fedora-Wiki bietet wie üblich die besten Richtlinien für die Verpackung. Schauen Sie sich die Seite Verpackung: DistTag an . Sie können die %{el5}Variable und eine Kurzbedingung Requireverwenden, um sicherzustellen, dass die relevante Zeile beim Erstellen von Paketen für EL5 verwendet wird.

%{?el5:Requires: kmod-coretemp}

Sie sollten das distTag wahrscheinlich zum Versionsfeld hinzufügen , um spätere Verwechslungen zwischen Paketen zu vermeiden:

Release: 1%{?dist}

Siehe Zweck des Dist-Tags .

Dan Carley
quelle
Vielen Dank! Nun, mein System hat dies aus irgendeinem Grund nicht, aber ich habe das Makro manuell definiert. Entschuldigung, Ignacio-Antwort als akzeptiert markieren, da es die erste war.
RVS
1
Wenn sie nicht vorhanden sind, müssen Sie möglicherweise das Paket redhat-rpm-configvon Yum installieren .
Dan Carley
Es ist installiert, aber immer noch keine Makros. Ich glaube, es ist Centos-spezifisch, da sie auf anderen Rhel5-Maschinen installiert sind.
rvs