トップページ -> 実践知識 -> Octave を用いた画像処理,信号処理 -> Windows に Octave バージョン 3.2.4 と octave-forge をビルドとインストール(ソースコードからビルド.Windows 上の Cygwin にインストール)
[サイトマップへ], サイト内検索:

Windows に Octave バージョン 3.2.4 と octave-forge をビルドとインストール(ソースコードからビルド.Windows 上の Cygwin にインストール)

サイト構成 連絡先,業績 実践知識 コンピュータ 教材 サポートページ

Octave とは,MATLAB に互換の数値解析ソフトウエアです.

この Web ページでは,Octave バージョン 3 のソースコードパッケージ(Cygwin のもの)をダウンロードし,Cywgin 上でビルドしてインストールする手順図解などで説明する. ソースコードからビルドしたい(例えば,最新の Octave を追いかけたいなど)の場合には,この Web ページの手順が参考になるでしょう.

Linux での Octave のビルドとインストールについては,別のページで説明している.

※ liboctave の使い方については,別のページで説明している.liboctave を使って,Octave の行列関係の機能を呼び出すような C++ のプログラムを簡単に作ることができます.

貴重な情報源: http://www40.atwiki.jp/gnuoctavejp (Octave for Windows メモの著者様による Wiki)

【要点】

【この Web ページで行うこと】

Octave のオンラインマニュアル

謝辞

本 Web ページは,Octave のインストール法と,インストール時における GotoBLAS の組み込みに焦点をあてていますが, 本 Web ページの作成にあたっては, まず, 「octave for windowsメモの筆者」様http://www.tatsuromatsuoka.com/octave/jpn/OctaveWinMemo.html)に, 2ちゃんねる (http://2ch.net/) の「データ解析ツールoctaveを語ろう」掲示板での議論を通して,数々の貴重なご教示,コメント頂きました. さらには,Web ページの記述を丁寧に見ていただきました.ありがとうございました.(本 Web ページに間違いが残っていれば,それは,作者である私の責任です). 具体的には下記の情報など多数お寄せ頂きました(一部分だけ書いています).

敬意を込めて, 「octave for windowsメモの筆者」様の URL を記しておきます. http://www.tatsuromatsuoka.com/octave/jpn/OctaveWinMemo.html (とてもお世話になった.ありがとうございました.)

⇒ この Web ページは,分かりやすく,また,Octave に関係する種々の有益な情報が載ったページです. 情報の宝庫,オンリーワンの Web ページと言ってよいでしょう. この Web ページからも多数の情報を頂きました.ありがとうございました.

さらには, 「データ解析ツールoctaveを語ろう」掲示板の匿名の投稿者の投稿からも数多くの貴重な情報を頂きました.ありがとうございました. 多くの方々に支えられて仕上げることができた Web ページです.


前準備

前もってインストールしておくべきソフトウエア

  1. Cygwin の Web ページの記述に従って,Cygwin のセットアッププログラム setup.exe を入手しておくこと.

  2. BLAS のインストール

  3. (オプション)octave-forge をインストールする場合は,「Windows に GSL (GNU Scientific Library) をインストール」 の Web ページに従って, GSL (GNU Scientific Library) のインストールが終わっていること.

前もって調べておく事項


インストール手順

Octave のビルドに必要なソフトウエア等を Cygwin のパッケージを使ってインストール

Cygwinのセットアッププログラム setup.exe を使って, Octave をソースプログラムからビルドするのに必要となる他のソフトウエアをインストールする.簡単にインストールできます.

  1. Cygwin のセットアッププログラム setup.exe の起動

  2. パッケージ選択画面 (Select Packages)」(下図)まで進む

  3. パッケージ選択画面で,パッケージを選ぶ

    下記のパッケージを選ぶ.

    「keep」になっている場合には,インストール済みなので,keep のままでよい.

  4. インストールの開始

  5. インストール完了の確認


(参考)cURL のインストール方法


Cygwin の Octave ソースコードパッケージファイルのダウンロード

ここで行うことは,日本国内の Cygwin 配布サイトから, Cygwin の Octave ソースコードパッケージファイル をダウンロードすること.

  1. Cygwin のセットアッププログラム setup.exe の起動

  2. 先ほど同様に操作する.今度は,次の 4 つについて「Source」を選び,操作を進める.

  3. ファイルの確認

    ls /usr/src
    


pcre のビルドとインストール

  1. Cygwin のセットアッププログラム setup.exe の起動

  2. 先ほど同様に操作する.今度は,次の Text/pcre について「Source」を選び,操作を進める.

  3. ソースコードの展開

    cd /tmp
    tar -xvjof pcre-8.02.tar.bz2
    

  4. 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
    

  5. ビルドとインストール

    make
    make install
    

  6. 結果の確認

    エラーメッセージが出ていないことを確認する.


