<!-- doc/src/sgml/installation-rpm.sgml -->

<sect1 id="install-rpm">
 <!--
 <title>Installation from RPM</title>
 -->
 <title>RPMからのインストール</title>
 <para>
  <!--
  This chapter describes the installation of <productname>Pgpool-II</productname> from RPM.
  If you are going to install from the source code, please check <xref linkend="install-source">.
  -->
  この章では、RPMから<productname>Pgpool-II</productname>をインストールする方法について説明します。
  ソースコードからインストールする場合は、<xref linkend="install-source">を参照してください。
 </para>
  <para>
   <!--
   <productname>Pgpool-II</productname> community provides RPM packages for RHEL10/9/8
   and the operating system which is compatible with RHEL.
   You can download package files from
   <ulink url="https://www.pgpool.net/yum/">official Pgpool-II repository</ulink>.
   -->
   <productname>Pgpool-II</productname>コミュニティはRHEL10/9/8および互換OS向けにRPMパッケージを提供しています。
   パッケージファイルは<ulink url="https://www.pgpool.net/yum/">Pgpool-IIの公式リポジトリ</ulink>から入手できます。
  </para>
  <para>
   <!--
   <productname>Pgpool-II</productname> official repository contains the following packages:
   -->
   以下のパッケージがあります。
  </para>
  <table id="rpm-packages">
   <title>Pgpool-II RPM Packages</title>
   <tgroup cols="2">
    <thead>
     <row>
      <entry>パッケージ名</entry>
      <entry>説明</entry>
     </row>
    </thead>
    <tbody>
     <row>
      <entry>pgpool-II-pgXX</entry>
      <entry>Pgpool-IIの動作上に必要なライブラリやバイナリが含まれる</entry>
     </row>
     <row>
      <entry>pgpool-II-pgXX-extensions</entry>
      <entry>オンラインリカバリ機能を使用する場合、このパッケージをすべてのPostgreSQLサーバにインストールする必要がある</entry>
     </row>
     <row>
      <entry>pgpool-II-pgXX-debuginfo</entry>
      <entry>デバッグ情報が含まれる</entry>
     </row>
     <row>
      <entry>pgpool-II-pgXX-debugsource</entry>
      <entry>RHEL10/9/8の場合のみ。デバッグ情報が含まれる</entry>
     </row>
     <row>
      <entry>pgpool-II-pgXX-extensions-debuginfo</entry>
      <entry>RHEL10/9/8の場合のみ。デバッグ情報が含まれる</entry>
     </row>
     <row>
      <entry>pgpool-II-pgXX-devel</entry>
      <entry>開発者向けのヘッダーファイルが含まれる</entry>
     </row>
    </tbody>
   </tgroup>
  </table>

  <para>
   <!--
   <productname>Pgpool-II</productname> needs <productname>PostgreSQL</productname>'s
   library and extensions directory. Since the directory paths are different in
   the particular <productname>PostgreSQL</productname> versions,
   <productname>Pgpool-II</productname> provides separate packages for each PostgreSQL version.
   "XX" in the above package is a two-digit number representing the version of PostgreSQL.
   Choose <productname>Pgpool-II</productname> RPM corresponding to your PostgreSQL version.
   (For example, if you are using PostgreSQL 18, you need to install <filename>pgpool-II-pg18</filename>)
   -->
   <productname>Pgpool-II</productname>は<productname>PostgreSQL</productname>のライブラリと拡張のディレクトリが必要です。
   そのディレクトリへのパスは<productname>PostgreSQL</productname>のバージョンごとに異なっているので、<productname>Pgpool-II</productname>はPostgreSQLバージョンごとにパッケージを提供しています。
   上記パッケージの「XX」はPostgreSQLのバージョンを表す2桁の数値です。<productname>PostgreSQL</productname>バージョンに対応する<productname>Pgpool-II</productname>のRPMを選んでください。(例えば、PostgreSQL 18を利用している場合は、<filename>pgpool-II-pg18</filename>を使用してください)
  </para>

 <sect2 id="before-installing">
  <!--
  <title>Before Installing</title>
  -->
  <title>事前準備</title>
  <para>
   <!--
   Since <productname>Pgpool-II</productname> related packages are also included in
   <productname>PostgreSQL</productname> YUM repository,
   if PostgreSQL repository package is already installed,
   add the "exclude" settings to <filename>/etc/yum.repos.d/pgdg-redhat-all.repo</filename>,
   so that <productname>Pgpool-II</productname> will not be installed from
   <productname>PostgreSQL</productname> YUM repository.
   If <productname>Pgpool-II</productname> and <productname>PostgreSQL</productname>
   are installed on separate servers, you can skip this section.
   -->
   <productname>Pgpool-II</productname>関連のパッケージは<productname>PostgreSQL</productname>コミュニティのリポジトリにもあるため、
   <productname>PostgreSQL</productname>のリポジトリパッケージがすでにインストールされている場合は、<productname>PostgreSQL</productname>コミュニティのリポジトリから<productname>Pgpool-II</productname>をインストールしないように<filename>/etc/yum.repos.d/pgdg-redhat-all.repo</filename>にexclude設定を追加します。<productname>Pgpool-II</productname>と<productname>PostgreSQL</productname>をそれぞれ別のサーバにインストールする場合は、以下の設定は不要です。
  </para>
  <programlisting>
