rbenv について

rbenv でバージョン管理すると Ruby のバージョンをrbenv global [version] 切り替えられるようになる。

rbenv
└ system
└ 2.2.0
└ 2.2.2 
     ...

gem が各バージョンのRubyにそれぞれ個別にインストールされる。

rbenv
└ system 
    └ gem list #1
└ 2.2.0
    └ gem list #2
└ 2.2.2 
     ...

上の図の例でインストールされているgem を確認してみると

(#1) rbenv global system でsystem のRubyに切り替えた際にインストールされているgem

% gem list                                                                                                                                                            [2:31:10]

*** LOCAL GEMS ***

bigdecimal (1.2.0)
bundler (1.10.6)
CFPropertyList (2.2.8)
i18n (0.7.0)
io-console (0.4.2)
json (1.7.7)
jwt (1.5.1)
libxml-ruby (2.6.0)
mini_portile (0.6.2)
minitest (4.3.2)
psych (2.0.0)
rake (0.9.6)
rdoc (4.0.0)
sqlite3 (1.3.7)
test-unit (2.0.0.0)

(#2) rbenv global 2.2.0 で version 2.2.0 のRubyに切り替えた際にインストールされているgem

% gem list                                                                                                                                                            [1:29:38]

*** LOCAL GEMS ***

bigdecimal (1.2.6)
bundler (1.10.6)
io-console (0.4.3)
json (1.8.1)
minitest (5.4.3)
power_assert (0.2.2)
psych (2.0.8)
rake (10.4.2)
rdoc (4.2.0)
test-unit (3.0.8)

は(違うgemがインストールされていれば)違うものになる。

このことを忘れていると、意図しないgem をインストールしてしまったり、思わぬ依存関係のエラーに遭遇したりするので気をつけよう。