Homebrew でインストールしたパッケージを使う際の注意点

Homebrew

MacPortsから、Homebrewに乗り換えた訳ですが、gitでインストールしたパッケージはそのままでは使われません。

当然と言えば当然なんですが、状況を把握するのに無駄に時間がかかってしまったので、備忘録として残しておきます。

Homebrew では基本的に、/usr/local/bin にパッケージがインストールされるので、こちらを優先的に読むように、.bash_profile を修正します。


export PATH=/usr/local/bin:$PATH

これで、Homebrewで /usr/local/bin にインストールされたパッケージを優先的に読み込むようになります。

次に、RubyGemsからrailsをインストールします。

インストールの詳細については省略しますが、エラーが出ない限り問題なく完了しています。

が、ここで問題が・・・。

エラーが出ました orz

RubyGemsではエラーは出ていないのに何故・・・。

エラーの詳細についてはググってみたものの分からずじまい・・・。

詰んだ orz 、と思ったんですが、もうちょっと頑張ります。


$which rails
/usr/local/bin/rails

よくよく見てみると、railsはシンボリックリンクではなくて実ファイルになっていました。

MacPortsで入れたものが残っていたのか、10.4の時から入っていた物か・・・。
実態は分からないんですが、これを読まれては困るので、リネームしておきました。(削除しても良いのかもしれないけど、何となく怖かったので残しました)

Homebrewでインストールされたパッケージの実ファイルは /usr/local/Cellar/ の中にあります。

そして、RubyGemsでインストールしたパッケージは /usr/local/Cellar/ruby/-version-/bin に入ります。

なので、ここにあるrailsを /usr/local/bin にシンボリックリンク張ればいいのですが、ここで1つ思いました。

rubyのバージョンが上がった場合、逐一シンボリックリンクを張り直さないといけないんじゃないか・・・。

で、やっぱりいらっしゃいました、先駆者が。

gem の PATH を動的に設定する -
http://d.hatena.ne.jp/superbrothers/20111109/1320849121

.bash_profileに以下の通りに追加して完了。


[ -x `which gem` ] && PATH="`gem env | perl -ne 'print $1 if /EXECUTABLE DIRECTORY: (.+)$/'`":$PATH

これでRubyGemsで入れたパッケージのパスを気にすることなく使用することが出来るようになります。