homebrewのgnuplotでAquatermを使う

内容はいつものとおり、表題のまま。

とあるデータ解析で、色々面倒なので、gnuplotをHomebrewでインストールしようとしたのだが、入るには入るのだがいろいろ面倒なことがあったので、まとめておく。

Homebrewは最近流行のMacOSX上のunix系ソフトウェアパッケージ管理のシステムで、MacPortsやFinkがそれぞれ独自のディレクトリを確保してその中で全てのソフトウェアを管理するのに対して、Homebrewは/usr/localの下に全てをインストールする。つまり、独自のディレクトリを掘らない。また、MacOSXにすでにインストールされているバイナリはできるだけ活用するという方針になっている。なので、インストールされるソフトウェアが最小限になる。

しかし、まだ発展中のシステムなので、インストールできるアプリケーションには限りがある。

そこでgithubで様々なユーザがHomebrewをforkして、開発を進めている。

octaveは、まだ公式のHomebrewのパッケージには登録さてていないが、複数のユーザのForkに存在している。そこで今回はそういうForkからインストールスクリプト(Formula)を取ってきて、進めることにする。

手順は以下の通り。

wget https://github.com/afh/homebrew/raw/90c68e52da646eff99af5b6e93f8ffb8646f3c98/Library/Formula/aquaterm.rbsudo mv aquaterm.rb /usr/local/Library/Formula/

sudo install aquaterm

sudo ln -s /usr/local/Cellar/aquaterm/1.0.1/Applications/AquaTerm.app /Applications/

sudo ln -s /usr/local/Cellar/aquaterm/1.0.1/Library/Frameworks/AquaTerm.framework /Library/Frameworks/

sudo ln -s /usr/local/Cellar/aquaterm/1.0.1/Library/Frameworks/lib/libaquaterm.1.0.0.dylib /usr/local/Cellar/aquaterm/1.0.1/Library/Frameworks/AquaTerm.framework/

sudo ln -s /usr/local/Cellar/aquaterm/1.0.1/Library/Frameworks/lib/libaquaterm.dylib /usr/local/Cellar/aquaterm/1.0.1/Library/Frameworks/AquaTerm.framework/

sudo brew install gnuplot

解説すると、octaveの依存するgnuplotが本来は依存しているはずのAquaTermのFormulaを取得してFormulaディレクトリに入れておく。

そして、最初にAquaTermをインストールする。

このあと、Cellerの中のFrameworksのシンボリックリンクを、MacOSXのFrameworksディレクトリの下張るのだが、dylibファイルが含まれていないので、Frameworksの中にdylibへのシンボリックリンクを張っておくことが必要になる。これをやっておかないと、gnuplotがコンパイルエラーをはく。ライブラリのありかを見つけられないのだ。

ここまでできるとあとは、もう簡単、gnuplotをインストールをすれば良い。

ちなみに、僕の作業はここで完結してなくて、このあとoctaveを取ってきてインストールしたのだが、こちらも下記のような手順で、ユーザのForkした先から取ってきてインストールしている。

wget https://github.com/mgadda/homebrew/raw/master/Library/Formula/qhull.rb

sudo mv qhull.rb /usr/local/Library/Formula/

wget https://github.com/mgadda/homebrew/raw/master/Library/Formula/octave.rb

sudo mv octave.rb /usr/local/Library/Formula/

sudo brew install octave

octaveとoctaveが依存するqhull、