7

我确实安装了下面提到的红宝石东西

在此处输入图像描述

当我尝试执行 chef-client 时,我收到下面提到的错误

c:\RubyDevKit>chef-client
C:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- ruby-wmi (LoadError)
        from C:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
        from C:/Ruby193/lib/ruby/gems/1.9.1/gems/chef-10.14.4/lib/chef/provider/env/windows.rb:20:in `<top (required)>'
        from C:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
        from C:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
        from C:/Ruby193/lib/ruby/gems/1.9.1/gems/chef-10.14.4/lib/chef/providers.rb:49:in `<top (required)>'
        from C:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
        from C:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
        from C:/Ruby193/lib/ruby/gems/1.9.1/gems/chef-10.14.4/lib/chef.rb:25:in `<top (required)>'
        from C:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
        from C:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
        from C:/Ruby193/lib/ruby/gems/1.9.1/gems/chef-10.14.4/bin/chef-client:23:in `<top (required)>'
        from C:/Ruby193/bin/chef-client:23:in `load'
        from C:/Ruby193/bin/chef-client:23:in `<main>'

Ruby193 文件夹结构(缺失)

在此处输入图像描述

4

3 回答 3

9

出现错误消息cannot load such file -- ruby-wmi (LoadError)是因为chef-client找不到所需的宝石。

此问题在常见错误的 Opscode/Chef wiki 页面上得到解决。

如上所述,使用以下命令安装所需的 gem:

C:\> gem install win32-open3 ruby-wmi windows-api windows-pr --no-rdoc --no-ri --verbose
C:\> gem install rdp-ruby-wmi
于 2012-10-12T23:55:41.893 回答
6

正如Prakash Murthy所说,它缺少 ruby​​-wmi 文件。认为如果有人再次陷入困境会有所帮助

我确实运行了这些命令

C:\> gem install win32-open3 ruby-wmi windows-api windows-pr --no-rdoc --no-ri --verbose
C:\> gem install rdp-ruby-wmi

又犯了一个错误

C:/Ruby193/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in require': cannot load such file -- win32/service (LoadError)

所以我会推荐

(i) 检查 gem 安装(在 CMD 中)

gem list

这将指出丢失的宝石,在我的情况下 win32/service 是错误的

(二)gem install win32-service

再次检查 gem list 以确保 & 应该解决问题。

于 2012-10-15T14:47:09.050 回答
0

较新版本的 Chef 不使用 ruby​​-wmi,因此您不需要 gem。我在尝试运行测试厨房时遇到了这个错误,我已经尝试了上面的解决方案,但它们没有用。

这对我有用:

  • 卸载并重新安装 Vagrant
  • 删除 C:\Users\USERNAME.vagrant.d\gems 文件夹
  • 删除 C:\Users\USERNAME.vagrant.d\plugins.json 文件

之后厨房运行良好。

于 2015-07-14T19:35:55.433 回答