gemをホームディレクトリにインストールしない設定。

gem installでsudoを付け忘れると~/.gem/以下にgemがインストールされてしまう。予想外なgemを参照していたりして気持ち悪い。

アンインストール

--install-dirを付ける。

$ gem uninstall activerecord --install-dir ~/.gem/ruby/1.8

gemの一覧を得る方法は不明。gem list --install-dirはダメだった。ls -l ~/.gem/ruby/1.8/gems/で調べて消した。

ホームディレクトリにインストール禁止

rubygemsを 1.3.2(2009-04-15) 以降にアップデートする。バグフィックスがあるのでアップデートは必須。

* --user-install
  * `gem install --no-user-install` now works.  Patch #23573 by Alf Mikula.
  * `gem uninstall` can now uninstall from ~/.gem.  Bug #23760 by Roger Pack.

~/.gemrcにgem: --no-user-installを追加。一番最後の行に足した。他の行が:で始まっていても、gemの先頭にコロンは付けない。

gem: --no-user-install

これで、以下のようにインストールに失敗してくれるようになる。

$ gem install rails
ERROR:  While executing gem ... (Gem::FilePermissionError)
    You don't have write permissions into the /opt/local/lib/ruby/gems/1.8 directory.

安心してsudoを付け忘れられる。

上のページには alias gem='sudo gem' というコメントも載っているが、やり過ぎだとおもうのでしない。