vi /etc/yum.repos.d/pgdg-redhat-all.repo
  </programlisting>
  <para>
   <!--
   The following is a setting example of <filename>/etc/yum.repos.d/pgdg-redhat-all.repo</filename>.
   -->
   以下は、<filename>/etc/yum.repos.d/pgdg-redhat-all.repo</filename>の設定例です。
  </para>
  <programlisting>
[pgdg-common]
...
exclude=pgpool*


[pgdg18]
...
exclude=pgpool*

[pgdg17]
...
exclude=pgpool*

[pgdg16]
...
exclude=pgpool*

[pgdg15]
...
exclude=pgpool*

[pgdg14]
...
exclude=pgpool*

[pgdg13]
...
exclude=pgpool*
  </programlisting>
 </sect2>

 <sect2 id="installing-rpm">
  <!--
  <title>Installing RPM</title>
  -->
  <title>RPMのインストール</title>
  <para>
   <!--
   Here we install <productname>Pgpool-II</productname> using
   <ulink url="https://www.pgpool.net/yum">Pgpool-II official YUM repository</ulink>.
   -->
   ここでは<ulink url="https://www.pgpool.net/yum"><productname>Pgpool-II</productname>の公式YUMレポジトリ</ulink>を使用してPgpool-IIをインストールします。
  </para>
  <para>
   <!--
   The following commands assume that you are using Pgpool-II 4.7.x for PostgreSQL 18 on RHEL10.
   If you are using other versions, replace "pgXX" with your PostgreSQL version.
   -->
   以下の手順はRHEL10に<productname>PostgreSQL 18</productname>に対応した<productname>Pgpool-II 4.7.x</productname>をインストールすることが前提となります。
   他のバージョンの<productname>PostgreSQL</productname>を利用している場合は、<productname>PostgreSQL</productname>のバージョンに応じて「pgXX」を適宜置き換えてください。
  </para>
  <para>
   <!--
   First, install the repository corresponding to your <productname>Pgpool-II</productname>
   version and distribution.
   For REHL9/8, see <ulink url="https://www.pgpool.net/mediawiki/index.php/Yum_Repository">here</ulink>.
   -->
   まず、Pgpool-IIバージョンとディストリビューションに対応するレポジトリをインストールします。
   REHL9/8の場合は、<ulink url="https://www.pgpool.net/mediawiki/index.php/Yum_Repository">こちら</ulink>を参照してください。
  </para>
  <programlisting>
dnf install https://www.pgpool.net/yum/rpms/4.7/redhat/rhel-10-x86_64/pgpool-II-release-4.7-1.noarch.rpm
  </programlisting>
  <para>
   <!--
   To install <productname>Pgpool-II</productname> on Rocky Linux 10, you need to enable the EPEL repository and install libmemcached-awesome-devel to satisfy dependencies.
   Before installing <productname>Pgpool-II</productname>, run the following commands.
   -->
   Rocky Linux 10で<productname>PgPool-II</productname>をインストールするには、依存関係を満たすためにEPELリポジトリの有効化とlibmemcached-awesome-develが必要です。
   <productname>Pgpool-II</productname>インストール前に以下コマンドを実行してください。
  </para>
  <programlisting>
dnf install epel-release
dnf install libmemcached-awesome-devel
  </programlisting>
  <para>
   <!--
   Then, install <productname>Pgpool-II</productname>.
   -->
   次に、<productname>Pgpool-II</productname>をインストールします。
  </para>
  <programlisting>
