インストール手順(バージョン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 など)が用意されている。
ファイル |
説明 |
|---|---|
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¶
修正前 |
修正後 |
|---|---|
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によるファサードの実行が可能になっている。