ソースコードからのインストール¶
- 著者
稲村 泰弘
- 最終更新日
Jan. 31, 2020
本稿では、Python2環境で動作する 空蟬 0.3.x系列に関してのインストールについて記述する。基本的にインストール先のOSに対して root権限 を持っていることが前提である。
また、本稿の対象となるLinuxは以下の通り(RedHat7.x系は別項「CentOS 7 へのインストール」を参照のこと)。
ディストリブーション |
バージョン |
---|---|
Ubuntu |
14.04, 16.04 |
RedHat, CentOS, Scientific |
6.x |
目次
概要¶
現状、もっともシンプルなのがUbuntu12.04, 14.04でのインストール。おそらくDebianでも動作する。RedHat系では、いくつか個別にソースコードからのビルドが必要であるが、Manyoライブラリ自体はコンパイル用スクリプトのパラメータの変更だけ動作し、インストールの実績もある。
対応装置情報¶
BL01 |
SIK |
空蟬基本インストールのみ |
BL02 |
DNA |
空蟬基本インストール(+拡張:アドバンスと調整中) |
BL11 |
HPN |
CROSSの岡崎さんによるメンテナンス。空蟬基本インストール+BL11用コード |
BL14 |
AMR |
空蟬基本インストールのみ |
BL15 |
SAS |
空蟬基本インストール+BL15固有コードのインストール |
BL17 |
NVR |
空蟬基本インストール(+拡張:アドバンス所掌) |
BL19 |
ENG |
空蟬基本インストール(+拡張:CROSS伊藤さん所掌) |
BL21 |
NVA |
空蟬基本インストール+BL21固有コードのインストール |
BL22 |
NIS |
空蟬基本インストール+BL22固有コードのインストール |
インストール手順¶
主な流れ:
空蟬環境に必要なライブラリコードのインストール
Ubuntu 14.04LTS, 16.04LTSの場合
RedHat 6.x系列の場合
(以降の手順にOS依存なし)
空蟬関連ソースコードの入手
空蟬基本コードのインストール(OS依存なし)
装置固有(拡張)コードインストール(OS依存なし)
空蟬環境に必要なライブラリコードのインストール¶
Manyoライブラリのコンパイルや、空蟬可視化コードを動作させるのに必要なパッケージを一覧に示す。
パッケージ |
必要なバージョン |
|
---|---|---|
Manyoライブラリ関連 |
Python(開発用) |
2.7.x |
Mini XML |
2.x以上(3.xは不可) |
|
HDF5 |
1.8.x |
|
NeXus |
4.2.x以降 |
|
Gnu Scientific Library(GSL) |
指定なし |
|
Boost C++ Library |
1.46.x以降 |
|
Manyoライブラリ |
0.3以降 |
|
Python関連 |
wxPython |
2.8.x |
Numpy |
1.6.x以降 |
|
Scipy |
0.10.x以降 |
|
matplotlib |
1.2.x以降 |
Ubuntu 14.04 or 16.04の場合¶
基本的なライブラリはすべてバイナリパッケージで配布されているので、以下のようなコマンドを使用して、それぞれのパッケージをインストールするだけである。
sudo apt-get install -y g++
sudo apt-get install -y swig
sudo apt-get install -y python-dev
sudo apt-get install -y python-h5py
sudo apt-get install -y libhdf5-serial-dev
sudo apt-get install -y libmxml-dev
sudo apt-get install -y libgsl0-dev
sudo apt-get install -y libbz2-dev
sudo apt-get install -y libnexus0-dev
sudo apt-get install -y libboost-all-dev
sudo apt-get install -y python-wxgtk2.8
sudo apt-get install -y python-vtk
sudo apt-get install -y python-numpy
sudo apt-get install -y python-scipy
sudo apt-get install -y python-matplotlib
RedHat 6.x 系Linuxの場合¶
必要なパッケージ群のインストールのためにgccなど開発系パッケージが必要である。まず、OS標準のパッケージマネージャを起動する。
システム>管理>ソフトゥエアの追加/削除
から起動するソフトウェア上で、
「パッケージのコレクション」>開発ツール
を選択すること。また、必要なレポジトリとして
epel
の追加が必要である。このレポジトリの追加については、ウェブなどの情報源から得て欲しい。
必要なライブラリのインストール手順概要¶
主な手順としては、
リポジトリからのインストール
それ以外のソフトウェアのコンパイルとインストール
がある。なお、できるだけSLのリポジトリからのインストールを基本とする。2)のために、作業用ディレクトリを準備しておく。その場所はどこでもよいが、筆者はホームディレクトリの下に、以下のように作成している。
$ cd
$ mkdir –p 00install/00sources
今後は、この~/00installディレクトリ内で作業すると仮定する。
OSディストリビューションのレポジトリは常にアップデートされているので、これ以降の記述で必要なバージョンの関係でビルドするコードに対しても、レポジトリからのインストールが可能になるかも知れない。あらかじめ必要なパッケージのバージョンをチェックしておくこと。
万葉ライブラリ関連インストール手順概要¶
ここでインストールするのは、Manyoライブラリをインストールするために必要なソフトウェア(ライブラリ)である。必要なライブラリは以下の通り。
Python-devel
Mini XML
HDF5
NeXus
Gnu Scientific Library (GSL)
Boost C++ library
Manyoライブラリ
また、これらのライブラリのうち、パッケージにないもののインストール先は、MLFソフトウェアとしてのManyoライブラリの標準的なインストール先である
/opt/mlfsoft/manyo
とする。 よって、予めインストール先であるディレクトリを以下のように作成すること。
# mkdir –p /opt/mlfsoft/manyo
Python-devel¶
Pythonを利用したコンパイルを必要とするので、Python開発環境( g++, swig, python-devel )が必要である。パッケージシステムを利用して以下のようにインストールする。
$ su -
パスワード:xxxx
# yum install g++ swig python-devel
mini XML¶
mini XMLはmanyoライブラリで必要となる。インストール手順は以下の通り。
ダウンロード先:http://www.minixml.org/
ファイル :mxml-2.7.tar.gz
手順:
$ tar xzvf mxml-2.7.tar.gz
$ cd mxml-2.7
$ ./configure –-enable-shared --prefix=/opt/mlfsoft/manyo
$ make
$ su
パスワード:xxxx
# make install
HDF5¶
HDF5は、NeXusに必要であるが、デフォルトのレポジトリに入っているのでそれを利用する。インストールは以下の通り。
手順:
$ su
パスワード:xxxx
# yum install hdf5-devel
NeXus¶
NeXusのインストールは以下の通り。バージョンは新しいものでも大丈夫である。
ファイル :nexus-4.2.1.tar.gz
手順:
$ tar xzvf 00sources/nexus-4.2.1.tar.gz
$ cd nexus-4.2.1
$ ./configure --without-java --prefix=/opt/mlfsoft/manyo –with-xml=/opt/mlfsoft/manyo
$ make
$ su
パスワード:xxxxx
# make install
GSL¶
Gnu scientific libraryのインストールはSLのリポジトリにある。特にバージョンに関しては問題がない。手順は以下の通り。
手順:
$ su
パスワード:xxxxx
# yum install gsl-devel
Boostライブラリ¶
Boostライブラリは、Manyoライブラリに必須のライブラリ群である。
ファイル :boost_1_54_0.tar.gz
手順:
$ su –
パスワード:xxxx
コンパイルを行う。
$ tar xzvf boost_1_54_0.tar.gz
$ cd boost_1_54_0
$ ./bootstrap.sh –-prefix=/opt/mlfsoft/manyo
$ ./b2 –-prefix=/opt/mlfsoft/manyo
$ su
パスワード:xxx
# ./b2 –-prefix=/opt/mlfsoft/manyo install
Python関連インストール手順概要¶
ここでインストールするのは、Pythonと密接に関連する、GUIや可視化ツールである。必要なソフトウェアは以下の通り。
wxPython
numpy
scipy
matplotlib
ただし、以下のインストールにはデフォルトで rootの権限 が必要である。 root権限なしの場所へのインストールについては触れない。
wxPython¶
パッケージマネージャの「検索」タブから、wxPythonを検索し、
wxpython-devel
をチェックし、適応を押す。以後、同じ作業を「パッケージマネージャからのインストール」と呼ぶ。もしくは
$ su -
$ yum install wxPython-devel
なお、今後はコマンドラインからのインストールを基本とする。
numpy¶
numpyはSLのパッケージにあるのだが、どれもバージョンが古いので、新しいバージョンのものをソースからコンパイルしてインストールする。手順等は以下の通り。
ファイル : numpy-1.6.1.tar.gz
手順:
$ su –
パスワード:xxxxx
# yum install lapack-devel
# yum install blas-devel
# exit
$ cd 00install
$ tar xzvf 00sources/numpy-1.6.1.tar.gz
$ cd numpy-1.6.1
$ python setup.py build
$ su
パスワード:xxxxx
# python setup.py install
# exit
scipy¶
scipyもnumpy同様パッケージにあるのだが、バージョンが古いため、新しいバージョンのものをソースからコンパイルしてインストールする。手順は以下の通り。
ファイル :scipy-0.10.1.tar.gz
手順:
$ tar xzvf 00sources/scipy-0.10.1.tar.gz
$ cd scipy-0.10.1
$ python setup.py build
$ su
パスワード:xxxx
# python setup.py install
# exit
matplotlib¶
matplotlibも、scipy,numpy同様パッケージにあるのだが、バージョンが古いため、新しいバージョンのものをソースからコンパイルしてインストールする。手順は以下の通り。
ダウンロード先:http://sourceforge.net/projects/matplotlib/files/matplotlib/
ファイル :matplotlib-1.0.1.tar.gz
手順:
$ tar xzvf matplotlib-1.0.1.tar.gz
$ cd matplotlib-1.0.1
$ python setup.py build
$ su
パスワード:xxxxx
# python setup.py install
# exit
wxPython, numpy, scipy, matplotlibの動作確認¶
$ python
>>> import numpy
>>> import scipy
>>> import wx
>>> from pylab import *
>>> plot( [1,2,3] )
>>> show()
最後のコマンドで以下のような図が表示されればよい。
空蟬関連ソースコードの入手¶
ソースコードはsubversionやgithubなどで管理されているが、一般ユーザーに対してはUbuntu Linux版のインストールパッケージにまとまって入っているので本稿ではそれを利用する。
空蟬ポータルサイト の ダウンロード からUbuntuLinux用をダウンロードする。
これを展開した src ディレクトリにあるので、それを利用する。
$ tar xzvf Utsusemi_0.3.7_200124_Ubuntu_1604_1804LTS_PY2.tar.gz
$ cd Utsusemi_0.3.7_200124_Ubuntu_1604_1804LTS_PY2
$ ls src/
environ-DNA manyo-DNA manyo-SAS python-emaki python-utsusemi-DNA python-utsusemi-SAS version.txt
lib-levmar manyo-emaki manyo-TKtools python-utsusemi python-utsusemi-ENG python-utsusemi-SIK
manyo-core manyo-levmar manyo-utsusemi python-utsusemi-AMR python-utsusemi-HPN python-utsusemi-TKtools
空蟬基本コードのインストール¶
空蟬基本コードは、
万葉ライブラリC++コード
空蟬基本C++コード
空蟬基本Pythonコード
が存在し、それぞれ、コンパイルやコピーでインストールする。
この基本コードは装置固有の情報が含まれていないので、実際の使用には次項の「装置専用空蟬コードのインストール」が必要であることに注意。
Manyoライブラリ(C++コード)のコンパイルとインストール¶
万葉ライブラリコアコード( src/manyo-core )および空蟬のC++コード( src/manyo-utsusemi )をコンパイル・インストールする。それらのフォルダにあるコンパイルスクリプトを用いて、万葉ライブラりと空蟬のコンパイルとインストールを行うのがもっとも簡単である。
$ ls src/manyo-core/do_make_Manyo.py src/manyo-core/do_make_Manyo.py $ ls src/manyo-utsusemi/do_make_Utsusemi.py src/manyo-utsusemi/do_make_Utsusemi.py
書式とパラメータは以下のとおり。
$ 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> |
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 manyo-core
$ make clean;
$ python do_make_Manyo.py --manyo-path=/opt/mlfsoft/manyo --dist-name=RH6 install
空蟬基本C++コードのインストール¶
空蟬の万葉ライブラリ用コードを以下のようにインストールする。C++コードがコンパイルされ、ライブラリがインストールされる。
$ cd manyo-utsusemi
$ make clean;
$ python do_make_Utsusemi.py --manyo-path=/opt/mlfsoft/manyo --dist-name=RH6 install
空蟬基本Pythonコードのインストール¶
空蟬のPythonコードをインストールする。実際には所定のフォルダをコピーするだけである。
$ cp -r python-utsusemi /opt/mlfsoft
装置専用空蟬コードのインストール¶
それぞれの装置に対して、空蟬基本コードを拡張するコードが必要である。
BL |
C++コード |
Pythonコード |
インストール先 |
---|---|---|---|
BL01 |
なし |
python-utsusemi-SIK |
python-utsusemi/SIK |
BL02 |
manyo-DNA(詳細は後述) |
python-utsusemi-DNA |
python-utsusemi/DNA |
BL11 |
なし |
python-utsusemi-HPN |
python-utsusemi/HPN |
BL14 |
なし |
python-utsusemi-AMR |
python-utsusemi/AMR |
BL15 |
manyo-SAS(詳細は後述) |
python-utsusemi-SAS |
python-utsusemi/SAS |
BL17 |
BL15と同じ(詳細は後述) |
python-utsusemi-VNR |
python-utsusemi/VNR |
BL19 |
manyo-Emaki |
なし |
BL01, BL11, BL14の場合¶
これらのビームライン用のコードは、pythonコードだけであるので、以下のようにコードをコピーする。使用する環境に応じて必要なコードをコピーすれば良い。
$ cp -r python-utsusemi-SIK /opt/mlfsoft/python-utsusemi/SIK # for BL01
$ cp -r python-utsusemi-AMR /opt/mlfsoft/python-utsusemi/AMR # for BL14
$ cp -r python-utsusemi-HPN /opt/mlfsoft/python-utsusemi/HPN # for BL11
BL15, BL17の場合¶
BL15は、専用の万葉ライブラリ用のコード(C++)のコンパイル・インストールが必要である。
BL17は基本BL15の環境を利用するので、BL15のインストールののち、装置専用のPythonコードをインストールする。
万葉ライブラリ用コード¶
空蟬の万葉ライブラリコードと同じである。インストール先などのパラメータも一致させること。
$ cd manyo-SAS
$ make clean;
$ python do_make_Utsusemi.py --manyo-path=/opt/mlfsoft/manyo --dist-name=RH7 install
Pythonコードのインストール(コピー)¶
空蟬のPythonコードをインストール(コピー)する。
$ cp -r python-utsusemi-SAS /opt/mlfsoft/python-utsusemi/SAS # BL15及びBL17
$ cp -r python-utsusemi-VNR /opt/mlfsoft/python-utsusemi/VNR. # BL17
BL19の場合¶
BL19は、専用の万葉ライブラリ用のコード(C++)のコンパイル・インストールが必要である。
万葉ライブラリ用コード¶
空蟬の万葉ライブラリコードと同じである。インストール先などのパラメータも一致させること。
$ cd manyo-Emaki
$ make clean;
$ python ../do_make_Utsusemi.py --manyo-path=/opt/mlfsoft/manyo install
BL02の場合¶
Under Construction
環境変数を設定¶
空蟬の環境変数設定は、装置ごとに異なる。よって使用する装置に応じて設定を行う必要がある。基本的な設定はそれぞれの装置のPythonコードのフォルダに存在する bashrc.XXX (XXXは装置コード)に収められている。
/opt/mlfsoft/python-utsusemi/SIK/bashrc.SIK
/opt/mlfsoft/python-utsusemi/SAS/bashrc.SAS
など
# Utsusemi software environment
# (2018.03.30)
# BL info
XXX=SIK
BL=BL01
# Path to MLF Software
MLFSOFT_PATH=/opt/mlfsoft
...
仮にインストール先が /opt/mlfsoft でない場合は、このファイルの MLFSOFT_PATH 環境変数の設定を変えること。
これらの設定を有効にするには、空蟬を使用するユーザーのホームフォルダ直下の環境設定用ファイル .bashrc に bashrc.XXX をそのまま追記するか、以下のように source コマンドで空蟬の環境設定用ファイルを実行する。
$ source /opt/mlfsoft/python-utsusemi/XXX/bashrc.XXX
おすすめは、.bashrcに以下のような設定を、それぞれの装置ごとに追加することである。
# For Utsusemi environment SIK
if [ -f /opt/mlfsoft/python-utsusemi/SIK/bashrc.SIK ]; then
alias SIK="source /opt/mlfsoft/python-utsusemi/SIK/bashrc.SIK"
fi
# For Utsusemi environment SAS
if [ -f /opt/mlfsoft/python-utsusemi/SAS/bashrc.SAS ]; then
alias SAS="source /opt/mlfsoft/python-utsusemi/SAS/bashrc.SAS"
fi
この設定では装置コード"SIK"と"SAS"の空蟬パッケージがインストールされたことを意味する。またこれが設定されている場合、
$ SIK
や
$ SAS
といったコマンドで装置に応じた環境を設定・切り替えることが可能となる。