Homebrew で gfortran 周りのエラーを解決

最近 Mac の OS を入れ直すことがあって,Homebrew を入れ直したらいろいろと困ったことが起きたので解決策をメモっておきます.

問題点

brewoctave, Rなど(gfortran)が必要なソフトウェアが正常にインストールできない.


brew では gfortran が必要なプログラムをインストールする場合,gfortran は自動でインストールしてくれない仕様になっているようであらかじめインストールする必要があります.
しかしちゃんと gfortran をインストールしたにもかかわらず R などをインストールしようとすると gfortran が見つからなかったからインストールしろとのエラーが表示されました.

This formula requires a fortran compiler, but we could not find one by
looking at the FC environment variable or searching your PATH for `gfortran`.
Please take one of the following actions:
(略)

のようなエラーが表示されてしまいます.

環境

%brew -v -> Homebrew 0.9.3

解決方法

/usr/local/Library/Homebrew/superenv.rb の def setup_build_environment にある以下の部分を書き換える,

#ENV['PATH'] = determine_path
ENV['PATH'] = determine_path + ENV['PATH']

原因としては,ENV['PATH'] が PATH の情報をもってて,元々のソースでは PATH を全部書き換えてしまってるようです.
ひどいことにボクの環境では/usr/local/binすら削除されて gfortran がたどれなくなっていました(ちなみに brewfortran がインストールされてるかを調べるのに使っている ENV.fortran は `/usr/bin/which gfortran` が空になっていないかで判断していました.


とまぁこんな具合でした.ほかにも readline 周りでエラー吐いてるプログラムも何個かあったような気がしますが,こっちはよくわかってません.
余談ですが,brew 経由で octave を入れる場合は,octave を入れる前に gfortran と MacTex を入れましょう.MacTex は octavetex の何か(忘れました)が必要なのですが,brew では tex 入れられないので何かしらの方法で(本ブログでは MacTex を推しておきます,インストールが比較的簡単なので)インストールしておきましょう.なお MacTex は Homebrew をインストールしてから入れるように.