I am using Puppet to install some Python packages using pip. I'm using Puppet 2.7, so my package declarations look something like this:
package { "carbon":
require => Class["graphite::prereqs::install"],
ensure => latest,
provider => pip,
}
The problem is that this package and the graphite-web
package both seem to have a bug that makes it possible to install the same version multiple times using pip. So if I type in sudo pip install carbon
multiple times, pip will install it every time. I believ this is a bug with the packages.
This bug seems to confuse Puppet too, because every time I provision my system, carbon
and graphite-web
are re-installed.
I'm therefore wondering if there's a way to work around this apparent packaging bug. I've tried the following:
package { "carbon":
require => Class["graphite::prereqs::install"],
ensure => latest,
provider => pip,
creates => "/opt/graphite/bin/carbon-cache.py",
}
...but I can't use creates. Is there another way I can tell the package declaration to look for a file before installing the package?