CentOS 7 へのインストール#
- 著者:
稲村 泰弘
- 最終更新日:
Dec. 1st, 2022
概要#
本章では、CentOS 7.9におけるPython3環境上に空蟬をインストールする手順の例を示す。
動作環境#
本章ではCentOS 7.9にて構築しているが、RedHat7系列なら同じ手順でインストール可能である。
ここでは空蟬のインストールの前に必要な環境の構築手段を示す。
レポジトリ登録#
空蟬のインストールに必要となるgccなど開発系パッケージや、各種ライブラリのパッケージを導入するために新たなレポジトリの登録が必要である。
作業 |
内容 |
---|---|
CentOS開発環境の構築 |
開発ツールのグループパッケージ導入 |
追加のレポジトリ |
epelレポジトリの追加 |
その他必要なツール類 |
cmake, doxygen, swig3 の導入 |
よって、以下のコマンドで上記の導入を行う。
$ su -
# yum groupinstall base 'Development tools' --setopt=group_package_types=mandatory,default,optional
# yum install epel-release
# yum install cmake doxygen
また、C++コードをPython3から呼び出すためのラッパーツールであるSWIGを用いているが、CentOSに入っているバージョン(swig 2.0.x)ではPython3での万葉ライブラリにおいていくつか不具合が生じる(ElementContainer同士の割り算ができない)ため、 SWIG3(swig 3.0.x) に置き換える必要がある。
$ su -
# yum erase swig
# yum install swig3
必要な外部ライブラリのインストール#
万葉ライブラリのコンパイルや、空蟬可視化コードを動作させるのに必要な外部ライブラリ及び、CentOS7におけるパッケージの情報を下記の一覧に示す。
Python3関連で必要となるライブラリは、未だデフォルトのパッケージでは提供されていない(Python3用matplotlibなど)ために、 pipを用いてインストールすることに注意。
対象ソフトウェア |
ライブラリ |
必要なバージョン |
CenOS 7.9で使用可能なパッケージ |
---|---|---|---|
万葉ライブラリ関連 (C++コード) |
Python3 |
3.6以降 |
python3-devel |
Mini-XML |
2.7以降3.0未満 |
(不使用:理由は後述) |
|
HDF5 |
1.8.x |
hdf5-devel |
|
NeXus |
4.2.x以降 |
(存在せず) |
|
Gnu Scientific Library(GSL) |
指定なし |
gsl-devel |
|
Boost C++ Library |
1.46.x以降 |
boost-devel |
|
Open SSL |
指定なし |
openssl-devel |
|
Python関連 (GUI関連) |
PySide |
1.2.x |
python3-pip + pyside2 |
Numpy |
1.6.x以降 |
python3-pip + numpy(pip) |
|
Scipy |
0.10.x以降 |
python3-pip + scipy(pip) |
|
matplotlib |
1.0.x以降 |
python3-pip + matplotlib(pip) |
以上のうち、パッケージで存在するライブラリを導入する。
$ su -
# yum install python3-devel hdf5-devel gsl-devel boost-devel openssl-devel
# yum install python36-pip
# pip3 install -U pip
# python3 -m pip install pyside2
# python3 -m pip install numpy matplotlib scipy
mini-XMLはパッケージがあるがNeXusと不整合があるためにソースからコンパイルする必要がある。 またNeXusはパッケージが存在しない。 これらに関しては、次のインストール手順で示す。
インストール先の作成#
本マニュアルでは、以下をインストール先とする。
/opt/mlfsoft/
すなわちこのフォルダの下に以下のような万葉ライブラリや空蟬パッケージのフォルダが置かれる。
/opt/mlfsoft/manyo
/opt/mlfsoft/python-utsusemi
/opt/mlfsoft/uGao
インストール作業を簡略化するために、このフォルダの所有者を作業者のアカウント(本マニュアルでは hoge)とする。
$ su -
# mkdir -p /opt/mlfsoft/
# chown hoge.hoge -R /opt/mlfsoft
万葉ライブラリに必要となるライブラリ(本マニュアルでは別途ビルドするNeXusライブラリ)は、万葉ライブラリのローカルフォルダにインストールする。
mini-xmlのインストール#
mini-xml は、epelのパッケージで存在するものの、APIが大きく変わってしまったバージョンである3.0が提供されている。3.0では万葉ライブラリのコンパイルが不可能であることを確認している。そこで、少し前のバージョンのソースコードをダウンロードする。
ダウンロード先 : michaelrsweet/mxml
バージョン : v2.7以上(2.8 〜 2.12のどれでも良い)
コンパイル手順は以下の通り。
$ tar xzvf mxml-2.8.tar.gz
$ cd mxml-2.8
$ ./configure --prefix=/opt/mlfsoft/manyo
$ make install
NeXusのインストール#
NeXusのインストールにはコードをダウンロードする必要がある。
ダウンロード先: nexusformat/code
ファイル: v4.4.3.tar.gz(最新版でも大丈夫と思われる)
コンパイル手順は下記の通り。インストール先は /opt/mlfsoft/manyoを指定する。ただし、CentOSでは64bitのライブラリは lib64 というフォルダに入れられるため、万葉ライブラリでのデフォルトである lib にコピーする。また include/nexus の中身も include に移す。
$ tar xzvf code-4.4.3.tar.gz
$ cd code-4.4.3
$ mkdir build
$ cd build
$ cmake -DCMAKE_INSTALL_PREFIX:PATH=/opt/mlfsoft/manyo ..
$ make
$ make install
$ mkdir /opt/mlfsoft/manyo/lib
$ cp /opt/mlfsoft/manyo/lib64/* /opt/mlfsoft/manyo/lib
$ cp /opt/mlfsoft/manyo/include/nexus/* /opt/mlfsoft/manyo/include/
PySide, numpy, scipy, matplotlibの動作確認#
$ python
>>> import numpy
>>> import scipy
>>> import PySide
手順の概要#
主な手順は以下の通りである。
ソースコードの準備
万葉ライブラリ コアコード
夕顔コード
空蟬 基本コード
空蟬 装置専用コード
インストール#
ソースコードの準備#
ソースコードは、subversionやgithubなどで管理されているが、Ubuntu Linux版のインストールパッケージにまとまって入っているのでそれを利用する。
空蟬ポータルサイト の ダウンロード から空蟬のUbuntuLinux用をダウンロードする。
これを展開した src ディレクトリにあるので、それを利用する。
$ tar xzvf Utsusemi_4.0_201112_Ubuntu_1604_2004LTS_PY3.tar.gz
$ cd Utsusemi_4.0_201112_Ubuntu_1604_2004LTS_PY3
$ ls -F
Install.py src/
$ ls -F src/
environ-DNA/ manyo-DNA/ manyo-SAS/ manyo-core/ manyo-utsusemi/ python-ugao/ version.txt
lib-levmar/ manyo-LevmarTools/ manyo-TKtools/ manyo-emaki/ python-emaki/ python-utsusemi/
万葉ライブラリコアコードのインストール#
万葉ライブラリコアコードのインストールは以下のように行う。これによりC++コードがコンパイルされ、ライブラリがインストールされる。
$ cd manyo-core
$ make clean;
$ python do_make_Manyo.py --manyo-path=/opt/mlfsoft/manyo --dist-name=RH7 install
C++コードのコンパイルスクリプト#
上記のように、万葉ライブラリのC++コード、及び後述する空蟬のC++コードをコンパイルする場合、コードと同じフォルダに入っているスクリプト(do_make_Manyo.pyやdo_make_Utsusemi.py)を利用してインストールを行う。
書式は以下のようになり、そのオプションなどはTableに示す。
$ python do_make_Manyo.py <command> [<option> <option> ...]
$ python do_make_Utsusemi.py <command> [<option> <option> ...]
do_make_Manyo.py / do_make_Utsusemi.py <command> [<option> <option> …] |
||
---|---|---|
command |
make |
コンパイルを行う。 |
install |
コンパイル+インストールを行う。 |
|
clean |
make cleanを行う。 |
|
man |
helpを作成するスクリプトを実行する。 |
|
depend |
コンパイル時に必要な情報を収集する。(普段は使用しない) |
|
option |
–help |
ヘルプ表示。 |
–manyo-path=<path> |
MANYO_PATHを指定する 。(通常は/opt/mlfsoft/manyo) |
|
–dist-name=<name> |
|
|
–pyver=n.m |
使用するPythonのバージョンを指定する。 省略時はスクリプト実行に使用したPythonのバージョン。 |
|
–numth=n |
マルチスレッド処理の数を指定する。 |
|
–without-para |
コンパイルのパラレル処理を行わない。指定しない場合、 高速に処理されるがメモリを大量に消費(数GB)するので注意。 |
|
–debug |
デバッグモードを指定する。 |
|
–ver=<version> |
バージョンの指定。(表記の問題なので不要) |
|
–without-depend |
コンパイル時に必要な情報を収集する手順を省く。これにより 高速化するが必ず一度は実施する必要があるので使用しないこと。 |
|
–other-modules=<mod>[,<mod>,..] |
他のモジュールに依存する場合に使用する。 <mod>はモジュール名。 |
夕顔コードのインストール#
夕顔はPythonコードのみで構成されている。インストール先のフォルダにコピーするだけである。
$ cp -r python-ugao /opt/mlfsoft/
$ ls -F /opt/mlfsoft
manyo/ python-ugao/
$ ls -F /opt/mlfsoft/python-ugao
uGao/
空蟬基本コードのインストール#
空蟬基本コードは、以下の手順となる。
C++(万葉ライブラリ)コード
Pythonコード
まず、空蟬の万葉ライブラリ用コードを以下のようにインストールする。C++コードがコンパイルされ、ライブラリがインストールされる。
$ cd manyo-utsusemi
$ make clean;
$ python do_make_Utsusemi.py --manyo-path=/opt/mlfsoft/manyo --dist-name=RH7 install
次に空蟬のPythonコードをインストールする。実際には所定のフォルダをコピーするだけである。
$ cp -r python-utsusemi /opt/mlfsoft
$ ls -F /opt/mlfsoft
manyo/ python-ugao/ python-utsusemi/
$ ls -F /opt/mlfsoft/python-utsusemi
utsusemi/
$ ls -F /opt/mlfsoft/python-utsusemi/utsusemi
AMR/ DNA/ ENG/ HPN/ SAS/ SIK/ TKtools/ __init__.py ana/ facade/ scripts/ vis/
それぞれの装置における固有の関数が必要な場合がある。固有の関数を機能させるためには空蟬基本コードを拡張する装置固有コードが必要であるが、上記のコピーでそれらは既にコピーされている。
BL |
万葉ライブラリ用コード |
Pythonコードインストール先 |
---|---|---|
BL01 |
なし |
python-utsusemi/utsusemi/SIK |
BL02 |
manyo-DNA(詳細は後述) |
python-utsusemi/utsusemi/DNA |
BL11 |
なし |
python-utsusemi/utsusemi/HPN |
BL14 |
なし |
python-utsusemi/utsusemi/AMR |
BL15 |
manyo-SAS(詳細は後述) |
python-utsusemi/utsusemi/SAS |
BL17 |
BL15と同じ(詳細は後述) |
python-utsusemi/utsusemi/VNR |
BL19 |
manyo-Emaki |
(不要) |
ただし、いくつかの装置は下記のように、万葉ライブラリ用のC++コードを別途インストールする必要がある。それぞれのBLごとのインストール方法は後述する。
最後に、空蟬の一部の機能は一時ファイルを作成するため、そのためのフォルダを作成する必要がある。
通常はユーザーのホームフォルダに ana というフォルダを作成し、その下に xml 及び tmp フォルダを作成する。
$ mkdir -p ~/ana/xml
$ mkdir -p ~/ana/tmp
この ana フォルダのある場所(上記の例ではホームフォルダ)は、予め環境変数 UTSUSEMI_USR_DIR にて指定しておく必要がある(設定方法は環境設定の項で述べる)。
BL01, BL11, BL14の場合#
これらのビームライン用のコードはpythonコードだけであるので、特に作業は生じない。
BL15, BL17の場合#
BL15は、専用の万葉ライブラリ用のコード(C++)のコンパイル・インストールが必要である。
BL17は基本BL15の環境を利用するので、BL15のインストールを行った後であれば使用可能である。
万葉ライブラリ用コード#
空蟬の万葉ライブラリコードと同じである。インストール先などのパラメータも一致させること。
$ cd manyo-SAS
$ make clean
$ python do_make_Utsusemi.py --manyo-path=/opt/mlfsoft/manyo --dist-name=RH7 install
空蟬のPythonコードは既にインストール(コピー)されているので特に作業はない。
BL02の場合#
BL02においては、独自の計算用関数(C++)が導入されているので、それらに必要なライブラリを個別にインストールする必要がある。
対象ソフトウェア |
必要なC++ライブラリ |
必要なバージョン |
CenOS 7.9で使用可能なパッケージ |
---|---|---|---|
万葉ライブラリ関連 (C++コード) |
blas |
指定なし |
blas-devel |
lapack |
指定なし |
lapack-devel |
|
levmar |
2.5 |
(存在せず) |
万葉ライブラリ用C++コード#
levmarコードのコンパイルに必要な、blasおよびlapackのパッケージインストールを行う。
$ su -
# yum install lapack-devel blas-devel
# exit
続けてlevmarライブラリをコンパイルし、出来上がったlibファイルを万葉ライブラリと同じ場所へコピーする。
$ cd Utsusemi-DNA/lib-levmar/2.5
$ make
$ cp liblevmar.* /opt/mlfsoft/manyo/lib
$ cp *.h /opt/mlfsoft/manyo/include/
さらにlevmarライブラリを使用するDNA用関数群(万葉ライブラリの一部として)をコンパイルする。
$ cd ../../manyo-LevmarTools/
$ python3 do_make_Utsusemi.py --manyo-path=/opt/mlfsoft/manyo --dist-name=RH7 install
$ cd ../manyo
最後にDNA用のC++コードをコンパイルする。
$ python3 do_make_Utsusemi.py --manyo-path=/opt/mlfsoft/manyo --dist-name=RH7 install
なお、前述のようにPythonコードのインストールは既に行っているので不要である。
最後にDNA専用の環境設定を行う。DNA用のコマンドなどを $(HOME)/ana/DNAとしてコピー、もしくはリンクを作成する。
$ mkdir -p ~/ana/xml
$ mkdir -p ~/ana/tmp
$ cp -r $(pwd)/environ-home/ana ~/ana/DNA
もしくは
$ ln -s $(pwd)/environ-home/ana ~/ana/DNA
BL19の場合#
BL19は、専用の万葉ライブラリ用のコード(C++)のコンパイル・インストールが必要である。
万葉ライブラリ用コード#
BL19の万葉ライブラリ用コードのインストールは空蟬基本コードの場合と同じである。インストール先などのパラメータも一致させること。
$ cd manyo-emaki
$ make clean
$ python do_make_Utsusemi.py --manyo-path=/opt/mlfsoft/manyo --dist-name=RH7 install
Pythonコードは特に作業はない。
環境設定#
環境変数を設定#
空蟬の環境変数設定は、装置ごとに異なる。よって使用する装置に応じて設定を行う必要がある。基本的な設定はそれぞれの装置のPythonコードのフォルダに存在する bashrc.py3.XXX (XXXは装置コード)に収められている。
/opt/mlfsoft/python-utsusemi/SIK/bashrc.py3.SIK
/opt/mlfsoft/python-utsusemi/SAS/bashrc.py3.SAS
など
# Utsusemi software environment
# (2021.02.08)
# Utsusemi Environment
export UTSUSEMI_INST_CODE=SIK
export UTSUSEMI_DATA_DIR=/data
export UTSUSEMI_USR_DIR=${UTSUSEMI_USR_DIR-${HOME}}
export UTSUSEMI_WORK_DIR=${UTSUSEMI_USR_DIR}
export UTSUSEMI_LOG_QUIET=n
export UTSUSEMI_MULTH=8
export UTSUSEMI_DEBUGMODE=n
# Path to MLF Software
MLFSOFT_PATH=/opt/mlfsoft
...
仮にインストール先が /opt/mlfsoft でない場合は、このファイルの MLFSOFT_PATH 環境変数の設定を変えること。
これらの設定を有効にするには、空蟬を使用するユーザーのホームフォルダ直下の環境設定用ファイル .bashrc に bashrc.py3.XXX をそのまま追記するか、以下のように source コマンドで空蟬の環境設定用ファイルを実行する。
$ source /opt/mlfsoft/python-utsusemi/XXX/bashrc.py3.XXX
推奨する方法は、.bashrcに以下のような設定を、それぞれの装置ごとに追加することである。
# For Utsusemi environment SIK
if [ -f /opt/mlfsoft/python-utsusemi/SIK/bashrc.py3.SIK ]; then
alias SIK="source /opt/mlfsoft/python-utsusemi/SIK/bashrc.py3.SIK"
fi
# For Utsusemi environment SAS
if [ -f /opt/mlfsoft/python-utsusemi/SAS/bashrc.py3.SAS ]; then
alias SAS="source /opt/mlfsoft/python-utsusemi/SAS/bashrc.py3.SAS"
fi
この設定では装置コード”SIK”と”SAS”の空蟬パッケージがインストールされたことを意味する。またこれが設定されている場合、以下のように装置コードを入力することで、それぞれの装置の環境に切り替えることが可能となる。
BL01の場合
$ SIK
BL15の場合
$ SAS
環境変数について#
空蟬の動作に関わる環境変数は以下の通りである。
環境変数 |
説明 |
値 |
---|---|---|
UTSUSEMI_INST_CODE |
対象となる装置コード。 |
装置コード |
UTSUSEMI_DATA_DIR |
Raw Dataの置き場所。この下に装置コードのフォルダ(“SIK”,”AMR”)、それらの下にRunNoごとのデータフォルダが並ぶ。 |
フォルダパス |
UTSUSEMI_USR_DIR |
ユーザーのベースフォルダ。いくつかの設定ファイルやテンポラリファイルが作成される。 |
フォルダパス |
UTSUSEMI_WORK_DIR |
作業フォルダ。(一部のアプリのみ使用) |
フォルダパス |
UTSUSEMI_LOG_QUIET |
処理中のログを減らす。 |
y/n |
UTSUSEMI_MULTH |
マルチスレッドで動作する処理のスレッド数を指定する。(仮に大きな値を入れてもCPUの個数よりは大きくならない) |
正の整数 |
UTSUSEMI_DEBUGMODE |
デバッグモードを指定する。 |
y/n |
空蟬の実行#
初期設定が終わっていれば、ターミナルから空蟬のコマンドが実行できるはずである。例えば空蟬の基本GUIであるSequencerの起動は以下のようになる。
$ Ana
空蟬のバージョン確認#
前節の空蟬環境の有効化を済ませたのちに下記のコマンドを入力する。
$ python3
>>> import utsusemi
>>> utsusemi.__version__
'4.0.220825'
もしくは
$ python3
>>> import UtsusemiInfo
---------------------------------------------
Utsusemi Info
---------------------------------------------
version : 4.0 (rev 220825)
Contact person : Yasuhiro Inamura
e-mail : yasuhiro.inamura@j-parc.jp
---------------------------------------------
Manyo>>>
ソースコードのリリース番号とバージョン番号が表示される。
アンインストール#
手順としては、インストール先のフォルダを消去する。
$ rm -r /opt/mlfsoft
なお、まだいくつかフォルダ(データフォルダ、データ処理用フォルダ)が残っているので下記のように削除する。
$ rm -r ~/ana
$ sudo rm -r /data
問題が発生した場合#
インストール時にエラーや予期せぬ状態になった場合、使用したOSとインストール方法を確認して手順に問題がないようなら、担当者(著者)へ状況報告をお願いしたい。
インストール後の動作に問題が発生した場合は、前節に示した空蟬のバージョンを確認し、発生した事象を報告していただきたい。