Don*_*ato 18 ruby ruby-on-rails
我想创建一个新的Rails应用程序.我正在使用rvm和ruby-2.1.2.我是@global宝石集团,并计划使用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.
Run Code Online (Sandbox Code Playgroud)
是的,我确实使用ruby-2.1.2而不是ruby-2.2.2,但我不应该继续使用ruby-2.1.2吗?我们不允许再使用ruby-2.1.2吗?
我想也许ActiveBupport 5已经安装在@globalgemset中,ActiveSupport 5需要2.2.2,但实际上@globalgemset中没有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
Run Code Online (Sandbox Code Playgroud)
那么在尝试使用ruby-2.1.2时如何防止出现此错误?
GPr*_*ola 31
您可以使用任何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工作区.如果您通过项目将它们分开,您将最大限度地减少奇怪与宝石不兼容的几率.
gem install rails
Run Code Online (Sandbox Code Playgroud)
上面的命令将使用最新版本的rails,即Rails 5的稳定版本,需要> = ruby 2.2.2.
我们可以使用2.1.2与较低版本的Rails.请在安装rails时指定版本可以解决您的问题,例如:
gem install rails --version 4.2.4
Run Code Online (Sandbox Code Playgroud)
要么
gem install rails -v 4.2.4
Run Code Online (Sandbox Code Playgroud)
如果有效,请告诉我.谢谢.