2017-06-28 1 views
0

Si je le suit, il fonctionne très bien:Paquet d'installation de marionnettes supérieur à & inférieur à?

package { 
    2klic-certificates>=1.0.3: ensure => installed, 
} 

Mais 2klic-certificates est à partir d'un référentiel personnalisé où nous avons aussi des versions bêta. Donc j'aimerais aussi mettre une limite supérieure. Je suis en train:

package { 
    2klic-certificates>=1.0.3<1.1.0: ensure => installed, 
} 

Cela renvoie l'erreur:

Error: Execution of '/usr/bin/apt-get -q -y -o DPkg::Options::=--force-confold --force-yes install 2klic-certificates>=1.0.3<1.1.0' returned 100: Reading package lists... 
Building dependency tree... 
Reading state information... 
E: Unable to locate package 2klic-certificates> 
Error: /Stage[main]/Main/Node[default]/Package[2klic-certificates>=1.0.3<1.1.0]/ensure: change from purged to present failed: Execution of '/usr/bin/apt-get -q -y -o DPkg::Options::=--force-confold --force-yes install 2klic-certificates>=1.0.3<1.1.0' returned 100: Reading package lists... 
Building dependency tree... 
Reading state information... 
E: Unable to locate package 2klic-certificates> 

J'ai aussi essayé:

package { 
    2klic-certificates>=1.0.3 and <1.1.0: ensure => installed, 
} 

En regardant à travers le documentation Je ne vois pas une option explicitement spécifiez un numéro de version minimum et maximum. Est-ce possible?

+1

Non, vous ne pouvez pas le faire intrinsèquement. J'ai réalisé ceci avant avec un fait fait sur commande de combo fait/fonction faite sur commande/type défini. –

+0

@MattSchuchard intéressé à entendre plus. Je ne peux pas imaginer comment un fait entrerait en jeu pour ce cas d'utilisation. –

+0

@MattSchuchard Je pense que vous avez peut-être stocké la version d'un programme comme un fait et utilisé différents fichiers confiig basés sur cela? –

Répondre

0

Je laisserai cette ouverture car cette réponse n'est pas une solution complète, mais plutôt une solution de contournement (confirmé pour fonctionner sur les systèmes basés sur apt).

Nous avions la liberté de contrôler notre convention de nommage des paquets et de les combiner avec des caractères génériques. Ainsi, par exemple:

package { 
    2klic-certificates>=1.0.*: ensure => latest, 
} 

Assurez-vous que le dernier paquet de la section 1.0 est installé.

Donc, si un nœud a la version 1.0.1 et 1.0.3 est disponible et nous avons une version bêta de 1.1.0, ce qui précède se assurer 1.0.3 est installé sur nos nœuds principaux et ignorer la version bêta. Comme mentionné, ceci n'est pas une vraie solution car vous ne pouvez pas toujours contrôler la convention de nommage pour les versions. Cela fonctionne pour ma question initiale mais si vous vouliez entre 1.0.1 et 1.1.5 par exemple ce serait essentiellement inutile.


Dans ce cas, je vous conseille de regarder les extraits publiés par @MattSchuchard