Installing TPA from source
==========================

このドキュメントでは、ソースコードリポジトリのコピーからTPAを使用する方法について説明します。

..  Note::
   EDB顧客がソフトウェアのEDBサポートを受けるには、 :ref:`TPA installation <TPA installation>` 必要があります。

ソースからTPAを実行するには、パッケージが処理するすべての依存関係たとえばPython
3.12+をインストールするか、ソースと :ref:`Running TPA in a Docker container <Running TPA in a Docker container>` をダウンロードする必要があります。
(どちらの方法もLinuxおよびmacOSでは正常に動作します。)

前提条件
--------

ソースからTPAをインストールする前に、システムで\ ``git``
が利用できることを確認してください。

``pip`` および\ ``venv`` モジュールを含む **Python 3.12**
インタープリターがTPAコントローラホストに存在する必要があります。

- **RHEL 9** の場合、CodeReady Linux
  BuilderCRBリポジトリを有効にして、必要なビルド依存関係をインストールする必要がある場合があります。

- **SLES** の場合、Python
  3.12モジュールが有効になっていることを確認します。

- オペレーティングシステムリポジトリがPython
  3.12を提供していない場合は、
  `pyenv <https://github.com/pyenv/pyenv>`_ を使用してインストールすることをお勧めします。

..  Note::
   `openvpn` や`patch` などの古い依存関係は、標準のTPAインストールでは必要なくなり、これらの手順から削除されました。

クローンとセットアップ
----------------------

前提条件がインストールされると、リポジトリのクローンを作成できます。

.. code:: shell

   git clone https://github.com/enterprisedb/tpa.git ~/tpa

これにより、ホームディレクトリに\ ``tpa`` ディレクトリが作成されます。

sshを使用してチェックアウトする場合は、次を使用します。

.. code:: shell

   git clone ssh://git@github.com/EnterpriseDB/tpa.git ~/tpa

新しく作成したクローン内にあるbinディレクトリを、次のパスに追加します。

.. code:: shell

   export PATH=$PATH:$HOME/tpa/bin

この行を\ ``.bashrc``
ファイルまたは使用するシェルの他のプロファイルファイルに追加します。

次を実行して、作業用のtpa環境を作成できるようになりました。

.. code:: shell

   tpaexec setup

これにより、TPAが将来的に使用するPython仮想環境が作成されます。必要なパッケージはすべてこの環境にインストールされます。これが正しく構成されたことをテストするには、次を実行します。

.. code:: shell

   tpaexec selftest

これで、tpaexecがインストールされました。

依存関係
--------

Python 3.12+
^^^^^^^^^^^^

TPAには、ほとんどの最新のディストリビューションで利用可能なPython
3.12以降が必要です。お持ちでない場合は、
`pyenv <https://github.com/pyenv/pyenv>`_ を使用して、システムパッケージに影響を与えることなく、希望のバージョンのPythonをインストールできます。

.. code:: shell


   #  First, install pyenv and activate it in ~/.bashrc

   #  See https://github.com/pyenv/pyenv#installation

   #  (e.g., `brew install pyenv` on MacOS X)

   pyenv install 3.12.0

.. code:: output

   Downloading Python-3.12.0.tar.xz...
   - > https://www.python.org/ftp/python/3.12.0/Python-3.12.0.tar.xz
   Installing Python-3.12.0...
   Installed Python-3.12.0 to /home/ams/.pyenv/versions/3.12.0

.. code:: shell

   pyenv local 3.12.0
   pyenv version

.. code:: output

   3. 12.0 (set by /home/ams/pyenv/.python-version)

.. code:: shell

   pyenv which python3

.. code:: output

   /home/ams/.pyenv/versions/3.12.0/bin/python3

.. code:: shell

   python3 --version

.. code:: output

   3. 12.0

pyenvをまだ使用していない場合は、 `pyenv documentation <https://github.com/pyenv/pyenv#installation>`_ の説明に従って、
``pyenv`` を.bashrcのPATHに追加し、\ ``eval "$(pyenv init -)"``
を呼び出してください。

仮想環境オプション
^^^^^^^^^^^^^^^^^^

デフォルトでは、\ ``tpaexec setup`` はビルトインPython 3 ``-m venv``
を使用して\ ``$TPA_DIR/tpa-venv`` の下にvenvを作成し、 ``tpaexec``
が呼び出されるたびに自動的にアクティブにします。

``tpaexec setup --venv /other/location``
を実行して、新しいvenvの別の場所を指定できます。

デフォルトのvenvの場所を使用することを強くお勧めします。別の場所を使用する場合は、環境変数TPA_VENVをその場所に設定する必要があります。たとえば、次の行を.bashrcまたは他のシェル起動スクリプトに追加します。

.. code:: shell

   export TPA_VENV="/other/location"
