Rails安装失败:activesupport需要Ruby版本> = 2.2.2

时间:2016-07-21 23:04:38

标签: ruby-on-rails ruby

我想创建一个新的Rails应用程序。我正在使用rvm和ruby-2.1.2。我使用@global gemset并计划使用bundler来管理gem依赖项。但是,gem install rails失败了:

$ gem install rails
Fetching: concurrent-ruby-1.0.3.pre3.gem (100%)
Successfully installed concurrent-ruby-1.0.3.pre3
Fetching: minitest-5.9.0.gem (100%)
Successfully installed minitest-5.9.0
Fetching: thread_safe-0.3.5.gem (100%)
Successfully installed thread_safe-0.3.5
Fetching: tzinfo-1.2.2.gem (100%)
Successfully installed tzinfo-1.2.2
Fetching: i18n-0.7.0.gem (100%)
Successfully installed i18n-0.7.0
Fetching: activesupport-5.0.0.gem (100%)
ERROR:  Error installing rails:
    activesupport requires Ruby version >= 2.2.2.

是的,我确实使用ruby-2.1.2而不是ruby-2.2.2,但我不应该继续使用ruby-2.1.2吗?我们不允许再使用ruby-2.1.2吗?

我想也许ActiveSupport 5已经安装在@global gemset中,ActiveSupport 5需要2.2.2,但实际上@global gemset中没有ActiveSupport 5:

$ rvm gemdir
/Users/myuser/.rvm/gems/ruby-2.1.2@global
$ cd /Users/myuser/.rvm/gems/ruby-2.1.2@global
$ cd gems
$ ls
bundler-unload-1.0.2        gem-wrappers-1.2.4      rake-10.1.0         rvm-1.11.3.9            tzinfo-1.2.2
concurrent-ruby-1.0.3.pre3  i18n-0.7.0          rdoc-4.1.0          test-unit-2.1.2.0
executable-hooks-1.3.2      minitest-5.9.0          rubygems-bundler-1.4.4      thread_safe-0.3.5

那么在尝试使用ruby-2.1.2时如何防止出现此错误?

5 个答案:

答案 0 :(得分:28)

您可以使用任何ruby版本的遗嘱,但是不能将任何ruby版本与最新版本的Rails一起使用。 执行gem install rails时,您将获得最新的Rails版本(Rails 5),它与Ruby 2.1.2完全不兼容。

如果你真的想使用Ruby 2.1.2,试试这个:gem install rails -v 4.2.2

作为gemset的使用,因为我喜欢这个非常有组织的,我从不使用全局。我总是为每个项目创建一个新的gemset。这保证了我可以拥有许多项目,每个项目都有一个ruby和rails版本,而不会在gem之间产生任何不兼容性。这是gemset作为Ruby on Rails工作区。如果你按项目分开它们,你将最大限度地减少宝石不相容的奇怪几率。

答案 1 :(得分:6)

gem install rails

上面的命令将使用最新版本的rails,即Rails 5的稳定版本,需要> = ruby​​ 2.2.2。

我们可以在较低版本的Rails中使用2.1.2。请在安装rails时指定版本可以解决您的问题,例如:

gem install rails --version 4.2.4

gem install rails -v 4.2.4

让我知道它是否有效。 谢谢。

答案 2 :(得分:1)

我在CocoaPod面前解决了这个问题,并通过以下方式解决了这个问题:

  1. sudo gem install activesupport -v 4.2.6
  2. sudo gem install cocoapods
  3. https://github.com/CocoaPods/CocoaPods/issues/5603

答案 3 :(得分:0)

使用RVM为我工作,我已按照说明here

curl -sSL https://rvm.io/mpapis.asc | gpg --import - &&\
curl -L get.rvm.io | bash -s stable &&\
source /etc/profile.d/rvm.sh && /usr/local/rvm/bin/rvm reload &&\
/usr/local/rvm/bin/rvm requirements run &&\
/usr/local/rvm/bin/rvm install 2.2.4 &&\
/usr/local/rvm/bin/rvm use 2.2.4 --default && ruby --version

我的环境是安装了CentOS的Docker容器

答案 4 :(得分:0)

如果你正在使用 rbenv

请使用此rbenv-doctor脚本验证是否正确设置了rbenv:

$ curl -fsSL https://github.com/rbenv/rbenv-installer/raw/master/bin/rbenv-doctor | bash