Answers:
升级ruby解释器并保留现有的宝石集:
$ rvm upgrade 1.9.2-p0 1.9.2
Are you sure you wish to upgrade from ruby-1.9.2-p0 to ruby-1.9.2-p136? (Y/n): Y
用1.9.2的最新稳定版本替代。这样可以避免混乱。
感谢评论(@ Mauro,@ James,@ ACB),一些其他有用的提示
$ rvm list known
# NOTE: you probably want to upgrade your rvm first, as the list of known rubies seems to be coupled to the rvm version.
$ rvm get stable
$ rvm list known #pick your ruby
rvm list known
查看可以升级到的可用红宝石版本。
第一次更新RVM:
rvm get stable
然后更新您的Ruby版本:
rvm upgrade 2.0.0
为所有问题选择是:
Are you sure you wish to upgrade from ruby-2.0.0-p195 to ruby-2.0.0-p247? (Y/n): Y
Are you sure you wish to MOVE gems from ruby-2.0.0-p195 to ruby-2.0.0-p247?
This will overwrite existing gems in ruby-2.0.0-p247 and remove them from ruby-2.0.0-p195 (Y/n): Y
Do you wish to move over aliases? (Y/n): Y
Do you wish to move over wrappers? (Y/n): Y
Do you also wish to completely remove ruby-2.0.0-p195 (inc. archive)? (Y/n): Y
如果您希望将gem更新到最新版本,则可以执行以下操作:
rvm all do gem update
编辑:我今天只是针对最新版本的ruby 2.0.0(我从ruby-2.0.0-p195更新到ruby-2.0.0-p353)进行了此操作。此后,当我尝试更新gem时,出现了分段错误。发生这种情况是因为宝石是为ruby-2.0.0-p195安装的,其中一些与p353不兼容。
现在,您可以尝试查找不兼容的gem,但是最简单的解决方案是删除所有已安装的gem,然后再次安装它们。我只是删除gems/ruby-2.0.0-p353
了位于中的目录/usr/local/rvm
。它可能适合您。
然后我跑了gem install bundler
,为每个我的Rails应用程序做了bundle install
。
npad的答案肯定列出了基础知识,因此我不会重复这些步骤,但是这里有一些建议使用的答案rvm upgrade
。我知道rvm可以为您提供选择,但这有点危险。
IMO,更安全,更“ rvm的方式”是首先rvm install
使用新的红宝石版本,然后使用rvm gemset copy
命令将您的gemset复制到新的红宝石版本,例如rvm gemset copy 1.9.2-p0@some-gemset 1.9.2-p290@some-gemset
。然后,您可以轻松地将项目切换为使用新复制的gemset(我建议使用.rvmrc
项目目录中的文件),然后查看代码是否失败。如果确实如此,则改回旧的红宝石版本仅是切换宝石集的问题。
但是,即使您不使用gemsets(尽管我假设您也这样做,因为您已经在这个问题上标记了rails),但是使用rvm upgrade
可能会导致意外失败。而且,如果您的代码中断了,现在您必须再次重新安装旧版本。请多花一些时间,然后以一种干净的方式进行操作。
此博客文章应该会有所帮助:http : //pogodan.com/blog/2011/09/06/ruby-1-9-3-for-development
要领:
rvm get head
rvm reload
wget https://gist.github.com/raw/1008945/4edd1e1dcc1f0db52d4816843a9d1e6b60661122/ruby-1.9.2p290.patch
rvm install ruby-1.9.2-p290 --patch ruby-1.9.2p290.patch -n patched
rvm get latest
/rvm get head
是现在升级rvm的正确方法。