如何使用rvm将ruby1.9.2-p0升级到最新的补丁级别?

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

首先,通过运行rvm get stable更新你的RVM安装。

为了确保你运行的是新的RVM版本,你需要运行rvm reload (或者只是打开一个新的terminal)。

一旦完成,你可以要求RVM通过运行rvm list known可供安装的ruby版本。

在输出中你现在应该看到:

 # MRI Rubies ... [ruby-]1.9.2[-p320] ... 

修补程序级别的方括号表示这是目前RVM默认的ruby1.9.2的补丁级别。

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

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

 $ 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,@詹姆斯,@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:

 rvm get stable 

然后更新你的Ruby版本:

 rvm upgrade 2.0.0 

所有问题都select是:

 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 

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

现在,您可以去尝试find不兼容的gem,但最简单的解决scheme是删除所有已安装的gem并重新安装。 我只是删除位于/usr/local/rvm gems/ruby-2.0.0-p353目录。 它可能在别的地方。

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

喜欢这个:

 rvm update; rvm reload rvm install ruby-1.9.2-p136 rvm --default ruby-1.9.2-p136 

您可以按照wiki中的页面安装任何补丁程序级别。

另外,每个ruby都是独立的,所以你并不是真正的“升级和保存gem”,而是安装一个新的补丁版本,然后在新的ruby环境中安装gem。

这可能是gem发挥作用,但我不使用它们。

不要忘了更新你的rvm,以防万一。

npad的答案明确地列出了基础知识,所以我不会重申这些步骤,但是这里有几个build议使用rvm upgrade答案。 我知道RVM给你的select,但它是一个危险的一点。

国际海事组织,更安全,更“rvm的方式”是首先rvm install新的ruby版本,然后使用rvm gemset copy命令将您的gemset(s)复制到新的ruby版本,例如rvm gemset copy 1.9.2-p0@some-gemset 1.9.2-p290@some-gemset 。 然后,您可以轻松地将项目切换到使用新复制的gemset(我build议在您的项目目录中使用.rvmrc文件)并查看您的代码是否失败。 如果是这样,改回旧的ruby版本只是切换gemset的问题。

但是,即使你不使用gemset(尽pipe我假设你已经在这个问题上标记了rails),使用rvm upgrade可能会导致意外的失败。 如果你的代码中断,现在你必须重新安装旧版本。 多花一点时间,干净的做法。

我想它的rvm install 1.9.2-head

你可以看到rvm list known可用的ruby

这个博客文章应该是有帮助的: 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