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コマンドを上書きするってのはちょっと不安。。。