HomebrewでOctaveのビルドが(ようやく)通った

Mac OS 10.9 MavericksにしてからHomebrewでもMacPortsでもOctaveのビルドが通らず、そのうちにOctave 3.8.0が登場して、それもビルドできず、原因もよく分からない、という状態が続いていた(エラーメッセージを読むのがだるくてサボっていたという面もある)。

dviファイルがどうのこうのというエラーメッセージが出ていたので、ドキュメント類のコンパイル部分でうまくビルドが通っていなかったぽい。「ドキュメントはいらん」とビルドしてみたら、とりあえずOctave本体は動く状態になった。

$ brew install octave --with-fltk --without-docs

でも、ドキュメントがないのでhelpコマンドが使えない。引数の順序とか調べたいときにちょっと困る。MacTeX2013との相性が悪いのかなぁ、それともTexinfoとかが原因かなぁ、と腹をくくってverboseオプションをつけて不都合の場所を探すことに。

$ brew install octave --with-fltk -v

すると、makeinfoが見つからないとのこと。Mac OS XにはもともとTexinfo 4.8がインストールされているのだけど、Octaveはより新しいバージョンのTexinfoを要求している。HomebrewでインストールするTexinfoのバージョンは5.2なので、その要求を十分に満たすのだけれど、どうやらOctaveをビルドする段階でHomebrew版Texinfoが見つからないのが、ビルドがうまくいかない原因のようだ。

確かに、HomebrewでTexinfoをインストールした時には「This formula is keg-only, so it was not symlinked into /usr/local.」(これはkeg-only版だから/usr/localにシンボリックリンクは置かないよ)というメッセージが出ていた。つまり、Mac OS X版のTexinfoと衝突するのを避けるために、Homebrew版Texinfoはパスが通らないところにインストールされているらしい。そのため、Octaveのビルドに必要なTexinfoが見つからなかったのだ。

場当たり的にパスをとおしてビルドしてみて、やっぱりうまくいかなかった。

$ export PATH=/usr/local/Cellar/texinfo/5.2/bin:$PATH
$ brew install octave --with-fltk

結局ドキュメント無しで使うことに。

【2015-04-13追記】「brew install octave --env=std」でpathをちゃんと見てくれるとの報告を見つけた。ありがたや。
Homebrewで--without-docsなしでOctaveをインストールしたい: misc