我正在尝试安装git并在同一个puppet脚本中使用它
package { 'git':
ensure => latest,
provider => 'chocolatey',
}
vcsrepo { 'C:/':
provider => git,
source => 'github etc...',
}
但是,我得到了:
提供者git在此主机上无法正常运行
环境变量中包含正确的路径,这使我认为错误只是因为环境变量没有更新。
如果我在命令行上使用refreshenv
或set "PATH=%PATH%;C:\Program Files\Git\cmd"
或者我重新启动命令提示符,则错误消失,但是是否可以在同一个puppet脚本中更新它们而无需手动介入
我尝试将以下内容添加到.pp文件中(当然一次一个):
#1
windows_env { 'PATH=C:\Program Files\Git\cmd': }
#2 (I've also tried different variations of quotes)
exec { 'temporary env var':
path => 'C:/Windows/System32',
command => 'cmd.exe /c "set \"PATH=$PATH%;C:\\Program Files\\Git\\cmd\""',
}
#3
exec { 'C:/ProgramData/chocolatey/bin/refreshEnv.cmd': }
我想你可以说我的问题是Puppet agent: provider git is not functional on this host的延伸。
答案 0 :(得分:0)
我找到了一个允许木偶脚本完全运行的解决方法。
在set "PATH=%PATH%;C:\Program Files\Git\cmd"
之前在命令行中运行puppet apply file.pp
将git的未来位置设置为仅适用于当前命令提示符的环境变量set
,而不是setx
)。这样,当打开另一个命令提示符时,一次性路径消失了,但是从实际的git安装中添加了相同的路径。