dnf install pgpool-II-pg18
  </programlisting>
  <para>
   <!--
   To use online recovery feature, install <filename>pgpool-II-pg17-extensions</filename>
   on <emphasis>all PostgreSQL servers</emphasis>.
   Because <filename>pgpool-II-pgXX-extensions</filename> depends on
   <filename>pgpool-II-pgXX</filename> package,
   if <productname>Pgpool-II</productname> and <productname>PostgreSQL</productname>
   are installed on separate servers, <filename>pgpool-II-pgXX</filename> also need to be installed
   on PostgreSQL servers.
   -->
   <productname>Pgpool-II</productname>のオンラインリカバリ機能を利用するには、<emphasis>すべての<productname>PostgreSQL</productname>サーバに</emphasis>、<filename>pgpool-II-pgXX-extensions</filename>をインストールします。また、<filename>pgpool-II-pgXX-extensions</filename>は<filename>pgpool-II-pgXX</filename>パッケージに依存しているため、<productname>Pgpool-II</productname>と<productname>PostgreSQL</productname>をそれぞれ別のサーバにインストールしている場合は、<filename>pgpool-II-pgXX</filename>も<productname>PostgreSQL</productname>が稼働しているサーバにインストールする必要があります。
  </para>
  <note>
   <para>
    <!--
    <filename>pgpool-II-pgXX-extensions</filename> needs to be installed
    <emphasis>on the PostgreSQL servers</emphasis>.
    If <productname>Pgpool-II</productname> and <productname>PostgreSQL</productname>
    are installed on separate servers,
    it is not required to install it on the servers where <productname>Pgpool-II</productname> are running.
   -->
   <filename>pgpool-II-pgXX-extensions</filename>は<emphasis>PostgreSQLサーバ側にインストールするパッケージ</emphasis>となります。<productname>Pgpool-II</productname>と<productname>PostgreSQL</productname>をそれぞれ別のサーバにインストールしている場合は、<filename>pgpool-II-pgXX-extensions</filename>は<productname>Pgpool-II</productname>が稼働しているサーバにインストールする必要はありません。
   </para>
  </note>
  <programlisting>
dnf install pgpool-II-pg18-extensions pgpool-II-pg18
  </programlisting>
  <para>
    <!--
   Optionally you can install debuginfo and devel packages for developers if necessary.
   -->
   必要に応じて、開発者向けのオプションパッケージdebuginfoおよびdevelパッケージをインストールします。
  </para>
  <programlisting>
dnf install pgpool-II-pg18-debuginfo pgpool-II-pg18-devel
  </programlisting>
 </sect2>

 <sect2 id="configure-rpm">
  <!--
  <title>Configuration with RPM</title>
  -->
  <title>Pgpool-IIの設定</title>
  <para>
   <!--
   All the <productname>Pgpool-II</productname> configuration files
   live in <filename>/etc/pgpool-II</filename>. Please refer
   to <xref linkend="configuring-pgpool"> to see how to set up
   configuration files.
   -->
   すべての<productname>Pgpool-II</productname>設定ファイルは<filename>/etc/pgpool-II</filename>にあります。
   設定方法については<xref linkend="configuring-pgpool">を参照ください。
  </para>
 </sect2>

 <sect2 id="start-rpm">
  <!--
  <title>Starting/stopping Pgpool-II</title>
  -->
  <title>Pgpool-IIの起動と停止</title>
  <para>
   <!--
   On RHEL10/9/8, do this once, if set the automatic startup of <productname>Pgpool-II</productname>.
   -->
   RHEL10/9/8では、<productname>Pgpool-II</productname>の自動起動を設定する場合、以下を実行してください。
   <programlisting>
systemctl enable pgpool.service
   </programlisting>

   <!--
   After this, to start <productname>Pgpool-II</productname>,
   run the following command or restart the whole system.
   Please note that PostgreSQL servers must have been started before this. 
   -->
   この後<productname>Pgpool-II</productname>を起動するには、システム全体を再起動するか、以下を実行してください。
   <productname>PostgreSQL</productname>サーバは、これよりも前に起動済みでなければならないことに注意してください。
   <programlisting>
systemctl start pgpool.service 
   </programlisting>

   <!--
   To stop <productname>Pgpool-II</productname>, do this once.
   Please note that <productname>Pgpool-II</productname> must be stopped
   before stopping <productname>PostgreSQL</productname>.
   -->
   <productname>Pgpool-II</productname>を停止するには、以下を実行してください。<productname>PostgreSQL</productname>を停止する場合、<productname>Pgpool-II</productname>を先に停止する必要があります。
   <programlisting>
systemctl stop pgpool.service 
   </programlisting>

   <!--
   After this, you can stop <productname>PostgreSQL</productname>
   servers.
   -->
   この後、<productname>PostgreSQL</productname>サーバを停止しても構いません。
  </para>
 </sect2>
</sect1>
