2015-11-05 50 views
1

我有一个EC2实例Amazon运行Ubuntu 14.4.3。 这将运行Vagrant并使用vagrant-aws插件部署一些虚拟机。 但每次我尝试安装插件给我的跟随误差:如何在Ubuntu 14.04中为Vagrant安装Ruby版本> = 2.0?

[email protected]:~$ vagrant plugin install vagrant-aws 
Installing the 'vagrant-aws' plugin. This can take a few minutes... 
/usr/lib/ruby/1.9.1/rubygems/installer.rb:388:in `ensure_required_ruby_version_met': net-ssh requires Ruby version >= 2.0. (Gem::InstallError) 
    from /usr/lib/ruby/1.9.1/rubygems/installer.rb:156:in `install' 
    from /usr/lib/ruby/1.9.1/rubygems/dependency_installer.rb:297:in `block in install' 
    from /usr/lib/ruby/1.9.1/rubygems/dependency_installer.rb:270:in `each' 
    from /usr/lib/ruby/1.9.1/rubygems/dependency_installer.rb:270:in `each_with_index' 
    from /usr/lib/ruby/1.9.1/rubygems/dependency_installer.rb:270:in `install' 
    from /usr/share/vagrant/plugins/commands/plugin/action/install_gem.rb:65:in `block in call' 
    from /usr/share/vagrant/plugins/commands/plugin/gem_helper.rb:42:in `block in with_environment' 
    from /usr/lib/ruby/1.9.1/rubygems/user_interaction.rb:40:in `use_ui' 
    from /usr/share/vagrant/plugins/commands/plugin/gem_helper.rb:41:in `with_environment' 
    from /usr/share/vagrant/plugins/commands/plugin/action/install_gem.rb:52:in `call' 
    from /usr/lib/ruby/vendor_ruby/vagrant/action/warden.rb:34:in `call' 
    from /usr/share/vagrant/plugins/commands/plugin/action/bundler_check.rb:20:in `call' 
    from /usr/lib/ruby/vendor_ruby/vagrant/action/warden.rb:34:in `call' 
    from /usr/lib/ruby/vendor_ruby/vagrant/action/builder.rb:116:in `call' 
    from /usr/lib/ruby/vendor_ruby/vagrant/action/runner.rb:69:in `block in run' 
    from /usr/lib/ruby/vendor_ruby/vagrant/util/busy.rb:19:in `busy' 
    from /usr/lib/ruby/vendor_ruby/vagrant/action/runner.rb:69:in `run' 
    from /usr/share/vagrant/plugins/commands/plugin/command/base.rb:17:in `action' 
    from /usr/share/vagrant/plugins/commands/plugin/command/install.rb:27:in `execute' 
    from /usr/share/vagrant/plugins/commands/plugin/command/root.rb:56:in `execute' 
    from /usr/lib/ruby/vendor_ruby/vagrant/cli.rb:38:in `execute' 
    from /usr/lib/ruby/vendor_ruby/vagrant/environment.rb:484:in `cli' 
    from /usr/bin/vagrant:127:in `<main>' 

我有Ubuntu相同的版本在我desktop机,并没有这个问题。我究竟做错了什么 ?我试图删除ruby1.9并只安装ruby2.2但仍然给出相同的错误。

编辑

[email protected]:~$ ruby -v 
ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-linux] 

流浪安装ruby1.9,即使我已经安装了新版本!

[email protected]:/tmp# apt-get install -y vagrant 
Reading package lists... Done 
Building dependency tree  
Reading state information... Done 
The following extra packages will be installed: 
    ruby1.9.1 
Suggested packages: 
    ruby1.9.1-examples ri1.9.1 graphviz ruby1.9.1-dev virtualbox 
The following NEW packages will be installed: 
    ruby1.9.1 vagrant 
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded. 
Need to get 0 B/425 kB of archives. 
After this operation, 1.898 kB of additional disk space will be used. 
Selecting previously unselected package ruby1.9.1. 
(Reading database ... 146549 files and directories currently installed.) 
Preparing to unpack .../ruby1.9.1_1%3a1.9.3.551-2bbox1~trusty1_amd64.deb ... 
Unpacking ruby1.9.1 (1:1.9.3.551-2bbox1~trusty1) ... 
Selecting previously unselected package vagrant. 
Preparing to unpack .../vagrant_1.4.3-1_all.deb ... 
Unpacking vagrant (1.4.3-1) ... 
Processing triggers for man-db (2.6.7.1-1ubuntu1) ... 
Setting up ruby1.9.1 (1:1.9.3.551-2bbox1~trusty1) ... 
Setting up vagrant (1.4.3-1) ... 

