万葉ライブラリの活用方法#
- 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ライブラリ自体はコンパイル用スクリプトのパラメータの変更だけ動作し、インストールの実績もある。
インストール手順#
主な流れ:
万葉ライブラリコンパイルに必要なライブラリコードのインストール
Ubuntu 16.04LTSの場合
Ubuntu 18.04LTSの場合
Ubuntu 20.04LTSの場合
ソースコードの入手
コンパイルとインストール
コンパイルに必要なライブラリのインストール#
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> |
|
|
* |
–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>>>