升级到Ruby 2.0.0导致“此系统上当前未安装Rails”

时间:2013-06-13 22:28:34

标签: ruby-on-rails-3.2 rvm ruby-2.0

我最近从Ruby 1.9.3升级到2.0.0版。为此,我使用了以下命令:

$ rvm install ruby-2.0.0
$ rvm --default use ruby-2.0.0

成功安装并设置为默认的ruby-2.0.0;但是,当我输入ruby -v时,我遇到了错误:

Rails is not currently installed on this system. To get the latest version, simply type:

    $ sudo gem install rails

You can then rerun your "rails" command.

我知道Rails已安装,在升级我的Ruby版本之前,我运行了rails -v,它返回了我当前的版本。

尝试排查

我按照an earlier post上找到的解决方案运行了以下命令:

gemsets for ruby-1.9.3-p374 (found in /Users/.../.rvm/gems/ruby-1.9.3-p374)
   (default)
=> global
   rails3tutorial2ndEd

/etc/rvmrc: line 5: install:: command not found
/etc/rvmrc: line 6: update:: command not found

gemsets for ruby-2.0.0-rc1 (found in /Users/.../.rvm/gems/ruby-2.0.0-rc1)
   (default)
=> global

rvm use ruby-2.0.0-rc1@global

但是,再次运行rails -v表示问题仍然存在。

非常感谢任何帮助!

更新

急躁导致我只是重新安装Rails来修复问题。但是,我仍然很好奇是否有更好的方法可以在没有(可能是不必要的)重新安装Rails的情况下进行故障排除。

1 个答案:

答案 0 :(得分:2)

RVM中的Gemsets是孤立的,因为它们仅适用于单个版本的Ruby。因此,您需要在安装新版本的Ruby之后重新安装Rails gem。

当通过RVM安装Ruby版本时,将同时创建2个关联的gemsets。一个称为“全局”,一个称为“默认”。

Ruby版本(及其单个关联的全局gemset)通过rvm use ruby_version_here命令激活。

默认或(可能多个)用户生成的gemsets通过rvm use gemset_name_here命令激活。

gemset是全局的,默认的还是用户生成的 - 它只适用于单个版本的Ruby。

这是一个nice blog post,更详细地介绍了这个主题。