:orphan: インストール手順(バージョン2.10まで) ====================================== .. contents:: 目次: :depth: 3 環境構築 ##################################### pyenvを用いたPython3.9環境の構築 ************************************* IROHA2.8以降はPython3.9実行環境が必要である(デバイス制御サーバーはPython2.7にも対応)。 pyenvおよびpyenv-virtualenvを用いたPython3.9の仮想環境の構築方法について説明する。 pyenvの導入 ------------------------------------- pyenvのインストール・動作に必要なパッケージをインストールする。 .. code-block:: sh $ 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する。 .. code-block:: sh $ git clone https://github.com/pyenv/pyenv.git ~/.pyenv ``.bash_profile`` にパスを追加する。 .. code-block:: sh $ echo 'export PATH="$HOME/.pyenv/bin:$PATH"' >> ~/.bash_profile $ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile pyenvを有効化する。 .. code-block:: sh $ source .bash_profile pyenvによるPythonのインストール ------------------------------------- インストール可能なPythonのバージョンを確認する。 .. code-block:: sh $ pyenv install --list 例えば、3.9.16をインストールする。 .. code-block:: sh $ pyenv install 3.9.16 pyenv-virtualenvの導入 ------------------------------------- githubのリポジトリからソースコードをcloneする。 .. code-block:: sh $ git clone https://github.com/pyenv/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv ``.bash_profile`` にパスを追加する。 .. code-block:: sh $ echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bash_profile pyenv-virtualenvを有効化する。 .. code-block:: sh $ source .bash_profile 仮想環境の構築 ------------------------------------- IROHA2を実行するためのPython3.9仮想環境( `iroha2_p39` )を作成する。 .. code-block:: sh $ pyenv virtualenv 3.9.16 iroha2_p39 .. note:: この場合、あらかじめpyenvでPython3.9.16をインストールしておく必要がある。 仮想環境の有効化 ------------------------------------- 仮想環境 `iroha2_p39` を有効化したいディレクトリにおいて以下のコマンドを実行する。 .. code-block:: sh $ pyenv local iroha2_p39 このコマンドを実行したディレクトリ以下のディレクトリで仮想環境が有効化される。 Pythonパッケージ(ライブラリ)インストール ******************************************* .. _pip_requirements_v28+: Python3(設定ファイルrequirements.txtを用いる場合) ------------------------------------------------------ バージョン2.8以降は必要なパッケージが記述された設定ファイル( ``requirements.txt`` など)が用意されている。 .. csv-table:: Pythonパッケージ設定ファイルの一覧 :header-rows: 1 :widths: 20, 60 :name: pip_requirements_oldv210 ファイル, 説明 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`` を用いる場合、暗号化通信が有効になる。 この場合、各サーバーにアクセスするためには、装置管理サーバーにおいて :ref:`create_crypto_key` の設定が必要になる。 とりあえずIROHA2が動けばよいという場合、 ``requirements_min.txt`` を用いることを推奨する。 :ref:`tar_src_oldv210` の後に以下のコマンドでパッケージをインストールする( ``requirements_min.txt`` の場合)。 .. code-block:: sh $ 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(暗号化通信を用いる場合) .. code-block:: sh $ pip3 install future $ pip3 install six $ pip3 install lxml $ pip3 install pycryptodome Python2 ------------------------------------- pipで以下のパッケージをインストールする。 - requests - future - pycrypto(暗号化通信を用いる場合) .. code-block:: sh $ pip install requests $ pip install future $ pip install pycrypto IROHA2のインストール ##################################### .. _tar_src_oldv210: IROHA2ソースコードの展開 ************************************* 任意のディレクトリに ``iroha2.tar.gz`` を展開する。推奨するインストール先は ``/opt/mlfsoft`` である。 .. code-block:: sh $ 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`` にシンボリックリンクを貼ることで対応している。 ファイルの受け渡し方法などによってはこのシンボリックリンクが無効になる可能性があることから、 そのような場合には以下の手順でシンボリックリンクを作成する。 .. code-block:: sh $ 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 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ .. csv-table:: run.shの修正点 :header-rows: 1 :name: py3_runsh_oldv210 修正前, 修正後 python(Pythonを実行している部分), python3 各サーバーの起動スクリプト ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ サービスとしてサーバーを実行する場合、後述するように起動スクリプトを修正する( :ref:`exec_script` )。 シーケンス管理サーバー(Version 2.6.2以前) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ シーケンス管理サーバーの ``irhlibseq`` フォルダにある以下のファイルのシェバン(1行目のインタプリタを指定する部分)を修正する。 - irhfacademngr.py - irhrunsrv.py - runcheck.py .. csv-table:: シーケンス管理サーバーの修正点 :header-rows: 1 :name: py3_irhlibseq 修正前, 修正後 #!/usr/bin/env python(1行目), #!/usr/bin/env python3 Version 2.6.3以降はこの修正を行わずにPython3によるファサードの実行が可能になっている。