如何使用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