【问题标题】:cannot load such file -- ruby-wmi (LoadError) & cannot load such file -- win32/service (LoadError)无法加载此类文件--ruby-wmi (LoadError) & 无法加载此类文件--win32/service (LoadError)
【发布时间】:2012-10-12 22:46:27
【问题描述】:

我确实安装了下面提到的 ruby​​ 东西

当我尝试执行 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 文件夹结构(缺失)

【问题讨论】:

    标签: ruby windows rubygems chef-infra


    【解决方案1】:

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

    Opscode/Chef wiki page on Common Errors 解决了此问题。

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

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

    【讨论】:

    • gem 不应该检测和安装这样的依赖项吗?
    • 还需要 gem install win32-service
    【解决方案2】:

    正如 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 是错误的

    (ii)gem install win32-service

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

    【讨论】:

      【解决方案3】:

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

      这对我有用:

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

      在那个厨房运行良好之后。

      【讨论】:

        猜你喜欢
        • 2015-01-22
        • 2012-10-25
        • 2012-02-27
        • 2016-04-26
        • 1970-01-01
        • 2016-11-03
        • 2013-08-10
        • 1970-01-01
        • 2015-05-30
        相关资源
        最近更新 更多