Rubygemsのgemパッケージ保存ディレクトリの変更方法
前のエントリを書いていてふと思ったけど、gemパッケージの保存ディレクトリの変更方法って実はあんまり知られていなかったりする?変更は簡単で環境変数GEM_HOMEを保存したいディレクトリに変更するだけ。仮に
/opt/gems
にしたい場合
export GEM_HOME=/opt/gems
などと.*shrc(.bashrc/.zshrc)に書けばOKです。csh系だとexportではなくsetenvだったり、'='は書かずにスペースだったりという違いはありますが。
ちなみに現在のRubygemsの設定を確認する場合はこんな感じ。
~ > gem environment RubyGems Environment: - RUBYGEMS VERSION: 1.1.1 - RUBY VERSION: 1.8.6 (2008-03-03 patchlevel 114) [i686-darwin9.2.2] - INSTALLATION DIRECTORY: /opt/local/lib/ruby/gems/1.8 - RUBY EXECUTABLE: /opt/local/bin/ruby - RUBYGEMS PLATFORMS: - ruby - x86-darwin-9 - GEM PATHS: - /opt/local/lib/ruby/gems/1.8 - GEM CONFIGURATION: - :update_sources => true - :verbose => true - :benchmark => false - :backtrace => false - :bulk_threshold => 1000 - :sources => ["http://gems.rubyforge.org"] - REMOTE SOURCES: - http://gems.rubyforge.org
gemパッケージ保存ディレクトリを変更したくないけど、他のユーザー権限でもRubygemsを使いたい場合はパーミッションを変更してみるといいかも。
~ > sudo chmod 777 -R /opt/local/bin/ruby/gems/1.8
ただ、この場合/usr/binとか/usr/local/binに実行スクリプト(railsとか)を書き出そうとする場合にエラーになります。おいらは開発用と割り切って、MacPortsでほげほげするディレクトリは自分のユーザーの所有権にしているので特に問題はありませんが。