インストール手順(バージョン2.10まで)

環境構築

pyenvを用いたPython3.9環境の構築

IROHA2.8以降はPython3.9実行環境が必要である(デバイス制御サーバーはPython2.7にも対応)。 pyenvおよびpyenv-virtualenvを用いたPython3.9の仮想環境の構築方法について説明する。

pyenvの導入

pyenvのインストール・動作に必要なパッケージをインストールする。

$ sudo yum install gcc make zlib-devel bzip2 bzip2-devel readline readline-devel sqlite sqlite-devel xz-devel tk-devel openssl openssl-devel git libffi-devel

githubのリポジトリからソースコードをcloneする。

$ git clone https://github.com/pyenv/pyenv.git ~/.pyenv

.bash_profile にパスを追加する。

$ echo 'export PATH="$HOME/.pyenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile

pyenvを有効化する。

$ source .bash_profile

pyenvによるPythonのインストール

インストール可能なPythonのバージョンを確認する。

$ pyenv install --list

例えば、3.9.16をインストールする。

$ pyenv install 3.9.16

pyenv-virtualenvの導入

githubのリポジトリからソースコードをcloneする。

$ git clone https://github.com/pyenv/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv

.bash_profile にパスを追加する。

$ echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bash_profile

pyenv-virtualenvを有効化する。

$ source .bash_profile

仮想環境の構築

IROHA2を実行するためのPython3.9仮想環境( iroha2_p39 )を作成する。

$ pyenv virtualenv 3.9.16 iroha2_p39

Note

この場合、あらかじめpyenvでPython3.9.16をインストールしておく必要がある。

仮想環境の有効化

仮想環境 iroha2_p39 を有効化したいディレクトリにおいて以下のコマンドを実行する。

$ pyenv local iroha2_p39

このコマンドを実行したディレクトリ以下のディレクトリで仮想環境が有効化される。

Pythonパッケージ(ライブラリ)インストール

Python3(設定ファイルrequirements.txtを用いる場合)

バージョン2.8以降は必要なパッケージが記述された設定ファイル( requirements.txt など)が用意されている。

Pythonパッケージ設定ファイルの一覧

ファイル

説明

requirements_min.txt

IROHA2の実行に必要最低限のパッケージ(バージョン2.9以降)

requirements_crypto.txt

requirements_min.txtに加えて暗号化通信用のパッケージを加えたもの(バージョン2.9以前)

requirements.txt

requirements_crypto.txtに加えてデバイス監視ログ可視化システムに必要なパッケージを加えたもの(バージョン2.8以降)

requirements_crypto.txt および requirements.txt を用いる場合、暗号化通信が有効になる。 この場合、各サーバーにアクセスするためには、装置管理サーバーにおいて 暗号キーの作成とディレクトリ指定 の設定が必要になる。 とりあえずIROHA2が動けばよいという場合、 requirements_min.txt を用いることを推奨する。

IROHA2ソースコードの展開 の後に以下のコマンドでパッケージをインストールする( requirements_min.txt の場合)。

$ cd /opt/mlfsoft/iroha2
$ pip install -r requirements_min.txt

Note

pycryptodomeがインストールされているPython環境でIROHA2を実行した場合、暗号化通信が有効化される。 requirements.txt を用いてパッケージをインストール後、暗号化通信が不要になった場合には pycryptodomeをアンインストール(pip uninstall pycryptodome)することでこれを無効にすることができる。

Python3

設定ファイルを用いない場合、pip3で以下のパッケージをインストールする。

  • future

  • six

  • lxml

  • pycryptodome(暗号化通信を用いる場合)

$ pip3 install future
$ pip3 install six
$ pip3 install lxml
$ pip3 install pycryptodome

Python2

pipで以下のパッケージをインストールする。

  • requests

  • future

  • pycrypto(暗号化通信を用いる場合)

$ pip install requests
$ pip install future
$ pip install pycrypto

IROHA2のインストール

IROHA2ソースコードの展開

任意のディレクトリに iroha2.tar.gz を展開する。推奨するインストール先は /opt/mlfsoft である。

$ cd /opt
$ sudo mkdir mlfsoft
# 適切なユーザーへの所有権の変更と必要に応じてパーミッションの変更を行う
$ sudo chown $USER mlfsoft
$ cd mlfsoft
$ pwd
/opt/mlfsoft
# iroha2.tar.gzをコピー後
$ tar zxvf iroha2.tar.gz
$ ls
iroha2

シーケンス管理サーバーのシンボリックリンク作成(version 2.6のみ)

シーケンス管理サーバーのスクリプトおよびファサードは iroha2/iroha-settings/sequence/database 以下にその実体を格納しているが、 実装の都合上 iroha2/iroha-sequence-server/database にシンボリックリンクを貼ることで対応している。 ファイルの受け渡し方法などによってはこのシンボリックリンクが無効になる可能性があることから、 そのような場合には以下の手順でシンボリックリンクを作成する。

$ cd /opt/mlfsoft/iroha2/iroha-sequence-server/database
$ ln -s ../../iroha-settings/sequence/database/facades facades
$ ln -s ../../iroha-settings/sequence/database/scripts scripts

python3コマンドを使用する場合の修正

ディストリビューションの種類や設定によっては python コマンドでPython2系が、 python3 コマンドでPython3系が実行される場合がある。 IROHA2は python コマンドで実行するようにコーディングされているため、このような環境においてPython3でIROHA2を実行する場合、いくつかのファイルを修正する必要がある。

各サーバーのrun.sh
run.shの修正点

修正前

修正後

python(Pythonを実行している部分)

python3

各サーバーの起動スクリプト

サービスとしてサーバーを実行する場合、後述するように起動スクリプトを修正する( 起動スクリプト:irhdevsrv )。

シーケンス管理サーバー(Version 2.6.2以前)

シーケンス管理サーバーの irhlibseq フォルダにある以下のファイルのシェバン(1行目のインタプリタを指定する部分)を修正する。

  • irhfacademngr.py

  • irhrunsrv.py

  • runcheck.py

シーケンス管理サーバーの修正点

修正前

修正後

#!/usr/bin/env python(1行目)

#!/usr/bin/env python3

Version 2.6.3以降はこの修正を行わずにPython3によるファサードの実行が可能になっている。