2014-05-14 88 views
0

我试图用厨师以下(Centos的VM)的问题:厨师RVM食谱 - 与访问安装宝石

  • 安装Ruby 1.9.3
  • 创建一个宝石(“厨师测试” )这是提供给任何人
  • 上的“厨师测试”安装两种宝石(rubocop和foodcritic)宝石
我使用 https://github.com/fnichol/chef-rvm

从包装食谱中安装RVM。

这里是我的食谱的部分,它覆盖RVM食谱和理论上应该可以在上面做:

node.override['rvm']['default_ruby'] = '[email protected]' 
node.override[:rvm][:rubies] = [ '[email protected]' ] 
node.override['rvm']['group_users'] = [ 'teamcity' ] 

node.override['rvm']['gems'] = { 
    '[email protected]' => [ 
    { 'name' => 'rubocop', 
     'version' => '0.19.1' 
    }, 
    { 'name' => 'foodcritic'} 
    ] 
} 

include_recipe 'rvm::system' 

厨师汇聚完成时没有错误,但是当我登录为“TeamCity的”用户和执行其中一个宝石我得到以下内容:

[[email protected] ~]$ rubocop 
/usr/local/rvm/rubies/ruby-1.9.3-p545/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/ 
kernel_require.rb:135:in `require': cannot load such file 
-- ruby-progressbar (LoadError) 
from /usr/local/rvm/rubies/ruby-1.9.3-p545/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:135:in `rescue in require' 
    from /usr/local/rvm/rubies/ruby-1.9.3-p545/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:144:in `require' 
    from /usr/local/rvm/gems/[email protected]/gems/rubocop-0.19.1/lib/rubocop/formatter/fuubar_style_formatter.rb:3:in `<top (required)>' 
    from /usr/local/rvm/rubies/ruby-1.9.3-p545/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:55:in `require' 
    from /usr/local/rvm/rubies/ruby-1.9.3-p545/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:55:in `require' 
    from /usr/local/rvm/gems/[email protected]/gems/rubocop-0.19.1/lib/rubocop.rb:224:in `<top (required)>' 
    from /usr/local/rvm/rubies/ruby-1.9.3-p545/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:55:in `require' 
    from /usr/local/rvm/rubies/ruby-1.9.3-p545/lib/ruby/site_ruby/1.9.1/rubygems/core_ext/kernel_require.rb:55:in `require' 
    from /usr/local/rvm/gems/[email protected]/gems/rubocop-0.19.1/bin/rubocop:7:in `<top (required)>' 
    from /usr/local/rvm/gems/[email protected]/bin/rubocop:23:in `load' 
    from /usr/local/rvm/gems/[email protected]/bin/rubocop:23:in `<main>' 
    from /usr/local/rvm/gems/[email protected]/bin/ruby_executable_hooks:15:in `eval' 
    from /usr/local/rvm/gems/[email protected]/bin/ruby_executable_hooks:15:in `<main>' 
    -- ruby-progressbar (LoadError) 

我在这里错过了什么?用户正确添加到rvm组,并且当我以用户身份登录时,默认加载正确的gemset。

回答

1

这与Rubocop具有对ruby-progressbar的依赖关系。请参阅https://github.com/jfelchner/ruby-progressbar/issues/73。一个可能的解决方法是更新你的gemfile,使其版本小于< 1.5.0。

更新:现在已经在ruby-progressbar 1.5.1中修复了。

+1

捆绑更新后,我遇到了这个问题。所以我查看了锁文件中更新的内容,并发现它是ruby-progressbar。 –

+0

有道理。再次感谢。 – keftes