我在开发机器上运行的是 Windows7 操作系统。它有各种 Shell:
cmd
- 电源外壳
- Mysysgit GNU Bash <-- 这个不起作用
- PuppetLabs 外壳
- Nodejs Shell
- PHPStorm 内置终端
但在Mysysgit/GNU Bash命令puppet
没有工作。
有趣的是:当我进入
$ where puppet
# Response:
C:\Program Files (x86)\Puppet Labs\Puppet\bin\puppet.bat
在每个 bash(包括 Mysysgit)中我都得到了正确的路径。(只有 Powershell 似乎没有真正弄清楚如何使用where
)。在 PuppetLabs shell 中我甚至得到了第二条路径
$ where puppet
# Response
C:\Program Files (x86)\Puppet Labs\Puppet\puppet\bin\puppet
C:\Program Files (x86)\Puppet Labs\Puppet\bin\puppet.bat
我的系统环境变量设置得很完美:echo $PATH
显示两个包含的路径都存在。但仍然type puppet
不起作用。
之后我将其附加C:\Program Files (x86)\Puppet Labs\Puppet\bin\puppet.bat
到我的$PATH
变量,突然puppet
命令被识别......并且失败了。
c:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:55:in `require': cannot load such file -- puppet/util/command_line (LoadError)
from c:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:55:in `require'
from c:/Program Files (x86)/Puppet Labs/Puppet/puppet/bin/puppet:3:in `<main>'
puppet 版本是3.5.1
(最新)
我的系统上安装了 Ruby 1.9.3 和 Ruby 2.0.x。会不会是 Ruby 安装有冲突?它没有出现在任何其他 Shell/Bash/Terminal/Console 中。