ディストリビューションによっては、octave-2.1.x 系のパッケージを用意 しているものもある。例えば、Fedra Core, SuSE, Debian など。自分のディ ストリビューションに合ったパッケージをインストールするのが最もラクであ ろう。
しかし、最新版をインストールしたい、となるとそうもいかない。開発バー ジョン系列の少し古いものでは、ささいなバグもいくつか報告されており、そ の時点での最新版をインストールするのが無難だろう。また、Vine には、 2.0.17 のパッケージしか公式には存在しない。そこで、最新版のパッケージ を作成してみる。
ここでは、Fedra Core のSRPM を雛型としてインストールし、そのSPECファイルを修正して Vine Linux 3.1 用のRPMパッケージを作成する。
% rpm -ivh octave-2.1.50-9.src.rpm
最新版ソースをゲットして、rpm/SOURCES に置く。
行列演算の高速化のために、ATLASをあらかじめコンパ イルし、あらかじめインストールしておくと、octaveコンパイル時に自動的に ATLASが組み込まれる。ATLAS によるOctaveの高速化(chibaf氏のページ)を参照。
FFTWも同様にインストールしておく とDFT,FFTが高速になる。octave-2.1.64 の configure では、fftw-3 系 を要 求しているように見えるので、Vine の fftw-2.1.5 のSPRMのソースを更新し て、RPMパッケージを作成し、インストールする。SPECファイルを書き換える 時には、2.1.5 当時とは、{double,single}/doc フォルダ内の構造が変わって いるので、注意する。
rpm/SPECS/octave.spec を、最新バージョン用かつ Vine用に書き換える。要は、 2.1.50と書かれた部分をすべて、ダウンロードした最新バージョン番号(2.1.64)と修正し、BuildPrereq: の中にある、 libstdc++-devel を libstdc++3-devel に修正して、ビルド&パッケージ作成 コマンドを実行する。
% rpm -ba octave.spec
すると、足りないパッケージがリストされるので、rootになって、apt-get を使ってインストールしてから、再度rpmビルドコマンド実行。
# apt-get install bison flex libtermcap-devel zlib-devel ncurses-devel lapack gperf gcc-g77
ただし、apt-get が使えるインターネット環境にマシンがない場合は、 Vine Plus やら Vine Seed やらから必要なパッケージを手作業で集める必要 があるので面倒。なので、Vine Linux 3.1 において、octave-2.1.64 をリビ ルドするのに必要なパッケージをFTPサイト にまとめて置いた。結構コンパイルには時間がかかる...。
Matlab互換関数の多くが使用可能になる。ただし使用はもちろん自己責任 で。
% tar zxvf octave-forge-2004.11.16.tar.gz % cd octave-forge % ./configure --with-path=where_octave_forge_to_install % make -k % make check % make install
Fedora Core3 X86_64 上で、octave をインストールした。ATLAS, fftw を導入するのは Vine と同じ。そのまま rpmbuild -ba octave.spec を実行す ると、(ATLASの) libf77blas.a をコンパイルするときに -fPIC を入れろとエ ラーメッセージが指摘するが、ATLASコンパイル時に -fPIC を入れてもエラー メッセージは同じであった。
そこで、Shared Library のリンクをやめて、Static library をリンクし てoctave をコンパイルすることにした。octave.spec の修正点は、configure のオプションから --enable-dl を外し、--enable-shared=no --enable-static=yes と変更した。
面倒くさいので、Octave-forge は RPMパッケージにしていません。適当な ところで展開して下さい。alternativeは含んでいません。以下のパッケージ は無保証です。