万葉ライブラリの活用方法#

Status:

作成中

著者:

稲村 泰弘

最終更新日:

Mar. 30, 2021

本稿では、Ubuntu Linux+Python3環境における万葉ライブラリのソースコードからのインストールから、万葉ライブラリ環境で動作する自分用のモジュール作成について記述する。基本的にインストール先のOSに対して root権限 を持っていることが前提である。

また、本稿の対象となるLinuxは以下の通り。

ディストリブーション

バージョン

Ubuntu

16.04LTS, 18.04LTS, 20.04LTS

インストール作業に関しては、RedHat7.x系, 8.x系は別項 「 CentOS 7 へのインストール 」および「 CentOS 8 へのインストール 」を参照のこと。 インストール以降の内容に関しては、特にディストリビューションによる違いはない。

インストール#

現状、もっともシンプルなのがUbuntu18.04, 20.04でのインストール。おそらくDebianでも動作する。RedHat系では、いくつか個別にソースコードからのビルドが必要であるが、Manyoライブラリ自体はコンパイル用スクリプトのパラメータの変更だけ動作し、インストールの実績もある。

インストール手順#

主な流れ:

  1. 万葉ライブラリコンパイルに必要なライブラリコードのインストール

    • Ubuntu 16.04LTSの場合

    • Ubuntu 18.04LTSの場合

    • Ubuntu 20.04LTSの場合

  2. ソースコードの入手

  3. コンパイルとインストール

コンパイルに必要なライブラリのインストール#

Manyoライブラリのコンパイルに必要なパッケージを一覧に示す。

パッケージ

必要なバージョン

Manyoライブラリ関連

Python3-dev(開発用)

3.6, 3.7, 3.8

Mini XML

2.x以上(3.xは不可)

HDF5

1.8.x

NeXus

4.2.x以降

Gnu Scientific Library(GSL)

指定なし

Boost C++ Library

1.54.x以降

SSL

指定なし

基本的に、Ubuntuでは必要なライブラリはすべてバイナリパッケージで配布されているので、以下のようなコマンドを使用して、それぞれのパッケージをインストールするだけである。

Ubuntu 16.04の場合#

sudo apt-get install -y g++ swig make python3-dev libhdf5-serial-dev libgsl0-dev libssl-dev libbz2-dev
sudo apt-get install -y libnexus0-dev libboost-all-dev python-h5py

Ubuntu 18.04の場合#

sudo apt-get install -y g++ swig make python3-dev libhdf5-serial-dev libgsl-dev libssl-dev libbz2-dev
sudo apt-get install -y libnexus0-dev libblas-dev liblapack-dev
sudo apt-get install -y libboost-dev libboost-serialization-dev libboost-filesystem-dev libboost-system-dev libboost-program-options-dev

Ubuntu 20.04の場合#

sudo apt-get install -y g++ swig make python3-dev libhdf5-serial-dev libgsl-dev libssl-dev libbz2-dev
sudo apt-get install -y libnexus-dev
sudo apt-get install -y libboost-dev libboost-serialization-dev libboost-filesystem-dev libboost-system-dev libboost-program-options-dev

万葉ライブラリのソースコードの入手#

ソースコードはsubversionやgithubなどで管理されているが、一般ユーザーに対してはUbuntu Linux版のインストールパッケージにまとまって入っているので本稿ではそれを利用する。

空蟬ポータルサイトダウンロード からUbuntuLinux用をダウンロードする。

これを展開した src ディレクトリにあるので、それを利用する。

$ tar xzvf Utsusemi4_4.0_210306_Ubuntu_1604_2004LTS.tar.gz
$ cd Utsusemi4_4.0_210306_Ubuntu_1604_2004LTS
$ ls -F src/
Utsusemi/  Utsusemi-DNA/  Utsusemi-ENG/  Utsusemi-SAS/  Utsusemi-TKtools/  manyo/  python-emaki/  python-ugao/  version.txt

コンパイルとインストール#

万葉ライブラリのソースコード( src/manyo )をコンパイル・インストールする。

まず、インストール先を決定する。本項では /opt/mlfsoft/manyo にインストールするものとする。

MANYO_PATH という環境変数に設定し、以後それを用いるものとする。

