rpm spec: conditionnel requis basé sur la version de distribution


8

J'essaie d'écrire une seule spécification de rpm pour RHEL / CentOS / SL 5 et 6. Cette spécification est pour l'application python, il n'y a donc aucune différence dans le processus de construction. Mais sur RHEL / CentOS5, je dois ajouter une dépendance supplémentaire.

Comment définirais-je la dépendance uniquement pour el5? J'ai essayé de suivre:

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

Ne fonctionne pas (construire sur CentOS5 n'ajoute pas de dépendance kmod-coretemp).

J'ai également essayé de suivre:

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

Il signale une erreur de syntaxe. Je suis sûr que la macro dist est définie et contient «el5». Mais je ne sais pas quelle est la syntaxe des conditions si en rpm? rpmguide n'a pas de réponse détaillée.

Réponses:



8

Le wiki Fedora, comme d'habitude, fournit les meilleures directives sur l'emballage. Jetez un œil à la page Packaging: DistTag . Vous pouvez utiliser la %{el5}variable et un raccourci conditionnel pour vous assurer que la Requireligne pertinente est utilisée lors de la création de packages pour EL5.

%{?el5:Requires: kmod-coretemp}

Vous voudrez probablement ajouter la distbalise au champ de version pour éviter toute confusion ultérieure entre les packages:

Release: 1%{?dist}

Voir But de la balise Dist .


Merci! Eh bien, mon système n'a pas cela pour une raison quelconque, mais j'ai défini la macro manuellement. Désolé, marquer la réponse Ignacio comme acceptée, car c'était la première.
rvs

1
S'ils ne sont pas présents, vous devrez peut-être installer le package à redhat-rpm-configpartir de Yum.
Dan Carley

Il est installé, mais toujours pas de macros. Je pense que c'est spécifique aux centos, car sur d'autres machines rhel5, ils sont en place.
rvs
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.