Forum Linux.redhat Rpm et Require conditionnel

Posté par  (site web personnel) .
Étiquettes :
1
21
juin
2012

Bonjour,

Je gère un rpm (appelons le toto) qui a besoin des commandes i2cxxx présentes dans les i2c tools (http://www.lm-sensors.org/wiki/I2CTools)

En rhel6.2, redhat avait oublié de livrer les i2c-tools, j'ai donc créé mon propre rpm 'mon_i2c' avec ces outils dont mon rpm principal 'toto' dépend avec dans mon specfile une ligne

Require: mon_i2c

En rhel6.3, ces outils sont présents (merci le support de redhat http://rhn.redhat.com/errata/RHEA-2012-0814.html). Cool, à la poubelle mon_i2c !

Par contre j'aimerai bien que les nouvelles versions de mon rpm toto puissent être installées sur une 6.2 ou une 6.3. Donc qu'il dépende de mon_i2c OU de i2c-tools suivant ce qu'il y a dans les dépots. Comment est-ce que je peux faire ça dans mon specfile ? (genre comme le | de la ligne Depends dans debian/control)

Merci

  • # virtual provide

    Posté par  . Évalué à 4.

    Puisque c'est toi qui gère également ton mon_i2c, le plus simple est de mettre à ton package toto une dépendance qui correspondra au paquet i2c de rhel6.3, et modifier ton mon_i2c pour qu'il déclare quil fournit cette dépendance.

  • # dependance sur un fichier

    Posté par  (site web personnel) . Évalué à 3.

    le Tag require permet de spécifier un package, mais aussi un fichier (il doit commencer par un "/"), par exemple :

    Requires: /bin/sh /usr/bin/perl /usr/libexec/webmin webmin rrdtool perl-rrdtool

    mais il faut que les fichiers soient installés en 6.2 et 6.3 dans le même répertoire.

  • # or

    Posté par  . Évalué à 3.

    il semble que l'équivalent du | de dpkg pour rpm soit … or

    vu ici https://www.redhat.com/advice/tips/rpm_revisited.html

    You can also use or to specify more than one possibility. For example:
    perl(IO-Wrap) == 4.5 or perl(IO-Wrap)-4.5

  • # Réponse groupée

    Posté par  (site web personnel) . Évalué à 3. Dernière modification le 22 juin 2012 à 09:40.

    Salut et merci à tous les 3 pour vos réponses.

    • virtual provide: j'avais pensé à un "équivalent" en changeant le nom de mon_i2c, mais si possible comme mon_i2c devient obsolète je préfère éviter de le modifier et le relivrer.

    • Bonne idée, mais pas de chance j'installe dans /usr/local et redhat dans /usr :(

    • or : ah ben voila, c'est ce que je cherchais \o/ j'ai eu beau me palucher des tonnes de doc sur les rpm, j'ai pas vu ça. Y'a plus qu'à tester

    Encore merci à vous trois.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.