rvmによるrubyのバージョン管理

rubyのバージョン管理には普段rbenvを使っているが、サーバーの設定時にrvmを使ってみたのでメモ

基本的なコマンド

インストールしたrubyのバージョン一覧

$ rvm list
   ruby-2.3.4 [ x86_64 ]
 * ruby-2.6.6 [ x86_64 ]

# => - current
# =* - current && default
#  * - default

インストール可能なバージョン一覧

$ rvm list known
# MRI Rubies
[ruby-]1.8.6[-p420]
[ruby-]1.8.7[-head] # security released on head
[ruby-]1.9.1[-p431]
[ruby-]1.9.2[-p330]
[ruby-]1.9.3[-p551]
[ruby-]2.0.0[-p648]
[ruby-]2.1[.10]
[ruby-]2.2[.10]
〜〜〜

ヴァージョン2.6.6をインストールして選択する

$ rvm install 2.6.6

$ rvm use 2.6.6

$ rvm list
   ruby-2.3.4 [ x86_64 ]
=* ruby-2.6.6 [ x86_64 ]  # <<選択されている状態

OSのデフォルトのrubyに戻す

$ rvm system

$ rvm list
   ruby-2.3.4 [ x86_64 ]
 * ruby-2.6.6 [ x86_64 ]

# => - current
# =* - current && default
#  * - default

$ ruby -v
ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-linux]

アプリ開発用のグループをruby2.6.6のバージョンのgemsetに作成、選択する。

  • gemsetはrvmで管理されているヴァージョンに紐づいて作成される
$ rvm use 2.6.6

$ rvm gemset create Project01

$ rvm gemset list
gemsets for ruby-2.6.6 (found in /usr/local/rvm/gems/ruby-2.6.6)
=> (default)
   Project01

$ rvm use 2.6.6@Project01

rvmで管理しているrubyのヴァージョンとgemsetを指定のディレクトリで有効にするにはそのディレクトリに.ruby-versionと.ruby-gemsetを設置する

$ cat .ruby-version
2.6.6
$ cat .ruby-gemset
Project01
$ rvm gemset list

gemsets for ruby-2.6.6 (found in /usr/local/rvm/gems/ruby-2.6.6)
   (default)
=> Project01
   global

rbenvとの違い?

rbenvとrvmとの違いについては以下のページが参考になった。rvmがシェルのcdコマンドを上書きするってのはちょっと不安。。。

メモrvm

Posted by gm2bv