rbenv でインストールした Ruby の gems ディレクトリは、 Ruby のバージョンごとに分かれている。たとえば、 Ruby 2.1.{1,2} をインストールすると以下のように2つのディレクトリができる:
~/.rbenv/versions/2.1.1/lib/ruby/gems/2.1.0
~/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0
パスに現れるひとつめのバージョン番号は Ruby 自体のバージョンを表し、ふたつめのバージョン番号は gem の互換性のあるバージョンを表す。いずれも2.1.0になっているのは、 Ruby 2.1.0 向けにビルドされた gem が Ruby 2.1.{1,2} でもロードできるという意味である。
互換バージョンが一致するなら、 gems ディレクトリを共有しても問題はない。分かれているのはディスクスペースの無駄であるし、 Ruby のバージョンを上げるごとに gem をインストールし直す手間もかかる。
rbenv のプラグイン rbenv-communal-gems を使うと、 rbenv でインストールされた Ruby の gems ディレクトリを共有化することができる。
# インストール
mkdir -p ~/.rbenv/plugins
git clone https://github.com/tpope/rbenv-communal-gems ~/.rbenv/plugins/rbenv-communal-gems
# 実行
rbenv communize --all
実行すると ~/.rbenv/versions/*/lib/ruby/gems/
が rm -rf
され、 ~/.rbenv/gems/
へのシンボリックリンクで置き換えられる。
なお、 rbenv-communal-gems を使うと環境変数 GEM_HOME
が無視されるようになるので注意:Ruby - rbenv-communal-gems を使うと GEM_HOME が無視される - Qiita