PgBouncer のコンパイルとインストール
Building
PgBouncer はコンパイルするためのいくつかの要素に依存しています:
- GNU Make 3.81+
- Libevent 2.0+
- pkg-config
- OpenSSL 1.0.1+(TLS 機能用)
- (オプション) c-ares は Libevent の evdns の代替として利用可能
- (オプション) LDAP ライブラリ
- (オプション) PAM ライブラリ
依存関係をインストールしたら、次のように実行します:
$ ./configure --prefix=/usr/local
$ make
$ make install
Git からビルドする場合、または Windows 用にビルドする場合は、以下の別途のビルド手順を参照してください。
DNS ルックアップサポート
PgBouncer は接続時にホスト名の照合を行いますが、設定の読み込み時に一度だけ行うのではなく、接続ごとに実行します。これには非同期 DNS 実装が必要です。以下の表は、サポートされるバックエンドとその照合順序を示しています。
| バックエンド | 平行処理 | EDNS0 (1) | /etc/hosts | SOA ルックアップ (2) | 備考 |
|---|---|---|---|---|---|
| c-ares | はい | はい | はい | はい | 1.10 以前では IPv6+CNAME にバグあり |
| evdns, libevent 2.x | はい | いいえ | はい | いいえ | /etc/hosts の更新を確認しない |
| getaddrinfo_a, glibc 2.9+ | はい | はい (3) | はい | いいえ | non-glibc では N/A |
| getaddrinfo, libc | いいえ | はい (3) | はい | いいえ | pthreads を必要とする |
- EDNS0 は、1 つのホスト名の背後に 8 件以上のアドレスを設定する場合に必要です。
- SOA の照会は、ゾーンシリアルの変更時にホスト名を再確認するために必要です。
- EDNS0 を有効にするには、
options edns0を/etc/resolv.confに追加してください。
c-ares は最も機能が充実しており、ほとんどの用途およびバイナリパッケージング(十分に新しいバージョンが利用可能な場合)に推奨されます。Libevent の組み込み evdns も、記載された制限を除き多くの用途に適しています。他のバックエンドは現在、ほとんどがレガシーな選択肢であり、テストもほとんど行われていません。
デフォルトでは、c-ares が利用可能であればそれを使用します。configure --with-cares を指定することで c-ares の使用を強制し、--without-cares を指定することで無効化できます。c-ares を使用しない(見つからないか無効化されている)場合、Libevent が使用されます。Libevent の evdns の使用を無効にするには --disable-evdns を指定し、libc に基づく実装にフォールバックします。
PAM 認証
PAM 認証を有効にするには、./configure にフラグ --with-pam を設定します(デフォルト値は no)。PAM サポートでコンパイルされた場合、ユーザーを PAM で検証するための新しいグローバル認証タイプ pam が利用可能になります。
LDAP 認証
LDAP 認証を有効にするには、./configure にフラグ --with-ldap を設定します(デフォルト値は no)。LDAP サポート付きでコンパイルされた場合、ユーザーを LDAP を使って検証するための新しいグローバル認証タイプ ldap が利用可能になります。
systemd 統合
systemd 統合を有効にするには、configure オプションを使用してください。これにより、--with-systemd を使用できるほか、systemd 253 以降では Type=notify(または Type=notify-reload)も利用可能です。ソケット活性化も可能です。例については etc/pgbouncer.service および etc/pgbouncer.socket を参照してください。
Git からビルドする
GitからPgBouncerをビルドするには、configure を実行する前にヘッダーおよび設定ファイルを生成する必要があります。
$ git clone https://github.com/pgbouncer/pgbouncer.git
$ cd pgbouncer
$ ./autogen.sh
$ ./configure
$ make
$ make install
デフォルトでは、すべてのファイルが /usr/local にインストールされます。
configure に1つ以上のコマンドラインオプションを指定できます。
利用可能なオプションおよび設定をカスタマイズする環境変数を確認するには、./configure --help を実行してください。
追加で必要なパッケージ: autoconf, automake, libtool, pandoc
テスト
テストディレクトリ内の README.md ファイル
を参照して、テストの実行方法を確認してください。
Windows 上でのビルド
Windows でのみサポートされているビルド環境は MinGW です。Cygwin および Visual $ANYTHING はサポートされていません。
MinGW でビルドするには、通常通り以下を実行します:
$ ./configure
$ make
Unix からクロスコンパイルする場合:
$ ./configure --host=i586-mingw32msvc
LDAP ビルドオプションは現在、Windows ではサポートされていません。
Windows 上での実行
コマンドラインから実行する場合は通常通りですが、-d(デーモン化)、-R(再起動)、-u(ユーザー切り替え)のオプションは機能しません。
Windows サービスとして PgBouncer を実行するには、service_name パラメータを設定してサービス名を指定する必要があります。その後、以下を実行します。
$ pgbouncer -regservice config.ini
サービスをアンインストールするには:
$ pgbouncer -unregservice config.ini
Windows イベントログを使用するには、設定ファイルで syslog = 1 を設定してください。
ただし、その前に pgbevent.dll の登録が必要です。
$ regsvr32 pgbevent.dll
登録を解除するには、次のようにします:
$ regsvr32 /u pgbevent.dll