Octave バージョン 3.2.4 のビルドとインストールの手順

Cygwin のソースパッケージのソースコードからビルドします.

  1. Cygwin のコンソールを起動

  2. ソースコードの展開

    cd /tmp
    tar -xvjof /usr/src/octave-3.2.4.tar.bz2
    

    ファイルが無いよ,というときは,上の方に書いている 「Cygwin の Octave ソースコードパッケージファイルのダウンロード」をやり直す.

  3. (オプション)パッチ (Octave へのソースコード・パッチ)

    cd /tmp
    patch -p1 < /usr/src/octave-3.2.4-3.src.patch
    

  4. (オプション)パッチ (Octave への cygwin パッチ)

    cd /tmp
    patch -p1 < /usr/src/octave-3.2.4-3.cygwin.patch
    

  5. ビルド準備

    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"」のようになる.

    《《 設定の要点 》》

    <--enable-static を引数に入れたいときの注意点>

    configure コマンドで,--enable-static を引数に入れることができますが,下記の点が要注意.

  6. configure コマンドの結果の確認

    gcc-4, g++-4, gfortran-4 になっていることを確認する. → なっていなければ configure からやり直す.

    必ず,エラーメッセージが出ていないことを確認する.

    GotoBLAS を使う場合の実行結果の例

    ATLAS を使う場合の実行結果の例

    エラーが出ている場合の対処について

    原因はいろいろ考えられる.

  7. ビルド

    Cygwin のコンソール で次の操作を行う.

    make
    

  8. ビルド終了の確認

    エラーが出ていないことを確認する.

    ※ エラーが出ている場合の対処について.

    エラーが出ている場合には,やり直しになりますが, 「make distclean」を実行して、その後、上記の手順をやり直すか, ソースコードの展開まで戻ってやり直すことになる. (例えば configure の引数を間違っていたとき,その結果が残ってしまうので,正しい引数で configure をやり直してもうまくいかないことが多いです).

  9. Cygwin で octave 3.2.4 をビルドする場合

    make check したいが make check を実行すると,次のようなエラーが出る. src/DLD-FUNCTIONS/time.cc を調べたがよく分からない

    小手先の方法ですが、次のコマンドで,エラーを回避する。

  10. チェック

    「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 ...」の部分が間違っているときのエラー.

  11. インストール

    Cygwin のコンソール で次の操作を行う.

    make SOPRE=lib install
    

  12. インストール結果の確認

    エラーメッセージが出ていないことを確認しておく.

  13. 起動チェック

    コマンドプロンプトで

    octave
    

    を実行して起動してみる.


動作確認

試しに使ってみます.

  1. Cygwin のコンソールを起動

  2. octave の起動

    ※ 「make SOPRE=lib install」のときに,「SOPRE=lib」を忘れていた場合には octave が起動しないことがあります.

    Cygwin のコンソール で次の操作を行う.

    octave
    

  3. 試しに使ってみる

    Cygwin のコンソール で次の操作を行う.

    x = [1 2 3]
    y = [4 5 6]
    x + y
    x * y'
    

  4. octave の終了
    exit
    

性能測定の例

■ ハードウエアとソフトウエア

実測値が遅い場合,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

※ 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 のインストール手順

  1. Cygwin のコンソールを起動

  2. 先ほどダウンロードした octave-forge-20080831-3.tar.bz2 を解凍

    tar -xvjof octave-forge-20080831-3-src.tar.bz2
    

    ※ ファイルが無いよ,ダウンロードをやり直す.

  3. ソースコードの展開

    cd /tmp
    tar -xvzof octave-forge-bundle-20080831.tar.gz
    

  4. パッチ (octave-forge へのソースコード・パッチ)

    cd /tmp
    patch -p1 < ./octave-forge-20080831-3.src.patch
    

  5. パッチ (octave-forge への cygwin パッチ)

    cd /tmp
    patch -p1 < ./octave-forge-20080831-3.cygwin.patch
    

  6. octave-forge の設定

    /tmp/octave-forge-bundle-20080831/octave-forge-packages.base を書き換える

    new_inst_dir/usr」を,すべて「/usr」に置換する.

    次のようになる.

    それに加えて,このファイルの下の方にある 「load new_install_dir/usr ...」以降の部分は不要なので全て削除する

  7. 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
    

  8. octave octave-forge-packages.base」の実行の結果,エラーメッセージが出ていないことの確認.

    GSL のインストールを忘れていると,このとき下記のようなエラーが出ます.octave-forge の組み込みでは,GSL の組み込みが必要です.

  9. インストールできたことの簡単な確認

    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 ページに記述している.