ソースコードからのインストール

著者

稲村 泰弘

最終更新日

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固有コードのインストール

インストール手順

主な流れ:

  1. 空蟬環境に必要なライブラリコードのインストール

    • Ubuntu 14.04LTS, 16.04LTSの場合

    • RedHat 6.x系列の場合

(以降の手順にOS依存なし)

  1. 空蟬関連ソースコードの入手

  2. 空蟬基本コードのインストール(OS依存なし)

  3. 装置固有(拡張)コードインストール(OS依存なし)

インストールされる空蟬環境のフォルダ構造

空蟬におけるデフォルトのインストール先などは、別項目「空蟬の環境」を参照のこと。参考までに主要なディレクトリ構造を示す。

folderstructure

空蟬環境に必要なライブラリコードのインストール

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

の追加が必要である。このレポジトリの追加については、ウェブなどの情報源から得て欲しい。

必要なライブラリのインストール手順概要

主な手順としては、

  1. リポジトリからのインストール

  2. それ以外のソフトウェアのコンパイルとインストール

がある。なお、できるだけ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ライブラリで必要となる。インストール手順は以下の通り。

$ 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のインストールは以下の通り。バージョンは新しいものでも大丈夫である。

$ 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ライブラリに必須のライブラリ群である。

$ 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のパッケージにあるのだが、どれもバージョンが古いので、新しいバージョンのものをソースからコンパイルしてインストールする。手順等は以下の通り。

$ 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同様パッケージにあるのだが、バージョンが古いため、新しいバージョンのものをソースからコンパイルしてインストールする。手順は以下の通り。

$ 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同様パッケージにあるのだが、バージョンが古いため、新しいバージョンのものをソースからコンパイルしてインストールする。手順は以下の通り。

$ 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()

最後のコマンドで以下のような図が表示されればよい。

image3

空蟬関連ソースコードの入手

ソースコードは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

といったコマンドで装置に応じた環境を設定・切り替えることが可能となる。