Quelqu'un sait-il comment (ou si l'on peut) spécifier une autre exigence ou un ensemble d'exigences dans un fichier de spécifications, par opposition à une seule exigence?
Par exemple, supposons qu'il existe deux packages disponibles, nommés foo-bar
et bar-foo
. Mon colis nécessite l'un d'eux, mais pas les deux, et je me fiche de savoir lequel est présent. Au moment de l'exécution, j'utilise celui qui est disponible.
Donc, effectivement, je voudrais une façon de dire:
Requires: foo-bar OR bar-foo
Pour autant que je sache, ce n'est pas possible, mais je pense qu'il y a des gens ici qui en savent beaucoup plus sur RPM que moi, alors peut-être qu'il y a un moyen de le faire.
MISE À JOUR: Je contrôle uniquement l'empaquetage de bar-foo
, non foo-bar
, donc les deux fournissent un paquet virtuel ne fonctionnera pas.
MISE À JOUR: La chose dont j'ai réellement besoin est en soi un paquet virtuel à l'intérieur de chacun des paquets. Supposons que foo-bar provides eagle' and
bar-foo fournit beagle and my package works with either (or both); but other packages require either
eagle or
beagle or
foo-bar or
bar-foo`, et le système cible peut avoir l'un ou les deux installés.
Je suis actuellement en train de résoudre ce problème avec un %pre
script qui fait quelque chose comme:
rpm -q eagle || rpm -q beagle || echo "need eagle or beagle" && /bin/false
Bien que je sois presque sûr que cela fonctionnerait, cela semble être un contournement brutal du suivi des dépendances de RPM. Par exemple, vous ne verriez jamais mon colis lorsque vous avez demandé whatrequires foo-bar
ou whatrequires beagle
.
MISE À JOUR: À la réflexion, la douleur d'exiger que les gens installent foo-bar
là où ils pourraient ne pas être moins que la douleur de contourner la gestion des dépendances RPM, au moins pour ma situation. Donc, à moins que quelqu'un ne trouve un moyen d'exiger correctement "ceci OU cela" (ce qui, à mon avis, serait une excellente fonctionnalité dans RPM en général), je prévois d'exiger uniquement foo-bar
, puis, au moment de l'exécution, s'il bar-foo
est disponible, je choisirai entre les selon tous les critères dont j'ai besoin.
MISE À JOUR: une autre idée, qui tricherait également RPM mais pourrait mettre les choses dans le bon état. Je pourrais peut-être, %post
directement, jouer avec la base de données de RPM. Ainsi %pre
pourrait me protéger contre une défaillance de l' installation, et %post
serait rétroactivement dire RPM que je requiers soit foo-bar
ou bar-foo
ou les deux, selon ce qui est là quand j'installation.
Merci pour les suggestions!
Provides: foo-bar
, donc il satisfait les deux dépendances. Pour les versions rpm plus récentes, vérifiez les dépendances booléennes . Éloignez -vous %pre
et %post
sections, ne pas essayer de vaincre le système .