0

我想测试对食谱的一些更改,所以我做了我以前做的事情,但结果远非正常:

$ ../gem-sucks/bin/kitchen 收敛
-----> 开始厨房 (v1.2.1)
!!!!!!缺少“berkshelf”gem,必须安装或无法正确激活。运行 `gem install berkshelf` 或者如果您使用的是 Bundler,请将以下内容添加到您的 Gemfile 中:`gem 'berkshelf'`。
>>>>>> ------异常-------
>>>>>> 类:Kitchen::UserError
>>>>>> 消息:无法加载或激活 Berkshelf(无法激活 json-1.8.0,已激活 json-1.8.1)
>>>>>> ----------------------
>>>>>> 更多详情请查看 .kitchen/logs/kitchen.log
>>>>>> 也尝试运行`kitchen diagnostic --all` 进行配置

$ 宝石清单 | grep berkshelf
berkshelf (3.2.1, 3.1.4, 2.0.10, 2.0.9)
berkshelf-api-client (1.2.0)
$ 宝石清单 | grep json
json (1.8.1, 1.8.0)
multi_json (1.10.1, 1.7.9)

这台机器正在运行 debian Jessie,自从我上次接触这本食谱以来,已经更新了很多包(我不知道其中是否有任何与 ruby​​ 相关的东西)。

如何让厨房再次工作?

4

4 回答 4

4

确保 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 之前,我遇到了同样的问题

于 2015-04-03T21:54:50.917 回答
0

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

gem uninstall -i /opt/chefdk/embedded/lib/ruby/gems/2.1.0 json
于 2014-12-17T15:42:31.987 回答
0

如果您使用的是 ChefDk,那么您可以通过删除安装在GEM_HOME(在我的情况下/home/username/.chefdk)的 gem 来解决问题。

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

于 2014-12-12T12:38:32.043 回答
0

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

您需要通过 gem 重新安装 berkshelf,然后应用补丁 kitchen-vagrant

安装上游 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
于 2015-01-29T17:57:35.633 回答