【问题标题】:How to install Ruby version >= 2.0 for Vagrant in Ubuntu 14.04?如何在 Ubuntu 14.04 中为 Vagrant 安装 Ruby 版本 >= 2.0?
【发布时间】:2016-11-18 10:55:34
【问题描述】:

我在Amazon 中有一个EC2 实例,正在运行Ubuntu 14.4.3。 它将运行Vagrant 并使用vagrant-aws 插件部署一些虚拟机。 但是每次我尝试安装插件时都会出现以下错误:

ubuntu@ip-172-25-56-198:~$ 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>'

我的desktop 机器中有相同版本的Ubuntu 并且没有这个问题。我究竟做错了什么 ?我尝试删除 ruby1.9 并仅安装 ruby2.2 但仍然出现相同的错误。

编辑

ubuntu@ip-172-25-56-198:~$ ruby -v
ruby 2.2.3p173 (2015-08-18 revision 51636) [x86_64-linux]

Vagrant 安装 ruby​​1.9,即使我安装了较新的版本!

root@ip-172-31-29-138:/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) ...

然后,再次出现同样的错误:

root@ip-172-25-56-198:/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>'

【问题讨论】:

  • 这不可能 :) ruby -v 返回什么?
  • 好吧,看来 vagrant 对 ruby​​ 1.9 有很强的依赖关系,因此您需要手动安装 ruby​​ 2.2 并确保 2.2 在 PATH 中排在第一位。所以当你运行vagrant plugin install vagrant-aws时,ruby -v应该返回2.2.3
  • 你的流浪版本是什么?
  • 有同样的问题。我也尝试了完全相同的步骤 - 我想知道它是否最近更新,因为我过去没有遇到过这个问题。

标签: ruby ubuntu amazon-web-services vagrant vagrant-plugin


【解决方案1】:

似乎 vagrant 对 ruby​​ 1.9 有很强的依赖关系(检查 ruby -v)。

因此您需要手动安装 ruby​​ 2.2 并确保 2.2 在 PATH 中排在首位。然后尝试通过以下方式再次安装插件:

vagrant plugin install vagrant-aws

【讨论】:

    【解决方案2】:

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

    正如 kenorb 所说,似乎 ubuntu 14 上的 vagrant 对 ruby​​ 1.9 有很强的依赖关系。 Vagrant 官方安装页面也建议不要通过 OS package repos 安装 vagrant。

    【讨论】:

      猜你喜欢
      • 2014-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多