Windows に Octave バージョン 3.2.4 と octave-forge をビルドとインストール(ソースコードからビルド.Windows 上の Cygwin にインストール)
Octave とは,MATLAB に互換の数値解析ソフトウェア.
このページでは,Octave バージョン 3 のソースコードパッケージ(Cygwin のもの)をダウンロードし,Cywgin 上でビルドしてインストールする手順を図解などで説明する. ソースコードからビルドしたい(例えば,最新の Octave を追いかけたいなど)の場合には,この Web ページの手順が参考になるでしょう.
Linux での Octave のビルドとインストールについては,別ページで説明
* liboctave の使い方については,別のページで説明している.liboctave を使って,Octave の行列関係の機能を呼び出すような C++ のプログラムを簡単に作ることができる.
貴重な情報源: http://www40.atwiki.jp/gnuoctavejp (Octave for Windows メモの著者様による Wiki)
【要点】
- Octave に BLAS (GotoBLAS あるいは ATLAS) と LAPACK を組み込みたい.
- BLAS とは?
BLAS(Basic Linear Algebra Subprograms)とは,行列演算,ベクトル演算の機能をもったプログラム群です. GotoBLAS や ATLAS は,無料で使えるソフトウェアの中では,BLAS 実装の決定版といってよいでしょう.※ 他にも,優れた実装が複数あります.
<BLAS の主な機能(ごく一部を紹介)>
- Level 1 ベクトルとベクトルの演算
- DOT : 内積
- AXPY : AXPY 演算 ( y <- ax + y の形など)
- NORM : ノルム など
- Level 2 行列とベクトルと計算
- 行列とベクトルの積 ( y <- Ax )
- 行列の rank-1 更新 ( A <- A + xy' )
- Level 3 行列同士の演算
- 行列と行列の積 ( Z <- XY )
- Level 1 ベクトルとベクトルの演算
- LAPACK とは?
LAPACK とは,行列に関する種々の計算(連立1次方程式,固有値問題,などなど多数)のソフトウェア. LAPACK は Octave に必要.
- BLAS (GotoBLAS あるいは ATLAS) を組み込むには,
Octave をソースコードからビルドするのが簡単です.
Octave を,Cygwin のパッケージからインストールする場合は, GotoBLAS や ATLAS) を組み込むことは難しいです. これら(GotoBLAS か ATLAS のどちらか)を組み込むことで, 格段に早く動く(行列の掛け算で確かめました)ようにできる.そのために, Octave のソースコードを使ってビルドとインストールを行うことが必要になってきます.
- Octave の configure の引数は次の通り.
* GotoBLAS を使う場合
CC=gcc-4 CPP=cpp-4 LDFLAGS="-Xlinker --enable-auto-import" CFLAGS="-Dtimezone=_timezone -I/usr/include/suitesparse -fimplicit-none -fexceptions -mieee-fp -m32 -mthreads" CXX="g++-4 -fimplicit-none -fexceptions -mieee-fp -m32 -mthreads" F77="gfortran-4 -fimplicit-none -fexceptions -mieee-fp -m32 -mthreads" ./configure --prefix=/usr --enable-static --enable-shared --enable-dl --with-blas="-lgoto2 -lpthread" --with-lapack="-llapack_LINUX -ltmglib_LINUX"
* GotoBLAS は素晴らしいプログラムで,しかも,無料で使える.但し,GotoBLAS はフリーソフトウェアではない.「再配布や,商用・業務利用は原則不可」と明記されている. 再配布不可ですから,ソースコードやビルドしたバイナリを人にあげることはできません(パソコンを借りてインストールしてあげる,ということも難しい,という意味です).
* GotoBLAS のライセンス条項に「不安」がある場合は,ATLAS を使うことも検討してください.(決して違法なことはしないように).
* ATLAS を使う場合
CC=gcc-4 CPP=cpp-4 LDFLAGS="-Xlinker --enable-auto-import" CFLAGS="-Dtimezone=_timezone -I/usr/include/suitesparse -fimplicit-none -fexceptions -mieee-fp -m32 -mthreads" CXX="g++-4 -fimplicit-none -fexceptions -mieee-fp -m32 -mthreads" F77="gfortran-4 -fimplicit-none -fexceptions -mieee-fp -m32 -mthreads" LDFLAGS="-Xlinker --enable-auto-import" ./configure --prefix=/usr --enable-static --enable-shared --enable-dl --with-blas="-L/usr/atlas/lib -lptf77blas -latlas -lpthread" --with-lapack="-llapack_LINUX -ltmglib_LINUX"
* ATLAS も素晴らしいプログラムで,無料で使える. ATLAS は BSD ライセンスとなっているようです.ライセンスは,各自でよく確認してください. ライセンスからいうと,GotoBLAS より使い勝手がいいです. 性能面では,GotoBLAS と遜色ありません.
【この Web ページで行うこと】
- Windows の Cygwin を使う.
- Octaveは,Cygwin のソースパッケージのソースコードを使ってビルドします.
https://www.gnu.org/software/octave/ Octave の本家 からソースコードをダウンロードして使うよりも, Cygwin のソースパッケージのソースコードからビルドして,インストールする.ほうが楽だと考えています.
ソースコードからビルドする最大の理由は,BLAS(GotoBLAS や ATLAS) や LAPACK を組み込みたいからです.
- ソースコードからビルドするので C, C++, Fortran コンパイラなどが必要.
このページでは,GNU の C, C++, Fortran コンパイラを使う. これらは,Cygwin のパッケージを使って,簡単にインストールできる.
* GNU の C, C++, Fortran コンパイラ・バージョン 3 を使って Octave をビルドすることは,勧めません. バージョン 4 を使ってビルドするのは簡単です.バージョン 3 では,Octave のプログラムの動作が極端に遅くなることがあるという問題が知られています.
- Octave は,/usr の下にインストールする
- Octave 本体に加えて,octave-forge を組み込みます.(オプション)
octave-forge の組み込みでは,GSL (GNU Scientific Library)が,必要になる.
【関連する外部ページ】
- Octave オンラインマニュアル: https://www.gnu.org/software/octave/
謝辞
本 Web ページは,Octave のインストール法と,インストール時における GotoBLAS の組み込みに焦点をあてていますが, 本 Web ページの作成にあたっては, まず, 「octave for windowsメモの筆者」様(http://www.tatsuromatsuoka.com/octave/jpn/OctaveWinMemo.html (当時の URL,現存しない))に, 2ちゃんねる (http://2ch.net/) の「データ解析ツールoctaveを語ろう」掲示板での議論を通して,数々の貴重なご教示,コメント頂きました. さらには,Web ページの記述を丁寧に見ていただきました.ありがとうございました.(本 Web ページに間違いが残っていれば,それは,作者である私の責任です). 具体的には下記の情報など多数お寄せ頂きました(一部分だけ書いています).
- GotoBLAS の取り扱いについて
GotoBLAS は再配布不可.ビルドしたバイナリであっても再配布不可
敬意を込めて, 「octave for windowsメモの筆者」様の URL を記しておきます. http://www.tatsuromatsuoka.com/octave/jpn/OctaveWinMemo.html (当時の URL,現存しない) (とてもお世話になった.ありがとうございました.)
⇒ この Web ページは,分かりやすく,また,Octave に関係する種々の有益な情報が載ったページです. 情報の宝庫,オンリーワンの Web ページと言ってよいでしょう. この Web ページからも多数の情報を頂きました.ありがとうございました.
さらには, 「データ解析ツールoctaveを語ろう」掲示板の匿名の投稿者の投稿からも数多くの貴重な情報を頂きました.ありがとうございました. 多くの方々に支えられて仕上げることができた Web ページです.
前準備
前もってインストールしておくべきソフトウェア
- Cygwin の Web ページの記述に従って,Cygwin のセットアッププログラム setup.exe を入手しておくこと.
- BLAS のインストール
- ATLAS を使う場合
「Windows で ATLAS と LAPACK をビルドとインストール」 の Web ページに従って, ATLAS と LAPACK のインストールが終わっていること.ライセンス条項を確認しておくこと.
- ATLAS を使う場合
- (オプション)octave-forge をインストールする場合は,「Windows に GSL (GNU Scientific Library) をインストール」 の Web ページに従って,
GSL (GNU Scientific Library) のインストールが終わっていること.
前もって調べておく事項
- Cygwin インストールディレクトリ: C:\Cygwin
インストール手順
Octave のビルドに必要なソフトウェア等を Cygwin のパッケージを使ってインストール
Cygwinのセットアッププログラム setup.exe を使って, Octave をソースプログラムからビルドするのに必要となる他のソフトウェアをインストールする.簡単にインストールできる.
- Cygwin のセットアッププログラム setup.exe の起動
- パッケージ選択画面 (Select Packages)」(下図)まで進む
- パッケージ選択画面で,パッケージを選ぶ
下記のパッケージを選ぶ.
「keep」になっている場合には,インストール済みなので,keep のままでよい.
- Devel/bison
- Devel/flex
- Devel/gcc4-core (Core C compiler subpackage)
- Devel/gcc4-fortran (Fortran subpackage) (バージョン4)
- Devel/gcc4-g++ (C++ subpackage) (バージョン4)
- Devel/gperf
- Devel/libhdf5-devel
- Devel/libncurses-devel
- Devel/libqhull-devel
- Devel/libtool
- Devel/libxml2-devel
- Devel/make
- Devel/patchutils
- Devel/readline
- Graphics/ghostscript
- Graphics/ghostscript-fonts-other
- Graphics/ghostscript-fonts-std
- Graphics/gnuplot
- Graphics/libGraphicsMagick-devel
- Graphics/libjasper-devel
- Graphics/libjbig-devel
- Graphics/libjpeg-devel
- Graphics/liblcms-devel
- Graphics/libtiff-devel
- Graphics/libwmf-devel
- Graphics/opengl
- Libs/libbz2-devel
- Libs/libfftw3-devel
- Math/SuiteSparse
- Math/fftw3 (Discrete Fourier Transform Library)
- Math/fftw3-doc (Discrete Fourier Transform Library)
- Math/glpk (GNU Linear Programming Kit)
- Math/lapack (Comprehensive FORTRAN library for linear algebra operations)
- Math/libSuiteSparse-devel (SuiteSparse - development)
- Math/libarpack-devel
- Math/libfftw3-devel
- Math/libglpk-devel (GNU Linear Programming Kit) development libraries
- Math/libqrupdate-devel
- Math/octave
- Math/octave-devel
- Math/octave-forge ・・・ 拡張パッケージ
- Text/pcre
- Text/tetex
- Text/tetex-base
- Text/texi2html
- Utils/diffutils
- Web/libcurl-devel
- X11/X-start-menu-icons
- X11/fltk
- X11/libGL-devel
- X11/libGLU-devel
- X11/libGLw-devel
- X11/libX11-devel
- X11/libfreetype-devel
- インストールの開始
- インストール完了の確認
(参考)cURL のインストール方法
- cURL のサイト
https://curl.haxx.se/ - 最新版をダウンロード
- ビルド
* Octave のビルドのとき gcc-4 等を使うので,バージョンをあわせておく
tar -xvjof curl-7.19.5.tar.bz2 cd curl-7.19.5 CC=gcc-4 ./configure --prefix=/usr --without-zlib make
- インストール
make install
Cygwin の Octave ソースコードパッケージファイルのダウンロード
ここで行うことは,日本国内の Cygwin 配布サイトから, Cygwin の Octave ソースコードパッケージファイル をダウンロードすること.
- Cygwin のセットアッププログラム setup.exe の起動
- 先ほど同様に操作する.今度は,次の 4 つについて「Source」を選び,操作を進める.
- Math/octave
- Math/octave-devel
- Math/octave-doc
- Math/octave-forge
- ファイルの確認
ls /usr/src
pcre のビルドとインストール
- Cygwin のセットアッププログラム setup.exe の起動
- 先ほど同様に操作する.今度は,次の Text/pcre について「Source」を選び,操作を進める.
- text/pcre
- ソースコードの展開
cd /tmp tar -xvjof pcre-8.02.tar.bz2
- configure の実行
cd pcre-8.02 patch -p1 < /usr/src/pcre-8.02-1.cygwin.patch ./configure --enable-newline-is-lf --enable-unicode-properties --enable-utf8 --enable-pcregrep-libbz2 --enable-pcregrep-libz --enable-pcretest-libreadline --disable-stack-for-recursion
- ビルドとインストール
make make install
- 結果の確認
エラーメッセージが出ていないことを確認する.
Octave バージョン 3.2.4 のビルドとインストールの手順
Cygwin のソースパッケージのソースコードからビルドします.
- Cygwin のコンソールを起動
- ソースコードの展開
cd /tmp tar -xvjof /usr/src/octave-3.2.4.tar.bz2
* ファイルが無いよ,というときは,上の方に書いている 「Cygwin の Octave ソースコードパッケージファイルのダウンロード」をやり直す.
- (オプション)パッチ (Octave へのソースコード・パッチ)
cd /tmp patch -p1 < /usr/src/octave-3.2.4-3.src.patch
- (オプション)パッチ (Octave への cygwin パッチ)
cd /tmp patch -p1 < /usr/src/octave-3.2.4-3.cygwin.patch
- ビルド準備
GotoBLAS または ATLAS のどちらかを使う.
* GotoBLAS を使う場合
Cygwin のコンソール で次の操作を行う.
cd /tmp cd octave-3.2.4 CC=gcc-4 CPP=cpp-4 LDFLAGS="-Xlinker --enable-auto-import" CFLAGS="-Dtimezone=_timezone -I/usr/include/suitesparse -fimplicit-none -fexceptions -mieee-fp -m32 -mthreads" CXX="g++-4 -fimplicit-none -fexceptions -mieee-fp -m32 -mthreads" F77="gfortran-4 -fimplicit-none -fexceptions -mieee-fp -m32 -mthreads" ./configure --prefix=/usr --enable-static --enable-shared --enable-dl --with-blas="-lgoto2 -lpthread" --with-lapack="-llapack_LINUX -ltmglib_LINUX"
* ATLAS を使う場合
Cygwin のコンソール で次の操作を行う.
cd /tmp cd octave-3.2.4 CC=gcc-4 CPP=cpp-4 LDFLAGS="-Xlinker --enable-auto-import" CFLAGS="-Dtimezone=_timezone -I/usr/include/suitesparse -fimplicit-none -fexceptions -mieee-fp -m32 -mthreads" CXX="g++-4 -fimplicit-none -fexceptions -mieee-fp -m32 -mthreads" F77="gfortran-4 -fimplicit-none -fexceptions -mieee-fp -m32 -mthreads" LDFLAGS="-Xlinker --enable-auto-import" ./configure --prefix=/usr --enable-static --enable-shared --enable-dl --with-blas="-L/usr/atlas/lib -lptf77blas -latlas -lpthread" --with-lapack="-llapack_LINUX -ltmglib_LINUX"
* 上に書いているのは,ATLAS のマルチスレッド版ライブラリファイルを使うときの設定です.シングルスレッド版を使うときは, 「--with-blas="-L/usr/atlas/lib -lcblas -lf77blas -latlas" --with-lapack="-L/usr/atlas/lib -llapack -llapack_LINUX -ltmglib_LINUX"」のようになる.
《《 設定の要点 》》
- 最適化したい場合には「-O3」を付けてもよいでしょう.
<Core2 プロセッサで ATLAS を使う場合>
Core2 プロセッサを使う場合には,「-O3 fno-tree-vectorize -msse4.2 -march=native」を付けても良いでしょう(下記のように).※ -fno-tree-vectorize を付けているのは gcc4.4 におけるバグ(=伝聞情報)の回避のため.
* GotoBLAS を使う場合
* ATLAS を使う場合
* GNU の新しいコンパイラは,Core2 のようなベクトル演算機能(つまり SSE)を持った CPU 用のコードを生成する機能があります.Core2 プロセッサの場合「-O3 -march=core2」のように指定すると,この機能が有効になるようです(というのが私の推測.アセンブラコードを見て確かめたわけではない).
なお, 「-O3 -march=core2」以上に最適化オプションを増やす(-falign-loop とか -msse4 とか)と,うまくビルドできなかったり,make check が通らない可能性が一層高まるので,あまり、お勧めできません.
- 試験的に,いろいろなバージョンやコンパイル時オプションでの Octave を共存させたいときは,「--prefix=/usr/local/octave-3.2.4.hoge.hoge」のように設定することになるでしょう(パス等は適切に通す).
- CC=gcc-4 CXX="g++-4 -mthreads" F77="gfortran-4 -mthreads" : GNU の C, C++, Fortran コンパイラ・バージョン 4 を使用
- --with-blas="-lgoto2 ..." : このように書いた場合には、 GotoBLASを使うという意味. (インストール手順は,「Windows に GotoBLAS と CBLAS をインストール」 の Web ページ)
- --with-blas="-L/usr/atlas/lib -lptf77blas -latlas ..." : このように書いた場合には、 ATLASを使うという意味. (インストール手順は,「Windows で ATLAS と LAPACK をビルドとインストール」 の Web ページ)
- --with-lapack="-llapack_LINUX -ltmglib_LINUX" : LAPACK を使用 (インストール手順は,「Windows に LAPACK をインストール」 の Web ページ)
<--enable-static を引数に入れたいときの注意点>
configure コマンドで,--enable-static を引数に入れることができるが,下記の点が要注意.
- --enable-static を入れ、かつ、「-prefix=...」の「...」を「/usr」以外に設定している場合,
Octave の dll ファイルを含むディレクトリをパスに含めるか,dll ファイルをパスを通したディレクトリにコピーするなどの操作が必要になることがある.
* さもないと,「octave を起動すると,何も表示されず終わる」という現象に悩む.
- Octave の pkg install 実行時にエラーが出ることがあり,対処が必要.
- 最適化したい場合には「-O3」を付けてもよいでしょう.
- configure コマンドの結果の確認
gcc-4, g++-4, gfortran-4 になっていることを確認する. → なっていなければ configure からやり直す.
必ず,エラーメッセージが出ていないことを確認する.
* GotoBLAS を使う場合の実行結果の例
* ATLAS を使う場合の実行結果の例
* エラーが出ている場合の対処について.
原因はいろいろ考えられる.
- configure の引数のスペルミス,ということはよくある.
- 「cxsparse が無い」というようなエラーの場合,
- Cygwin のセットアッププログラムで,Octave のビルドに必要なソフトウェアをインストールしたはずですが,このときの「パッケージ選択画面で,パッケージを選ぶ」ときの間違い,も原因として考えられる.
- 「--with-blas="-lgoto2 -lpthread"」と指定したときエラーが出るならば,GotoBLAS がインストールされていない可能性がある.
- ビルド
Cygwin のコンソール で次の操作を行う.
make
- ビルド終了の確認
エラーが出ていないことを確認する.
* エラーが出ている場合の対処について.
- ビルド時に,リンク関係でエラーが出るとき.
まずは,configure のときのタイプミスを疑う.
あるいは,「C:\Cygwin\lib\cygwin1.dll を C:\Windows\System32 (あるいはパスが通ったディレクトリ)にコピー」すると 直ることがある
- LAPACK 関係のファイルがリンクできていない場合
ATLAS や GotoBLAS のビルド時に gfortran を使ったはず. だから,configure の実行時に 「... F77="gfortran-4..." ...」のように指定する(つまり,同じバージョンのものを使う)
エラーが出ている場合には,やり直しになりますが, 「make distclean」を実行して、その後、上記の手順をやり直すか, ソースコードの展開まで戻ってやり直すことになる. (例えば configure の引数を間違っていたとき,その結果が残ってしまうので,正しい引数で configure をやり直してもうまくいかないことが多いです).
- ビルド時に,リンク関係でエラーが出るとき.
- Cygwin で octave 3.2.4 をビルドする場合
make check したいが make check を実行すると,次のようなエラーが出る. src/DLD-FUNCTIONS/time.cc を調べたがよく分からない
小手先の方法ですが、次のコマンドで,エラーを回避する。
- チェック
「make check」を実行すると,チェック用プログラムが動き,自動でチェックされる.
make check「make check 」でエラーが出たときの対処法のヒント。- syscall でのエラー.「popen2: process creation failed ... Resource Temporary Available」: オプションを変えて再コンパイルしても直らないが、パソコンを再起動すると、このエラーが出なくなることがある。
- syscall でのエラー.「Can not allocate heap」: オプションを変えて再コンパイルしても, Cygwin をインストールしなおしても直らないが、Windows の再インストールからやり直すと、このエラーが出なくなることがある。
- script/special-matrix/hadamard.m でのエラー(下図):
これは、ATLAS の configure での「-t ...」の部分が間違っているときのエラー.
- インストール
Cygwin のコンソール で次の操作を行う.
make SOPRE=lib install
- インストール結果の確認
エラーメッセージが出ていないことを確認しておく.
- 起動チェック
コマンドプロンプトで
octave
を実行して起動してみる.
動作確認
試しに使ってみる.
- Cygwin のコンソールを起動
- octave の起動
* 「make SOPRE=lib install」のときに,「SOPRE=lib」を忘れていた場合には octave が起動しないことがあります.
Cygwin のコンソール で次の操作を行う.
octave
- 試しに使ってみる
Cygwin のコンソール で次の操作を行う.
x = [1 2 3] y = [4 5 6] x + y x * y'
- octave の終了
exit
性能測定の例
* ハードウェアとソフトウェア
- CPU: Intel Corei7 9200 と Intel Core2 Duo E8500
- OS: Windows XP + Cygwin
- コンパイラ: GNU コンパイラ 4.3.2 (Cygwin パッケージのもの)
- Cygwin 上でソースコードからビルドした Octave バージョン 3.0.3
- ATLAS バージョン 3.9.11: インストール手順は,別の Web ページに記述
- LAPACK バージョン 3.2 または 3.2.1 インストール手順は,別の Web ページに記述
実測値が遅い場合,ATLAS のビルド時に指定した「-t ... -m ...」の部分が,CPU のコア数,周波数と一致していなかった可能性がある.
* 実測値の例 (Intel Corei7 9200)
【要点】 Octave は,ソースコードからビルド, Intel Corei7 9200, Cygwin, Windows XP, Octave バージョン 3.0.3 + ATLAS バージョン 3.9.11
(a) 行列と行列の積: Z = X * Y
(b) 分散共分散行列: cov(X, Y)
(c) 分散共分散行列の固有値と固有ベクトル(主成分分析): eig( cov(X) )
(d) princomp 関数による主成分分析 : [pc, z, w, Tsq] = princomp(X)
(e) Singular Value Decomposition (SVD) : [U, S, D] = svd(X)
(f) 2次元の畳み込み(コンボリューション) : conv2(X, B, 'full')
(g) 条件分岐プログラム( 2ch の「データ解析ツールoctaveを語ろう」掲示板で話題になっているもの.この掲示板のプログラムを引用している)実測値
* 実測値の例 (Intel Core2 Duo E8500)
【要点】 Octave は,ソースコードからビルド, Intel Core2 Duo E8500, Cygwin, Windows XP, Octave バージョン 3.0.3 + ATLAS バージョン 3.9.11 + LAPACK バージョン 3.2.1
- GSL バージョン 1.12 : GNU コンパイラ・バージョン 4.3.2, "-O0 -ftree-vectorize -march=core2" でビルド
- FFTW3 のインストール(ソースコードを用いたインストール)(Build Tools for Visual Studio を使用)(Windows 上)
- GLPK バージョン 4.38 : GNU コンパイラ・バージョン 4.3.2, "-O3 -march=core2" でビルド
- ATLAS バージョン 3.9.11: GNU コンパイラ・バージョン 3.4.4, ATLAS のデフォルトの設定
- LAPACK バージョン 3.2.1 : GNU コンパイラ・バージョン 4.3.2, "-O3 -m32 -march=core2" でビルド
- SuiteSparse バージョン 3.2.0 : GNU コンパイラ・バージョン 4.3.2, "-O3 -march=core2" でビルド
- Octave バージョン 3.0.3 : GNU コンパイラ・バージョン 4.3.2, "-O3 -march=core2" でビルド
* GNU コンパイラは Cygwin パッケージのもの
(a) 行列と行列の積: Z = X * Y
(b) 分散共分散行列: cov(X, Y)
(c) 分散共分散行列の固有値と固有ベクトル(主成分分析): eig( cov(X) )
(d) princomp 関数による主成分分析 : [pc, z, w, Tsq] = princomp(X)
(e) Singular Value Decomposition (SVD) : [U, S, D] = svd(X)
(f) 2次元の畳み込み(コンボリューション) : conv2(X, B, 'full')
(g) FFT : fft(w)
(h) 条件分岐プログラム( 2ch の「データ解析ツールoctaveを語ろう」掲示板で話題になっているもの.この掲示板のプログラムを引用している)実測値
gnuplot との連携
Octave では,gnuplot の機能を呼び出してグラフを作る,というのが定番なので,試してみる.
グラフの描画のために,Cygwin のコンソール で次の操作を行う.
* startx を忘れるとエラーメッセージが出ます.(gnuplot が動かないので).
startx octave x = [0 0.2 0.4 0.6 0.8 1.0 1.2] plot(x, sin(x)) close
octave-forge のインストール手順
- Cygwin のコンソールを起動
- 先ほどダウンロードした
octave-forge-20080831-3.tar.bz2
を解凍
tar -xvjof octave-forge-20080831-3-src.tar.bz2
* ファイルが無いよ,ダウンロードをやり直す.
- ソースコードの展開
cd /tmp tar -xvzof octave-forge-bundle-20080831.tar.gz
- パッチ (octave-forge へのソースコード・パッチ)
cd /tmp patch -p1 < ./octave-forge-20080831-3.src.patch
- パッチ (octave-forge への cygwin パッチ)
cd /tmp patch -p1 < ./octave-forge-20080831-3.cygwin.patch
- octave-forge の設定
/tmp/octave-forge-bundle-20080831/octave-forge-packages.base を書き換える.
「new_inst_dir/usr」を,すべて「/usr」に置換する.
次のようになる.
それに加えて,このファイルの下の方にある 「load new_install_dir/usr ...」以降の部分は不要なので全て削除する.
- 「octave octave-forge-packages.base」を実行
この操作は,Octave の「インストール」を行った後,別の Cygwin のコンソールを開いて行ってください.
mkdir /usr/lib/octave mkdir /usr/lib/octave/packages mkdir /usr/share/octave/packages cd /tmp/octave-forge-bundle-20080831 octave octave-forge-packages.base
* エラーが出た場合,Octave のビルドやインストールに失敗していて,見落としていた可能性がある.
(参考)ディレクトリ構成
/usr/bin octave.exe など /usr/include/octave-3.2.4/octave インクルードファイル /usr/lib/octave/3.2.4 /usr/lib/octave/api-v32 /usr/lib/octave/site /usr/lib/octave3.2.4 liboctave.dll.a など /usr/share/info octave.info など /usr/share/man/man1 octave.1 など /usr/share/octave/3.2.4/m いろいろ /usr/share/octave/3.2.4/site/m /usr/share/octave/site/api-v32 /usr/share/octave/site/m
- 「octave octave-forge-packages.base」の実行の結果,エラーメッセージが出ていないことの確認.
* GSL のインストールを忘れていると,このとき下記のようなエラーが出ます.octave-forge の組み込みでは,GSL の組み込みが必要.
- インストールできたことの簡単な確認
octave-forge のインストールが成功していれば,「pkg list」の実行結果は,次のように表示されるはず.
pkg list
例えば io パッケージが動作するかを,簡単に確認するには,下記のような手順を踏みます.
pkg load io help dlmread
* エラーが出たらインストールのやり直しなのですが, 「octave-forge-packages.base 」の書き換えミスの場合,Octave 本体の設定ファイルが壊れてしまうという症状がありえるので,要注意.そうなると, rm -rf /usr/lib/octave; rm -rf /usr/share/octave の実行後,Octave のインストールからやり直す,ということになるかも知れません.
liboctave に関するメモ
liboctave については, 別の Web ページで説明している.