【发布时间】:2011-03-22 13:50:21
【问题描述】:
前段时间,我用几个版本的 Ruby 解释器安装了 RVM。 由于新版本已经发布,我该如何更新它?
我只找到了一种方法:rvm install 1.9.2-rc1 && rvm remove 1.9.2-preview1,但我的宝石丢失了。
我可以不时更新分支吗?我在文档中没有找到任何提示。
【问题讨论】:
-
你能因为 rvm upgrade 命令改变接受的答案吗?
前段时间,我用几个版本的 Ruby 解释器安装了 RVM。 由于新版本已经发布,我该如何更新它?
我只找到了一种方法:rvm install 1.9.2-rc1 && rvm remove 1.9.2-preview1,但我的宝石丢失了。
我可以不时更新分支吗?我在文档中没有找到任何提示。
【问题讨论】:
当前的 rvm 版本提供了一种更简单的方法来执行此操作。 “升级”选项将迁移 gem 集、包装器和环境文件 -
$ rvm upgrade 1.9.2-p136 1.9.2-p180
要了解是否有更新的稳定版本的 ruby 实现供您升级,首先获取最新版本的 RVM,然后枚举已知的 Ruby 版本。
$ rvm get stable
$ rvm list known
您可以比较系统上安装的 ruby 版本
$ rvm list rubies
【讨论】:
rvm get stable。
您可以通过以下方式安装最新的 rvm 和 ruby:
$ \curl -L https://get.rvm.io | bash -s stable --ruby
并检查所有 ruby 版本的稳定性
$ rvm 列表已知
也可以在这里查看详细信息:http://www.ruby-lang.org/en/downloads/
$ rvm install ruby 2.0.0-p247
当你想下载特定版本或知道这是稳定的时候使用。
【讨论】:
有一个很棒的 RVM GUI,叫做 JewelryBox,我用它来管理我的 Ruby 版本
【讨论】:
我认为是:
rvm all do gemset update
【讨论】:
[编辑:rvm 有一个新的升级命令——你可能想使用 andy318 的答案]
AFAIK,目前没有自动的方法可以做到这一点,但这样的事情可以让你保留你的宝石:
rvm use 1.9.2-preview1
rvm gemset export
rvm install 1.9.2-rc1
rvm use 1.9.2-rc1
rvm gemset import
rvm remove 1.9.2-preview1
现在,为了自动更新,您必须检测版本更改,这很容易,因为您可以简单地使用 rvm use 1.9.2 的返回值。找出新版本是什么 (1.9.2-rc1) 是不必要的,因为它的别名是 1.9.2。诀窍是找到最新安装的 1.9.2 版本。您可以在 cron 作业中执行以下操作:
# make sure you source rvm first
rvm update --head
rvm reload
if [ ! rvm use 1.9.2 ]; then
for ruby_version in `rvm list strings`; do
# find the latest version of 1.9.2
case $ruby_version in
ruby-1.9.2-*) latest192=$ruby_version;;
esac
done
rvm use $latest192
rvm gemset export 192.gems
rvm install 1.9.2
rvm use 1.9.2
rvm gemset import 192
rvm remove $latest192
fi
没有尝试过,但我的更新脚本中有类似的代码。我还加入了gem update 和其他东西。
欢迎访问 Freenode 上的#rvm IRC 频道。
【讨论】:
使用rvm upgrade 1.9.2-preview1 1.9.2-rc1 命令或观看此screencast
【讨论】:
rvm help upgrade:Will migrate gemsets, wrappers, aliases and environment files.
rvm upgrade [source ruby] [destination ruby]。韦恩解决了这个问题:)
rvm upgrade 是推荐的方式,所以这应该是公认的答案。
rvm upgrade from to 而不是之前的 to -> from。