如何升级项目的Ruby版本?

时间:2013-08-22 14:58:44

标签: ruby-on-rails ruby linux rvm version

我最近开始使用Ruby 1.9.3p385学习Rails,我正在尝试用它开发一个小项目。

我正在使用Linux,因此我使用RVM安装了Ruby。

我开发了一些页面,遵循一些教程。我想升级我的项目以使用Ruby 2.0.0。我该怎么办?

我使用RVM安装了Ruby 2.0.0:

rvm install 2.0.0

一切似乎都没问题,所以我试着用它:

rvm use 2.0.0-p247

但是当我尝试使用rails server运行我的Rails服务器时,收到以下消息:

bash: rails : command not found

我读过RVM documentation about upgrading Ruby,但我真的不明白它的作用;我害怕打破一切。

它是否会以一种使用Ruby 2.0.0的方式升级我的项目,或者我应该怎么做?

接下来,我还要升级到Rails v4。

4 个答案:

答案 0 :(得分:5)

新Ruby版本附带的gemset是空的。试试这个:

gem install bundler # this will install bundler
bundle # this will use bundler to install required gems
rails server

答案 1 :(得分:2)

您运行rvm use 2.0.0-p247还是使用了rvm use 2.0.0-p247 --default?后者将Ruby v.2.0设置为系统的默认值。如果不这样做,则会在下次登录系统或打开新的终端窗口时将Ruby恢复为RVM的默认值。

当RVM安装新版本的Ruby时,它只安装默认的gem。它可以upgrade a Ruby to another version, and optionally install the existing gems,但这不是你要求它做的:rvm install 2.0.0只安装Ruby。此时你必须安装你需要的其他宝石,包括Rails。

我在安装各种版本的Ruby和我喜欢的宝石时的一般做法是使用两个命令行管道来转储我现有的宝石,然后(重新)安装它们。首先,我切换到一个现有的Ruby,我要复制它的gems,然后运行:

gem list | cut -f1 -d' ' > ~/gem_list

然后我切换到新安装的那个,然后运行:

xargs gem install < ~/gem_list

这可以在RVM命令之外完全安装gems。

为什么呢?习惯。偏执狂基于我过去与RVM的一些“经验”。

一旦完成所有这些并且我有品牌打击 - 新的Ruby和宝石,我将继续运行捆绑器或其他家务杂务。

答案 2 :(得分:1)

安装新的ruby版本时,必须重新安装该版本的所有gem。首先安装bundler开始。然后在rails根目录中运行bundle。当您没有遇到任何错误时,您可以启动rails服务器。祝你好运!

答案 3 :(得分:-1)

在应用程序根目录上运行bundle install,您需要为新版本的Ruby重新安装所有依赖项。