如何使用rvm将我的ruby 1.9.2-p0升级到最新的补丁级别?

Lan*_*Lan 114 ruby ruby-on-rails rvm

我目前的ruby版本是,ruby 1.9.2p0 (2010-08-18 revision 29036) [x86_64-darwin10.5.0]但我想使用rvm将其更新到最新的补丁级别.我怎样才能做到这一点?

npa*_*pad 161

首先,通过运行来更新RVM安装rvm get stable.

为确保您运行新的RVM版本,您需要运行rvm reload(或只需打开一个新终端).

完成后,您可以要求RVM列出可通过运行安装的ruby版本rvm list known.

在输出中,您现在应该看到:

# MRI Rubies
...
[ruby-]1.9.2[-p320]
...
Run Code Online (Sandbox Code Playgroud)

补丁级别周围的方括号表示这是目前RVM的ruby 1.9.2的默认补丁级别.

最后,要安装新的ruby版本,只需运行rvm install 1.9.2- 并等待它编译!

  • 对于那些正在获得_ERROR的人:已经删除了rvm更新._ - `rvm get latest` /`rvm get head`是现在升级rvm的正确方法. (29认同)

oma*_*oma 95

升级ruby解释器保留现有的gemsets:

$ 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
Run Code Online (Sandbox Code Playgroud)

用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
Run Code Online (Sandbox Code Playgroud)

  • 此外,您可以`rvm list known`以查看可以升级到的可用ruby版本. (3认同)

Vik*_*nic 34

首先更新RVM:

rvm get stable
Run Code Online (Sandbox Code Playgroud)

然后更新你的Ruby版本:

rvm upgrade 2.0.0
Run Code Online (Sandbox Code Playgroud)

对所有问题选择"是":

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
Run Code Online (Sandbox Code Playgroud)

如果您希望将宝石更新为最新版本,您可以:

rvm all do gem update
Run Code Online (Sandbox Code Playgroud)

编辑:我今天刚刚为最新版本的ruby 2.0.0做了这个(我从ruby-2.0.0-p195更新到ruby-2.0.0-p353).之后,当我尝试更新宝石时,我遇到了分段错误.发生这种情况的原因是为ruby-2.0.0-p195安装了gem,其中一些与p353不兼容.

现在您可以尝试找到不兼容的宝石,但最简单的解决方案是删除所有已安装的宝石并重新安装它们.我只是删除gems/ruby-2.0.0-p353了位于的目录/usr/local/rvm.它可能是你的其他地方.

然后我跑了,gem install bundler并为我的每个rails应用程序运行bundle install.


Ame*_*mer 15

像这样:

rvm update; rvm reload
rvm install ruby-1.9.2-p136 
rvm --default ruby-1.9.2-p136
Run Code Online (Sandbox Code Playgroud)

  • 我喜欢这个答案.我觉得升级ruby版本会破坏使用rvm的目的.在p0旁边安装一个单独的版本,然后将较新的(或任何一个)版本声明为默认版本似乎很优雅. (3认同)
  • 出于安全原因,有时需要升级到最新的修补程序 - 例如在特定Ruby版本中发现漏洞时. (2认同)