J'utilise la marionnette pour installer certains Python Packages à l'aide de PIP. J'utilise la marionnette 2.7, alors mes déclarations de colis ressemblent à ceci:
package { "carbon":
require => Class["graphite::prereqs::install"],
ensure => latest,
provider => pip,
}
Le problème est que ce paquet et le graphite-web
Forfait semble avoir un bogue permettant d'installer la même version plusieurs fois à l'aide de PIP. Donc, si je tape Sudo pip install carbon
Plusieurs fois, PIP l'installera à chaque fois. Je croyais ceci est un bug avec les paquets.
Ce bogue semble confondre aussi la marionnette, car chaque fois que je dispose mon système, carbon
et graphite-web
sont réinstallés.
Je me demande donc s'il y a un moyen de contourner ce problème d'emballage apparent. J'ai essayé ce qui suit:
package { "carbon":
require => Class["graphite::prereqs::install"],
ensure => latest,
provider => pip,
creates => "/opt/graphite/bin/carbon-cache.py",
}
... mais je ne peux pas utiliser Create. Y a-t-il une autre façon que je puisse dire à la déclaration de package de rechercher un fichier avant d'installer le package?
Je n'ai pas testé mais essayez ceci:
file { "/opt/graphite/bin/carbon-cache.py":
ensure => 'absent',
}
package { "carbon":
require => [ Class["graphite::prereqs::install"],
File["/opt/graphite/bin/carbon-cache.py"]
]
ensure => latest,
provider => pip,
}