1

我团队的项目要求我使用 vagrant-berkshelf 插件,特别是 1.3.7 版。团队中的其他人正在运行 Vagrant 1.3.5,尽管我尝试在 1.2.7、1.3.5 和 1.4.3 上进行安装,但都出现相同的错误。

安装时的输出:

    mentat@odrade:~$ vagrant plugin install vagrant-berkshelf --plugin-version 1.3.7
Installing the 'vagrant-berkshelf --version '1.3.7'' plugin. This can take a few minutes...
/opt/vagrant/embedded/lib/ruby/2.0.0/rubygems/dependency_installer.rb:211:in `gather_dependencies': Unable to resolve dependencies: ridley requires buff-extensions (~> 0.3); buff-config requires buff-extensions (~> 0.3); varia_model requires buff-extensions (~> 1.0) (Gem::DependencyError)
    from /opt/vagrant/embedded/lib/ruby/2.0.0/rubygems/dependency_installer.rb:333: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>'

依赖问题与 ridley、buff-extensions 和 buff-config 有关。我目前正在使用带有 Ruby 1.9.3-p448 的 RVM,并且 gem 列表显示我应该满足这些依赖项。如果我尝试安装一个版本的 vagrant-berkshelf 插件,我会得到一个不同的依赖问题列表(但这是一个有争议的问题,因为我需要在 1.3.7 上)。

有任何想法吗?

4

1 回答 1

5

我能够通过安装所需的 gem 来完成这项工作:

env GEM_HOME=~/.vagrant.d/gems gem install buff-extensions -v 0.3.0
env GEM_HOME=~/.vagrant.d/gems gem install buff-extensions -v 1.0.0
vagrant plugin install vagrant-berkshelf --plugin-version 1.3.7

我还没有完成我的测试,所以我不确定运行时是否会发生冲突。

- - 编辑 - -

如果您执行上述操作,插件将无法加载。
相反,请确保安装较旧版本的varia_modelgem。我建议0.3.2。此 gem 不需要更高版本的buff-extensions

env GEM_HOME=~/.vagrant.d/gems gem install varia_model -v 0.3.2
vagrant plugin install vagrant-berkshelf --plugin-version 1.3.7
于 2014-06-06T00:50:41.650 回答