厨房/ berkshelf想要旧gem?

我想测试一些食谱的变化,所以我做了我以前做过的事,但结果远非正常:

 $ ../gem-sucks/bin/kitchen收敛
 ----->启动厨房(v1.2.1)
 !!!!!! 缺少'berkshelf'gem,必须安装或无法正确激活。 如果您使用的是Bundler:`gem'sberkshelf',请运行`gem install berkshelf`或将以下内容添加到您的Gemfile中。
 >>>>>> ------exception-------
 >>>>>>类:Kitchen :: UserError
 >>>>>>消息:无法加载或激活Berkshelf(无法激活json-1.8.0,已激活json-1.8.1)
 >>>>>> ----------------------
 >>>>>>请参阅.kitchen / logs / kitchen.log了解更多详情
 >>>>>>还可以尝试运行`kitchen diagnose --all`进行配置

 $ gem list |  grep berkshelf
 berkshelf(3.2.1,3.1.4,2.0.10,2.0.9)
 berkshelf-api-client(1.2.0)
 $ gem list |  grep json
 json(1.8.1,1.8.0)
 multi_json(1.10.1,1.7.9)

这台机器正在运行debian Jessie,自从我最后触及这本食谱以来,已经更新了许多软件包(我不知道是否有任何ruby相关)。

如何让厨房再次工作?

如果您正在使用ChefDk,那么您可以通过删除GEM_HOME中安装的gem(在我的案例中为/home/username/.chefdk )来解决问题。

如果这不起作用,请尝试在bundle exec kitchen converge使用bundle,这应该允许您在列表中使用已安装的gem。

确保chefdk位于您的路径前方。

 PATH=/opt/chefdk/bin:/Users/sowen/.rvm/gems/ruby-2.2.0/bin:/Users/sowen/.rvm/gems/ruby-2.2.0@global/bin:/Users/sowen/.rvm/rubies/ruby-2.2.0/bin:/opt/chefdk/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/sowen/go/bin:/Users/sowen/.rvm/bin:/Users/sowen/.rvm/bin:/Users/sowen/go/bin 

我遇到了同样的问题,直到我调整并重新获得了我的bash_profile

我有一个类似的问题,但JSON没有安装在GEM_HOME中,我最终必须运行以下命令来解决我的问题。

 gem uninstall -i /opt/chefdk/embedded/lib/ruby/gems/2.1.0 json 

看看这个问题https://github.com/test-kitchen/kitchen-vagrant/pull/126

你需要通过gem重新安装berkshelf,然后应用patch kitchen-vagrant

安装上游厨房 – 流浪汉

 git clone https://github.com/test-kitchen/kitchen-vagrant.git cd kitchen-vagrant gem build kitchen-vagrant.gemspec gem install kitchen-vagrant-0.15.0.gem 

重新安装旧的Berkshelf

 gem install berkshelf 
Interesting Posts