,然后再次相同的错误:

[email protected]:/tmp# vagrant plugin install vagrant-aws 
Installing the 'vagrant-aws' plugin. This can take a few minutes... 
/usr/lib/ruby/1.9.1/rubygems/installer.rb:388:in `ensure_required_ruby_version_met': net-ssh requires Ruby version >= 2.0. (Gem::InstallError) 
    from /usr/lib/ruby/1.9.1/rubygems/installer.rb:156:in `install' 
    from /usr/lib/ruby/1.9.1/rubygems/dependency_installer.rb:297:in `block in install' 
    from /usr/lib/ruby/1.9.1/rubygems/dependency_installer.rb:270:in `each' 
    from /usr/lib/ruby/1.9.1/rubygems/dependency_installer.rb:270:in `each_with_index' 
    from /usr/lib/ruby/1.9.1/rubygems/dependency_installer.rb:270:in `install' 
    from /usr/share/vagrant/plugins/commands/plugin/action/install_gem.rb:65:in `block in call' 
    from /usr/share/vagrant/plugins/commands/plugin/gem_helper.rb:42:in `block in with_environment' 
    from /usr/lib/ruby/1.9.1/rubygems/user_interaction.rb:40:in `use_ui' 
    from /usr/share/vagrant/plugins/commands/plugin/gem_helper.rb:41:in `with_environment' 
    from /usr/share/vagrant/plugins/commands/plugin/action/install_gem.rb:52:in `call' 
    from /usr/lib/ruby/vendor_ruby/vagrant/action/warden.rb:34:in `call' 
    from /usr/share/vagrant/plugins/commands/plugin/action/bundler_check.rb:20:in `call' 
    from /usr/lib/ruby/vendor_ruby/vagrant/action/warden.rb:34:in `call' 
    from /usr/lib/ruby/vendor_ruby/vagrant/action/builder.rb:116:in `call' 
    from /usr/lib/ruby/vendor_ruby/vagrant/action/runner.rb:69:in `block in run' 
    from /usr/lib/ruby/vendor_ruby/vagrant/util/busy.rb:19:in `busy' 
    from /usr/lib/ruby/vendor_ruby/vagrant/action/runner.rb:69:in `run' 
    from /usr/share/vagrant/plugins/commands/plugin/command/base.rb:17:in `action' 
    from /usr/share/vagrant/plugins/commands/plugin/command/install.rb:27:in `execute' 
    from /usr/share/vagrant/plugins/commands/plugin/command/root.rb:56:in `execute' 
    from /usr/lib/ruby/vendor_ruby/vagrant/cli.rb:38:in `execute' 
    from /usr/lib/ruby/vendor_ruby/vagrant/environment.rb:484:in `cli' 
    from /usr/bin/vagrant:127:in `<main>' 
+0

这是不可能的:)'ruby -v'返回什么? –

+0

好吧,看起来vagrant对ruby 1.9有很强的依赖性,所以你需要手动安装ruby 2.2并确保2.2在PATH中首先出现。所以当你运行'vagrant插件安装vagrant-aws'时,'ruby -v'应该返回'2.2.3', –

+0

你最近流浪的版本是什么? –

回答

0

看来,流浪者对红宝石1.9(由ruby -v检查)的硬依赖。

所以你需要手动安装ruby 2.2并确保2.2首先在PATH。然后尝试通过以下方式再次安装该插件:

vagrant plugin install vagrant-aws 
0

遇到完全相同的问题。通过从官方下载页面安装最新的流浪者解决。

看起来,ubuntu 14上的流浪者似乎非常依赖于ruby 1.9,正如kenorb所说的。 Vagrant官方安装页面还建议您不要通过OS软件包回购安装vagrant。

相关问题