概要

GNU Octaveは、主に数値計算を目的とした高レベルの言語である。
Matlabとほぼ互換性のある言語を使用して、線形および非線形問題を数値的に解いたり、数値解析を行うための便利なコマンドラインインターフェースを提供する。
また,バッチ指向の言語としても使用することができる。

Octaveは、線形代数問題の解決、非線形方程式の根の発見、通常の関数の積分、多項式の操作、常微分方程式および微分代数方程式の積分のための広範なツールを備えている。
また、Octave独自の言語で記述されたユーザ定義関数や、C/C++、Fortran、その他の言語で記述された動的にロードされるモジュールを使用して、拡張・カスタマイズすることができる。

Octaveは、自由に再配布できるソフトウェアであり、Free Software Foundationが発行したGPLの条項に基づいて、再配布および変更することができる。


Octaveのインストール

パッケージ管理システムからインストール

Octaveをインストールする。

sudo zypper install octave


最新安定版のOctaveを使用する場合は、Scienceリポジトリを追加する。

sudo zypper addrepo 'http://download.opensuse.org/repositories/science/openSUSE_Leap_$releasever/' Science
sudo zypper refresh


そして、ScienceリポジトリにあるOctaveをパッケージ管理システムからインストールする。

sudo zypper install --from science octave


線形代数ライブラリにおいて、標準でBLASとLAPACKの実装を使用するが、ATLASやOpenBLASを使用した方が高速に処理できる。
これは、update-alternativesコマンドを使用して、ライブラリを切り替えることができる。

# BLASライブラリを変更する場合
/usr/sbin/update-alternatives --config libblas.so.3

# LAPACKライブラリを変更する場合
/usr/sbin/update-alternatives --config liblapack.so.3


ソースコードからインストール

Octaveのビルドに必要な依存関係のライブラリをインストールする。

sudo zypper install autoconf automake gnuplot gcc-fortran gcc7-fortran f2c pcre2-devel jpcre2-devel pcre-devel lapack-devel blas-devel \
                    readline-devel libbz2-devel libcurl-devel fontconfig-devel freetype-devel rapidjson-devel \
                    qhull_r-devel hdf5-devel fftw3-devel glpk-devel libsndfile-devel portaudio-devel libGraphicsMagick++-devel \
                    fltk-devel qrupdate-devel libumfpack5 libklu1 libcxsparse3 icoutils gluegen2-devel rsvg-convert \
                    libamd2 libcamd2 libcolamd2 libccolamd2 libcholmod3 ftgl-devel gl2ps-devel suitesparse-devel \
                    libarpack2 libparpack2-openmpi arpack-ng-devel parpack-openmpi-devel \
                    sundials-devel sundials-mvapich2-devel sundials-openmpi-devel sundials-openmpi2-devel sundials-openmpi3-devel \
                    libsundials_ida5-mvapich2 libsundials_ida5-openmpi libsundials_ida5-openmpi2 libsundials_ida5-openmpi3 \
                    libqt5-qtbase-devel libqt5-qtbase-common-devel libqt5-qtnetworkauth-devel libqt5-qtxmlpatterns-devel libqt5-qttools-devel \
                    libqscintilla_qt5-devel


Octaveの公式Webサイトにアクセスして、Octaveのソースコードをダウンロードする。

wget https://gnu.askapache.com/octave/octave-<バージョン>.tar.xz
tar xf octave-<バージョン>.tar.xz


ダウンロードしたファイルを解凍して、ビルドディレクトリを作成する。

cd octave-<バージョン>
mkdir build && cd build


Octaveをビルドおよびインストールする。

../configure --prefix=<Octaveのインストールディレクトリ> --with-x -with-qt=5
make -j $(nproc)
make install


~/.profileファイル等に、以下のような環境変数PATHと環境変数LD_LIBRARY_PATHを追記する。

# ~/.profileファイル

export PATH="<Octaveのインストールディレクトリ>/bin:$PATH"
export LD_LIBRARY_PATH="<Octaveのインストールディレクトリ>/lib64:$LD_LIBRARY_PATH"


Octaveの実行に必要なライブラリをインストールする。

sudo zypper install libhdf5 libcholmod3 libGraphicsMagick++-Q16-12 libQt5Help5 libqscintilla2_qt5-15 \
                    libumfpack5 libcxsparse3 libspqr2 libgl2ps1 libarpack2 libqrupdate1