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-baret 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' andbar-foo fournit beagle and my package works with either (or both); but other packages require eithereagle orbeagle orfoo-bar orbar-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 %prescript 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-barou whatrequires beagle.
MISE À JOUR: À la réflexion, la douleur d'exiger que les gens installent foo-barlà 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-fooest 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, %postdirectement, jouer avec la base de données de RPM. Ainsi %prepourrait me protéger contre une défaillance de l' installation, et %postserait rétroactivement dire RPM que je requiers soit foo-barou bar-fooou 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 %preet %postsections, ne pas essayer de vaincre le système .