MacでOctave

GNU Octaveという数値解析ソフトウェアがあります。

これをいつも使ってるiMacで利用したいと思い立ちました。その顛末です。

MacPortでOctaveをインストールする

まずMacPortでOctaveをインストールしようとしました。
MacPortを使うのは初めてなので

辺りを参考に手順を進めます。

$ sudo port selfupdate
$ sudo port install octave

とすると、たくさんの依存関係があり、それを解決するためにいろんなものをインストールし始めました。
やがて curl-ca-bundle パッケージのインストールでchecksum errorが発生しました。


よく分かりませんが、パッケージ情報に紐づいてるチェックサムが間違ってるのでしょう。これはさっさと諦めます。

【追記】2010-11-20 01:53
コメントでチェックサムが修正されたことを教えていただきました。私もやってみてインストールできることを確認しました。

SourceForge.netからOctaveをインストールする

次にSourceForge.netからOctavegnuplot、AquaTermをインストールしようとしました。

を参考にインストールを終えます。
で実行してみると...

octave-3.2.3:1> x=1:30
octave-3.2.3:2> plot(x,sin(x/pi))
dyld: Library not loaded: /usr/X11/lib/libfreetype.6.dylib
  Referenced from: /usr/X11R6/lib/libfontconfig.1.dylib
  Reason: Incompatible library version: libfontconfig.1.dylib requires version 13.0.0 or later, but libfreetype.6.dylib provides version 10.0.0

というエラーが出ます。


「libfontconfig.1.dylibはlibfreetype6.dylibのv13.0.0以降が必要なのに、今あるのはv10.0.0だよ」という意味です。いや、そう言われてもそれはAppleから提供されてるもんだし。。。

【追記】2010-11-15 04:15
otoolで見ると問題なさそうな気がするけど、見方間違ってるのかなぁ。

$ otool -L /usr/X11/lib/libfontconfig.1.dylib
    ...
    /usr/X11/lib/libfreetype.6.dylib (compatibility version 13.0.0, current version 13.0.0)
    ...
$ otool -L /usr/X11/lib/libfreetype.6.dylib
    /usr/X11/lib/libfreetype.6.dylib (compatibility version 13.0.0, current version 13.0.0)
    ...


【追記】2010-11-15 22:26
原因わかりました。octaveが古いライブラリのコピーを持ってて、そちらを先に参照させているようです。

$ otool -L /Applications/Octave.app/Contents/Resources/lib/libfreetype.6.dylib
    /tmp/deps-i386/lib/libfreetype.6.dylib (compatibility version 10.0.0, current version 10.18.0)
    ...

対策としては、octaveのソースを取得して再ビルドすべきかな。


私は/Applications/Gnuplot.app/Contents/Resources/bin/gnuplotを編集して次の一行を36行目辺りに追加しました。一応問題なく動いています。

DYLD_LIBRARY_PATH=$(echo $DYLD_LIBRARY_PATH | awk '{gsub(/[^:]*\/Octave\.app\/[^:]*:/,"");print}')


調べてみると、最近のMacOS Xのアップデート(v10.6.4 → v10.6.5)から出始めた問題らしいです。知らんけど。


システムのライブラリを置き換えるのは躊躇われるので、これはあきらめます。

VirtualBox on MacUbuntuoctaveをインストールする

次にMac上でVirtualBoxVMWareみたいなもの)を動かし、そのうえでUbuntuを動かし、Ubuntuoctaveをインストールすることにしました。一応Mac上でoctaveが使うことになります。(^_^)

からVirtualBox仮想マシンイメージをダウンロードし、仮想マシンイメージをzip解凍してからVirtualBoxに登録します。


あとはUbuntu上で

$ sudo apt-get install octave
$ sudo apt-get install gnuplot-x11

とし、インストール完了。



意外に苦労しましたが、何とかoctaveiMac上で使うことができました。