2014-01-13 2 views
1

Я обновил Vagrant 1.4.3 и пытаюсь установить плагин vagrant-berkshelf. Я получаю следующее сообщение об ошибке:Не удается установить плагин vagrant-berkshelf

$ vagrant plugin install vagrant-berkshelf 
Installing the 'vagrant-berkshelf' plugin. This can take a few minutes... 
/opt/vagrant/embedded/lib/ruby/2.0.0/rubygems/installer.rb:184:in `check_executable_overwrite': "minitar" from minitar conflicts with installed executable from archive-tar-minitar (Gem::InstallError) 
from /opt/vagrant/embedded/lib/ruby/2.0.0/rubygems/installer.rb:384:in `block in generate_bin' 
from /opt/vagrant/embedded/lib/ruby/2.0.0/rubygems/installer.rb:371:in `each' 
from /opt/vagrant/embedded/lib/ruby/2.0.0/rubygems/installer.rb:371:in `generate_bin' 
from /opt/vagrant/embedded/lib/ruby/2.0.0/rubygems/installer.rb:231:in `install' 
from /opt/vagrant/embedded/lib/ruby/2.0.0/rubygems/dependency_installer.rb:379:in `block in install' 
from /opt/vagrant/embedded/lib/ruby/2.0.0/rubygems/dependency_installer.rb:339:in `each' 
from /opt/vagrant/embedded/lib/ruby/2.0.0/rubygems/dependency_installer.rb:339:in `each_with_index' 
from /opt/vagrant/embedded/lib/ruby/2.0.0/rubygems/dependency_installer.rb:339:in `install' 
from /opt/vagrant/embedded/gems/gems/vagrant-1.4.3/plugins/commands/plugin/action/install_gem.rb:65:in `block in call' 
from /opt/vagrant/embedded/gems/gems/vagrant-1.4.3/plugins/commands/plugin/gem_helper.rb:42:in `block in with_environment' 
from /opt/vagrant/embedded/lib/ruby/2.0.0/rubygems/user_interaction.rb:40:in `use_ui' 
from /opt/vagrant/embedded/gems/gems/vagrant-1.4.3/plugins/commands/plugin/gem_helper.rb:41:in `with_environment' 
from /opt/vagrant/embedded/gems/gems/vagrant-1.4.3/plugins/commands/plugin/action/install_gem.rb:52:in `call' 
from /opt/vagrant/embedded/gems/gems/vagrant-1.4.3/lib/vagrant/action/warden.rb:34:in `call' 
from /opt/vagrant/embedded/gems/gems/vagrant-1.4.3/plugins/commands/plugin/action/bundler_check.rb:20:in `call' 
from /opt/vagrant/embedded/gems/gems/vagrant-1.4.3/lib/vagrant/action/warden.rb:34:in `call' 
from /opt/vagrant/embedded/gems/gems/vagrant-1.4.3/lib/vagrant/action/builder.rb:116:in `call' 
from /opt/vagrant/embedded/gems/gems/vagrant-1.4.3/lib/vagrant/action/runner.rb:69:in `block in run' 
from /opt/vagrant/embedded/gems/gems/vagrant-1.4.3/lib/vagrant/util/busy.rb:19:in `busy' 
from /opt/vagrant/embedded/gems/gems/vagrant-1.4.3/lib/vagrant/action/runner.rb:69:in `run' 
from /opt/vagrant/embedded/gems/gems/vagrant-1.4.3/plugins/commands/plugin/command/base.rb:17:in `action' 
from /opt/vagrant/embedded/gems/gems/vagrant-1.4.3/plugins/commands/plugin/command/install.rb:27:in `execute' 
from /opt/vagrant/embedded/gems/gems/vagrant-1.4.3/plugins/commands/plugin/command/root.rb:56:in `execute' 
from /opt/vagrant/embedded/gems/gems/vagrant-1.4.3/lib/vagrant/cli.rb:38:in `execute' 
from /opt/vagrant/embedded/gems/gems/vagrant-1.4.3/lib/vagrant/environment.rb:484:in `cli' 
from /opt/vagrant/embedded/gems/gems/vagrant-1.4.3/bin/vagrant:127:in `<top (required)>' 
from /opt/vagrant/bin/../embedded/gems/bin/vagrant:23:in `load' 
from /opt/vagrant/bin/../embedded/gems/bin/vagrant:23:in `<main>' 

Я попытался вручную установить minitar как с системой и Vagrant-специфических рубинов. Системный рубин установил его просто отлично. Когда я вручную установить его в Бродячей рубин, я получил следующее:

$ sudo /opt/vagrant/embedded/bin/gem install minitar 
Fetching: minitar-0.5.4.gem (100%) 
minitar's executable "minitar" conflicts with archive-tar-minitar 
Overwrite the executable? [yN] y 
Successfully installed minitar-0.5.4 
Parsing documentation for minitar-0.5.4 
Installing ri documentation for minitar-0.5.4 
1 gem installed 

Но, я все еще получаю ту же самую ошибку. Я попытался вручную установить каждый камень в Gemfile из репозитория github vagrant-berkshelf и до сих пор не может установить.

ответ

4

Я спросил у https://github.com/berkshelf/vagrant-berkshelf/issues/140 и получил следующий ответ.

Это был конфликт с зависимостью в бродяжнике-шеф-библиотеке. Решение было вручную установить minitar с помощью следующей команды:

$ /opt/vagrant/embedded/bin/gem install minitar --install-dir ~/.vagrant.d/gems 
minitar's executable "minitar" conflicts with archive-tar-minitar 
Overwrite the executable? [yN] y 
Successfully installed minitar-0.5.4 
Parsing documentation for minitar-0.5.4 
Installing ri documentation for minitar-0.5.4 
1 gem installed 

бита я пропустил был режем установить,.

2

По-видимому Vagrant Berkshelf has been retired от 5 дней назад.

Использовать шеф-повар с бродягой, here is a good article.

Примечание "Примечание" на этой странице:

NOTE: As of Tuesday, January 28th the Vagrantfile and the vagrant-bershelf plugin are being retired You can do everything mentioned in this article (vagrant up, vagrant provision, etc.) with Test Kitchen and its .kitchen.yml covered in Part 3 of this series. Consider skipping ahead to Part 3 and just start using Test Kitchen now. This article will be retained just for historical purposes.

Так следуйте this link и использовать Test Kitchen вместо Vagrant Berkshelf. Я еще не пробовал это, но я нахожусь в той же лодке, что и вы, - чтобы заставить шеф-повара работать с Vagrant.

1

До сих пор настройка тестовой кухни не может делать все, например. много установка машины. Вы можете заменить vagrant-berkshelf на локальную установку Berkshelf и использовать бродячие-триггеры для производства кулинарной книги на «бродяжничестве» или «бродяжничестве».

Я написал об этом short blog post.

В основном это сводится к тому:

  • Установка Ruby/Berkshelf
  • Установите бродяга-триггеры Vagrant плагин
  • Использование бродячий-триггер поставщиков кулинарных книг в каталоге
  • Запустите Vagrant помощник шеф-повара

Следующий фрагмент Vagrantfile будет использовать подключаемый модуль брандмауэр-триггеров для вызова локально установленный Berkshelf:

[:up, :provision].each do |cmd| 
    config.trigger.before cmd, :stdout => true do 
     info 'Cleaning cookbook directory' 
     run "rm -rf #{cookbooks_path}" 
     info 'Installing cookbook dependencies with berkshelf' 
     run "berks vendor #{cookbooks_path}" 
    end 
    end 

Это будет выполнять Berkshelf установить необходимые поваренные книги в «Поваренной книге» каталог, который установлен в вашем бродяге VM и используемый Бродячого шеф-соло Provisioner по умолчанию.

Смежные вопросы