LoginSignup
34
29

More than 5 years have passed since last update.

rbenv でインストールした複数の Ruby の gems ディレクトリを共有化する

Last updated at Posted at 2014-07-08

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

34
29
4

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
34
29