Tom*_*url 6 python puppet pip graphite
我正在使用 Puppet 使用 pip 安装一些 Python 包。我使用的是 Puppet 2.7,所以我的包声明看起来像这样:
package { "carbon":
require => Class["graphite::prereqs::install"],
ensure => latest,
provider => pip,
}
Run Code Online (Sandbox Code Playgroud)
问题是这个包和graphite-web
包似乎都有一个错误,可以使用 pip 多次安装相同的版本。所以如果我sudo pip install carbon
多次输入,pip 每次都会安装它。我相信这是软件包的错误。
这个错误似乎也让 Puppet 感到困惑,因为每次我配置我的系统carbon
并graphite-web
重新安装时。
因此,我想知道是否有办法解决这个明显的打包错误。我尝试了以下方法:
package { "carbon":
require => Class["graphite::prereqs::install"],
ensure => latest,
provider => pip,
creates => "/opt/graphite/bin/carbon-cache.py",
}
Run Code Online (Sandbox Code Playgroud)
...但我不能使用创建。有没有另一种方法可以告诉包声明在安装包之前查找文件?
可能要使用exec's creates
参数:
exec { "carbon":
command => "pip install carbon",
require => Class["graphite::prereqs::install"],
creates => "/opt/graphite/bin/carbon-cache.py",
path => ["/usr/bin", "/usr/sbin"],
timeout => 100,
}
Run Code Online (Sandbox Code Playgroud)