2014-12-11 7 views
0

Я хочу, чтобы проверить некоторые изменения в поваренную книгу, так что я сделал то, что я делал, но результат был далек от нормального:Кухня/беркшельф хочет старый драгоценный камень?

 
$ ../gem-sucks/bin/kitchen converge 
-----> Starting Kitchen (v1.2.1) 
!!!!!! The `berkshelf' gem is missing and must be installed or cannot be properly activated. Run `gem install berkshelf` or add the following to your Gemfile if you are using Bundler: `gem 'berkshelf'`. 
>>>>>> ------Exception------- 
>>>>>> Class: Kitchen::UserError 
>>>>>> Message: Could not load or activate Berkshelf (can't activate json-1.8.0, already activated json-1.8.1) 
>>>>>> ---------------------- 
>>>>>> Please see .kitchen/logs/kitchen.log for more details 
>>>>>> Also try running `kitchen diagnose --all` for configuration 

$ 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, и много пакетов (у меня есть не знаю, связано ли что-то, что связано с рубином) было обновлено, так как я дотронулся до этой кулинарной книги в последний раз.

Как мне снова сделать кухню?

ответ

0

Если вы используете ChefDk, вы можете устранить проблему, удалив драгоценные камни, установленные на GEM_HOME (в моем случае /home/username/.chefdk).

Если это не сработает, попробуйте использовать пакет, как в bundle exec kitchen converge, это должно позволить вам использовать установленные драгоценные камни в вашем списке.

+0

Я попытался chefdk однажды, что дал ужасный беспорядок вопросов, поэтому я вернулся к стандартному повару (все еще с getchef. com, к сожалению, со встроенным рубином). Но я только что узнал (не увидев ваш ответ), что «gem uninstall json» и выбор только для удаления 1.8.0. – thissucks

0

У меня была аналогичная проблема, но json не был установлен в GEM_HOME, и мне пришлось запустить следующую команду для решения моей проблемы.

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

Посмотрите этот вопрос https://github.com/test-kitchen/kitchen-vagrant/pull/126

вам необходимо повторно установить berkshelf на камень, а затем применить патч кухня-бродячую

Установить вверх кухня-бродяга

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 

Re установить старый Berkshelf

gem install berkshelf 
+0

Berkshelf теперь является частью chefdk. установка из драгоценных камней не рекомендуется. – spuder

+0

Да, но кухня-бродяга работала только с беркшельфом по жемчугу. Я долгое время не пользуюсь, надеюсь, у поддерживающего плагина есть обновление для работы с ChefDK. – Pierozi

4

Убедитесь, что chefdk находится впереди вашего пути.

PATH=/opt/chefdk/bin:/Users/sowen/.rvm/gems/ruby-2.2.0/bin:/Users/sowen/.rvm/gems/[email protected]/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