$ export MANYO_PATH=/opt/mlfsoft/manyo

予めインストール先のフォルダを作成しておいても良い。

$ sudo mkdir -p $MANYO_PATH
$ sudo chown hoge.hoge -R $MANYO_PATH/..

それらのフォルダにあるコンパイルスクリプトを用いて、万葉ライブラリのコンパイルとインストールを行うのがもっとも簡単である。

$ ls src/manyo/do_make_Manyo.py
src/manyo-core/do_make_Manyo.py

書式とパラメータは以下のとおり。

$ python do_make_Manyo.py <command> [<option> <option> ...]
パラメータ#

Usage of do_make_Manyo.py and do_make_Utsusemi.py

command *

make

コンパイルを行う

install

コンパイル+インストールを行う

clean

make cleanを行う

man

helpを作成するスクリプトを実行する

depend

コンパイル時に必要な情報を収集する(普段は使用しない)

option

–help

ヘルプ表示

*

–manyo-path=<path>

インストール先であるMANYO_PATHを指定する

(通常は/opt/mlfsoft/manyo)

*

–dist-name=<name>

Linuxディストリビューションの指定 ( “RH6” “RH7” “Ubuntu” )

–pyver=n.m

使用するPythonのバージョンの指定。 省略時はスクリプト実行に使用したPythonのバージョン。

–numth=n

マルチスレッド処理の数の指定

–without-para

コンパイルのパラレル処理を行わない。指定しない場合、 高速に処理されるがメモリを大量に消費(数GB)するので注意。

–debug

デバッグモード

–ver=<version>

バージョンの指定(表記の問題なので不要)

–without-depend

コンパイル時に必要な情報を収集する手順を省く。これにより 高速化するが必ず1度は実施する必要があるので使用しないこと。

–other-modules=<mod>[,<mod>,..]

他のモジュールに依存する場合に使用する。 <mod>はモジュール名。

[*] 必須項目

万葉ライブラリのインストール#

万葉ライブラリ コアコードを以下のようにインストールする。C++コードがコンパイルされ、ライブラリがインストールされる。

$ cd src/manyo
$ make clean;
$ sudo python3 do_make_Manyo.py --manyo-path=$MANYO_PATH --dist-name=Ubuntu install
環境変数を設定#

万葉ライブラリの動作に必要な環境変数設定は最小限であれば以下の通りである。

export MANYO_PATH=/opt/mlfsoft/manyo/
export LD_LIBRARY_PATH=${MANYO_PATH}/lib:${LD_LIBRARY_PATH}
export PYTHONPATH=${MANYO_PATH}:${PYTHONPATH}
export PATH=${MANYO_PATH}/bin:$PATH

仮にインストール先が /opt/mlfsoft でない場合は、このファイルの MANYO_PATH 環境変数の設定を変えること。

この設定は、 do_make_Manyo.py を実行したディレクトリ内に、 bashrc.manyo.release という名前のファイルに保存されている。これを使うと最小限の設定は以下のようになる。

$ source bashrc.manyo.release

この状態で、python3から万葉ライブラリをインポートして、エラーがでないことを確認する。

$ python3
Python 3.8.5 (default, Jan 27 2021, 15:41:15)
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import Manyo
Manyo>>> import Manyo.MLF
Manyo>>>

空蟬ライブラリのインストール#

万葉ライブラリをベースにした空蟬ライブラリを以下のようにインストールする。C++コードがコンパイルされ、ライブラリとしてインストールされる。 コンパイルのために実行するスクリプトは、名前は異なるものの、万葉ライブラリのコアコードのそれと同等のものである。

$ cd src/Utsusemi/manyo
$ make clean;
$ sudo python3 do_make_Utsusemi.py --manyo-path=$MANYO_PATH --dist-name=Ubuntu install

万葉ライブラリコアコードと同様の環境変数で、python3から万葉ライブラリをインポートして、エラーがでないことを確認する。

$ python3
Python 3.8.5 (default, Jan 27 2021, 15:41:15)
[GCC 9.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import Manyo
Manyo>>> import Manyo.MLF
Manyo>>> import Manyo.Utsusemi
Manyo>>>

自分ライブラリの作成#