如何使用RVM更新Ruby解释器?

mys*_*eim 57 ruby rvm

我不久前在RVM上安装了几个版本的Ruby解释器.我如何更新它,因为新版本已经发布?

我发现只有一种方式:rvm install 1.9.2-rc1 && rvm remove 1.9.2-preview1但我的宝石丢失了.我可以不时更新分支机构吗?我没有在文档中找到任何提示.

nih*_*que 83

使用该rvm upgrade 1.9.2-preview1 1.9.2-rc1命令或观看此截屏视频

  • 根据`rvm help upgrade`:`将迁移gemsets,包装器,别名和环境文件 (2认同)

Kon*_*ase 25

[编辑: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
Run Code Online (Sandbox Code Playgroud)

现在,为了自动更新,您必须检测版本更改,这很容易,因为您只需使用返回值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
Run Code Online (Sandbox Code Playgroud)

没试过,但我的更新脚本中有类似的代码.我也溜进了gem update其他东西.

欢迎访问Freenode上的#rvm IRC频道.

  • 请改用rvm upgrade,见下文. (2认同)

and*_*318 21

当前的rvm版本提供了一种更简单的方法.'upgrade'选项将迁移gem集,包装器和环境文件 -

$ rvm upgrade 1.9.2-p136 1.9.2-p180
Run Code Online (Sandbox Code Playgroud)

要查看是否有更新的稳定版本的ruby实现供您升级,请先获取最新版本的RVM,然后枚举已知版本的Ruby.

$ rvm get stable
$ rvm list known
Run Code Online (Sandbox Code Playgroud)

您可以将此系统上安装的ruby版本进行比较

$ rvm list rubies
Run Code Online (Sandbox Code Playgroud)

  • 为了看到后来的Ruby版本,(似乎第一个必须)运行`rvm get stable`. (6认同)