如何在当前 Puppet 会话中设置 Windows 环境路径?
How do I set Windows environment paths in current Puppet session?
我正在尝试安装 git 并在同一个人偶脚本中使用它
package { 'git':
ensure => latest,
provider => 'chocolatey',
}
vcsrepo { 'C:/':
provider => git,
source => 'github etc...',
}
但是,我得到:
Provider git is not functional on this host
正确的路径包含在环境变量中,这让我相信错误只是因为环境变量没有更新。
如果我在命令行上使用 refreshenv
或 set "PATH=%PATH%;C:\Program Files\Git\cmd"
或者如果我重新启动命令提示符,错误就会消失,但是 有没有办法同时更新它们无需人工干预的人偶脚本?
我已经尝试将以下内容添加到 .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 脚本完全 运行。
运行 set "PATH=%PATH%;C:\Program Files\Git\cmd"
在 puppet apply file.pp
之前的命令行中将 git 的未来位置设置为仅用于当前命令提示符的环境变量(set
,而不是 setx
)。这样,当打开另一个命令提示符时,一次性路径没有了,但是从 git.
的实际安装中添加了相同的路径
我正在尝试安装 git 并在同一个人偶脚本中使用它
package { 'git':
ensure => latest,
provider => 'chocolatey',
}
vcsrepo { 'C:/':
provider => git,
source => 'github etc...',
}
但是,我得到:
Provider git is not functional on this host
正确的路径包含在环境变量中,这让我相信错误只是因为环境变量没有更新。
如果我在命令行上使用 refreshenv
或 set "PATH=%PATH%;C:\Program Files\Git\cmd"
或者如果我重新启动命令提示符,错误就会消失,但是 有没有办法同时更新它们无需人工干预的人偶脚本?
我已经尝试将以下内容添加到 .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 脚本完全 运行。
运行 set "PATH=%PATH%;C:\Program Files\Git\cmd"
在 puppet apply file.pp
之前的命令行中将 git 的未来位置设置为仅用于当前命令提示符的环境变量(set
,而不是 setx
)。这样,当打开另一个命令提示符时,一次性路径没有了,但是从 git.