如何在puppet中执行命令之前安装包?

时间:2018-03-08 15:42:21

标签: dependencies puppet

在木偶课上,我有类似的东西:

package {'python2-pip':
    ensure => installed,
} ->
exec {'pip install nltk':
    command => 'pip install nltk',
    creates => '/usr/lib/python2.7/site-packages/nltk',
}

预期的结果是首先安装pip,然后安装nltk。不幸的是,我收到错误消息:

Error: Failed to apply catalog: Validation of Exec[pip install nltk] failed:
'pip install nltk' is not qualified and no path was specified. Please qualify
the command or specify a path.

似乎Exec正在尝试在Package安装软件包之前评估该命令。为什么会发生这种情况,如何使依赖项以正确的顺序执行?

1 个答案:

答案 0 :(得分:0)

要展开上面的Matt's条评论,请转到相关服务器并运行which pip以查看pip的位置(在我的计算机/usr/local/pip上),然后附上您的exec命令pip的路径,例如/usr/local/bin/pip install nltk

Puppet没有您常用的所有路径/ env变量,因此在指定命令时需要详细。