arpack ng のインストール(Ubuntu 上)

arpack-ng は,大規模な固有値問題を解くための FORTRAN 77 サブルーチン集である.Implicitly Restarted Arnoldi 法により,行列の一部の固有値・固有ベクトルを求める.動作には BLASLAPACK が必要である.

このページでは,Ubuntu での arpack-ngソースコードからのインストール法を説明する.

URL: https://github.com/opencollab/arpack-ng

ソフトウェア等の利用条件は,利用者自身で確認下さい.

Ubuntu の公式パッケージにも arpack-ng が収録されている.最新のソースコードを必要としない場合は,端末で次のコマンドを実行してインストールできる.
sudo apt update
sudo apt -y install libarpack2-dev

前準備

Ubuntu のシステム更新

Ubuntu で OS のシステム更新を行うときは, 端末で,次のコマンドを実行する。これは、パッケージ情報を最新の状態に保ち、インストール済みのパッケージをセキュリティアップデートやバグ修正を含めて更新するためである。

Ubuntu のインストールはこちらの別ページで説明する。
# パッケージリストの情報を更新
sudo apt update
# インストール済みのパッケージを包括的に更新 (依存関係も考慮)
sudo apt full-upgrade
# カーネル更新等で実際に再起動が必要な場合のみ実行を推奨
# sudo shutdown -r now

C/C++ コンパイラと Make とビルドツールのインストール

ソースコードからビルドするには、C/C++ コンパイラ (通常は GCC) や make ユーティリティといった開発ツールが必要である。Ubuntu では、これらのツールは build-essential パッケージにまとめられている。インストールするには,端末で,次のコマンドを実行する。

# パッケージリストの情報を更新
sudo apt update
sudo apt -y install build-essential libtool texinfo dpkg-dev pkg-config

libtool, texinfo, dpkg-dev, pkg-config は、ビルドやパッケージ管理で使う開発関連ツールである。

gfortran のインストール(Ubuntu 上)

arpack-ng の本体は FORTRAN で書かれているため,Fortran コンパイラが必要である.インストールするには,端末で,次のコマンドを実行する.

# パッケージリストの情報を更新
sudo apt update
sudo apt -y install gfortran

git, cmake, BLAS, LAPACK のインストール(Ubuntu 上)

ソースコードの取得に git,ビルド構成の生成に cmake,arpack-ng の動作に BLASLAPACK が必要である.インストールするには,端末で,次のコマンドを実行する.

# パッケージリストの情報を更新
sudo apt update
sudo apt -y install git cmake libopenblas-dev liblapack-dev

arpack ng のインストール

ソースコードのダウンロードとビルドとインストール

端末で,次のコマンドを実行する. BUILD_SHARED_LIBS=ON共有ライブラリを生成する指定,CMAKE_BUILD_TYPE=Release最適化を有効にしたビルドの指定である.インストール先は /usr/local である.

cd /tmp
rm -rf arpack-ng
git clone https://github.com/opencollab/arpack-ng
cd arpack-ng
mkdir build
cd build
cmake -D BUILD_SHARED_LIBS=ON -D CMAKE_BUILD_TYPE=Release ..
make
sudo make install

ビルドが正常に終了したことを確認する.

共有ライブラリの検索パスの設定

/usr/local/lib にインストールされた共有ライブラリを実行時に見つけられるようにするため,ldconfig でキャッシュを更新する.端末で,次のコマンドを実行する.

sudo ldconfig
ldconfig -p | grep arpack

現在の Ubuntu では,/usr/local/lib/etc/ld.so.conf.d/libc.conf により既定で検索対象になっている.上のコマンドで libarpack.so が表示されない場合は,端末で,次のコマンドを実行して検索パスを追加する.

echo "/usr/local/lib" | sudo tee /etc/ld.so.conf.d/usr-local-lib.conf
sudo ldconfig

インストールの確認

端末で,次のコマンドを実行する.ライブラリ本体と,pkg-config で得られるコンパイル用オプションが表示される.

ls /usr/local/lib | grep arpack
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
pkg-config --cflags --libs arpack