Ubuntu, Fedora で GNU Octave(バージョン 11.3.0)のソースコードからのビルドとインストールとテスト実行
【概要】
Octave とは,MATLAB に互換の数値解析ソフトウェアである.このページでは,Octave のソースコードをダウンロードし,Ubuntu や Fedora 上でビルドしてインストールする手順を説明する.
ソースコードからビルドする主な理由は,Octave に OpenBLAS(最適化された BLAS 実装)や Intel oneAPI Math Kernel Library(インテル・マス・カーネル・ライブラリ)を組み込みたい場合,あるいは最新版をいち早く使いたい場合である.こうした場合に,このページの手順が参考になる.
* Octave をディストリビューションのパッケージ(apt や dnf)でインストールしたい(ソースコードからビルドしない)場合は,別の Web ページを見てほしい.
* liboctave の使い方については,別のページで説明している.liboctave を使うと,Octave の行列関係の機能を呼び出す C++ のプログラムを作ることができる.
* 関連 Web ページ: Octave の活用
【目次】
- Ubuntu で Octave のソースコードからのインストールを行うシェルスクリプト
- Ubuntu で,コマンドを手入力して,Octave のソースコードからのインストールを行う
- Octave パッケージのインストール
- 性能測定の例
【関連する外部ページ】
- Octave 公式サイト: https://octave.org/
- Octave オンラインマニュアル: https://docs.octave.org/latest/
- Octave ソースコード配布: https://ftp.gnu.org/gnu/octave/
- Octave パッケージ一覧: https://packages.octave.org/
【サイト内の関連情報】
Ubuntu で Octave のソースコードからのインストールを行うシェルスクリプト
一括で実行できるようにシェルスクリプトを用意した.1つ1つコマンドを入力したい(シェルスクリプトにしたくない)場合は,このページの下で説明している.このスクリプトでは,Octave バージョン 11.3.0 をソースコードからビルドしてインストールする.前提ソフトウェア(ビルドツールと外部ライブラリ)のインストールも行う.
* 前準備
Intel oneAPI Math Kernel Library を使う場合は,環境設定スクリプトを読み込んでおく(インストール先が /opt/intel/oneapi の場合の例).
source /opt/intel/oneapi/setvars.sh
* シェルスクリプト
#!/bin/bash
# ビルドツールと外部ライブラリのインストール
sudo apt-get -y update
sudo apt-get -y install build-essential gfortran make
sudo apt-get -y build-dep octave
# 参照 BLAS/LAPACK の代わりに OpenBLAS を使う場合は次を導入する
sudo apt-get -y install libopenblas-dev liblapack-dev
# Octave のソースコードのダウンロード
cd /tmp
if [ ! -f octave-11.3.0.tar.gz ]; then
wget https://ftp.gnu.org/gnu/octave/octave-11.3.0.tar.gz
fi
rm -rf octave-11.3.0
tar -xvzof octave-11.3.0.tar.gz
cd octave-11.3.0
# configure(OpenBLAS を BLAS/LAPACK として使う)
./configure --prefix=/usr/local --with-blas=openblas --with-lapack=openblas
# ビルド,チェック,インストール
make -j4
make check
sudo make install
Ubuntu で,コマンドを手入力して,Octave のソースコードからのインストールを行う
前もって決めておく事項
- 作業用ディレクトリ: /tmp(このページでは /tmp と書く)
1. 前提となるソフトウェアのインストール
Ubuntu の場合の操作手順例
- アップデート操作
sudo apt-get -yV update sudo apt-get -yV upgrade - Octave のビルドで用いるビルドツールと前提ソフトウェアのインストール
Octave 公式ドキュメントでは,ビルド依存の大部分を
apt-get build-dep octaveでまとめて導入できると案内している(開発版パッケージ名は末尾が-devのもの).# ビルドツール sudo apt-get -y install build-essential gfortran make bison flex autoconf automake libtool gperf # Octave のビルド依存をまとめて導入 sudo apt-get -y build-dep octave # 外部ライブラリ(開発版パッケージ)を個別に導入する場合 sudo apt-get -y install libopenblas-dev liblapack-dev sudo apt-get -y install libpcre2-dev libreadline-dev sudo apt-get -y install libfftw3-dev sudo apt-get -y install libgraphicsmagick++1-dev sudo apt-get -y install libcurl4-openssl-dev sudo apt-get -y install libhdf5-dev sudo apt-get -y install libqhull-r-dev sudo apt-get -y install libglpk-dev sudo apt-get -y install libgsl-dev sudo apt-get -y install libarpack2-dev sudo apt-get -y install libqrupdate-dev sudo apt-get -y install libsuitesparse-dev sudo apt-get -y install libsundials-dev sudo apt-get -y install libgl2ps-dev sudo apt-get -y install gnuplot
Fedora の場合の実行例
- パッケージの更新
インストール前に更新可能な全パッケージを更新しておくとトラブルが減る.
sudo dnf -y check-update sudo dnf -y update - ビルドツールと必須ソフトウェアのインストール
Octave 公式ドキュメントでは,Fedora や Red Hat 系で
yum-builddep octave(dnf builddep octave)を使ってビルド依存をまとめて導入できると案内している.# ビルド依存をまとめて導入する(yum-utils / dnf-plugins-core が必要) sudo dnf -y install dnf-plugins-core sudo dnf -y builddep octave # 個別に導入する場合の例 sudo dnf -y install gcc gcc-c++ gcc-gfortran make bison flex sudo dnf -y install openblas-devel lapack-devel sudo dnf -y install readline-devel pcre2-devel sudo dnf -y install fftw-devel gsl-devel sudo dnf -y install GraphicsMagick-c++-devel sudo dnf -y install libcurl-devel hdf5-devel sudo dnf -y install qhull-devel glpk-devel sudo dnf -y install arpack-devel qrupdate-devel sudo dnf -y install suitesparse-devel sundials-devel sudo dnf -y install gl2ps-devel gnuplot
2. Octave のソースコードのダウンロード
ここで行うことは,Octave のソースコードをダウンロードすることである.
- https://octave.org/download を開く
- ソースコード配布ページ https://ftp.gnu.org/gnu/octave/ を開く
- 「octave-11.3.0.tar.gz」をクリックしてダウンロードする
- ダウンロードしたファイルを /tmp に移す
コマンドで取得する場合は次のようにする.
cd /tmp wget https://ftp.gnu.org/gnu/octave/octave-11.3.0.tar.gz
3. Octave のビルドとインストールの手順
- ダウンロードした octave-11.3.0.tar.gz を展開する
cd /tmp rm -rf octave-11.3.0 tar -xvzof octave-11.3.0.tar.gz - ソースコードのディレクトリへ移動する
cd octave-11.3.0 - configure の実行
configure は,システムの機能を調べて Makefile を生成する.BLAS/LAPACK は
--with-blasと--with-lapackで指定できる(指定しない場合は configure が自動で最適なものを探す).インストール先は--prefixで指定する(既定値は /usr/local).* OpenBLAS を使いたい場合
- Octave 11.3.0
- OpenBLAS(BLAS/LAPACK の最適化実装)
- GNU コンパイラ
コンソールで次の操作を行う.
./configure --prefix=/usr/local --with-blas=openblas --with-lapack=openblas* 参照実装の BLAS/LAPACK を使いたい場合
システムに導入した参照実装の BLAS/LAPACK を使う場合は,次のようにする.
./configure --prefix=/usr/local --with-blas=blas --with-lapack=lapack* Intel oneAPI MKL を使いたい場合
環境設定スクリプト(インストール先が /opt/intel/oneapi の場合は setvars.sh)を読み込んだうえで,MKL の BLAS/LAPACK を指定する.
source /opt/intel/oneapi/setvars.sh ./configure --prefix=/usr/local --with-blas=mkl_rt --with-lapack=mkl_rt - configure の結果の確認
* エラーメッセージが出ていないことを確認する
- make の実行
Octave のビルドには GNU Make が必要である(他の make では動作しない).並列ビルドする場合は -j オプションで並列数を指定する.
make -j4* デバッグ用シンボルを付けずにビルドしてディスク使用量を減らしたい場合は次のようにする.
make CFLAGS=-O CXXFLAGS=-O LDFLAGS= -j4 - make の結果の確認
* エラーメッセージが出ていないことを確認する
- make check の実行
make check - make check の結果の確認
* テストの失敗件数が想定内であることを確認する
- sudo make install の実行
sudo make install - make install の結果の確認
* エラーメッセージが出ていないことを確認する.インストール後,
octaveコマンドで起動できることを確認する.
Octave パッケージのインストール
かつての Octave-Forge パッケージリポジトリは,現在はもう保守されていない.公式には,パッケージ一覧は https://packages.octave.org/ で提供されている.Octave の pkg コマンドを使って,このリポジトリからパッケージ名を指定してインストールできる.
- パッケージのインストール
octave を起動し,
pkg installでインストールする.公式リポジトリからインストールする場合は-forgeオプションを付ける(例として image パッケージをインストールする).pkg install -forge image - インストール済みパッケージの確認
pkg list - パッケージの読み込み
インストールしたパッケージは,使う前に
pkg loadで読み込む.pkg load image - パッケージの更新
インストール済みパッケージを最新版に更新するには次のようにする.
pkg update - テスト実行
ためしに,image パッケージを読み込み,Octave に付属のサンプル画像を読み込んで表示してみる.
pkg load image img = imread("default.img"); imshow(img);