Перейти к основному содержимому

Компиляция и установка PgBouncer

Сборка

Компиляция PgBouncer зависит от нескольких факторов:

  • GNU Make 3.81+;

  • Libevent 2.0+;

  • pkg-config;

  • OpenSSL 1.0.1+ для поддержки TLS;

  • (необязательно) c-ares в качестве альтернативы evdns от Libevent;

  • (необязательно) Библиотеки PAM.

  • Когда зависимости будут установлены, просто запустите:

$ ./configure --prefix=/usr/local
$ make
$ make install

Если сборка будет выполняться из Git, пожалуйста, ознакомьтесь с отдельными инструкциями по сборке ниже.

Поддержка поиска DNS

PgBouncer выполняет поиск имени хоста во время подключения, а не один раз при загрузке конфигурации. Для этого требуется асинхронная реализация DNS. В следующей таблице показаны поддерживаемые серверы и порядок их проверки:

backendparallelEDNS0 (1)/etc/hostsSOA lookup (2)нетte
c-aresДаДаДаДаОшибка IPv6 + CNAME в <=1.10
evdns, libevent 2.xДаНетДаНетНе проверяет обновления /etc/hosts
getaddrinfo_a, glibc 2.9+ДаДа (3)ДаНетN/A для не glibc
getaddrinfo, libcНетДа (3)ДаНетТребуется pthreads
  1. Для EDNS0 требуется более 8 адресов для одного имени хоста.
  2. Поиск SOA необходим для повторной проверки имен хостов при изменении серийного номера зоны.
  3. Чтобы включить EDNS0, добавьте options edns0 в /etc/resolv.conf.

c-ares — это наиболее полнофункциональная реализация, которую рекомендуется использовать в большинстве случаев и для двоичной упаковки (если доступна достаточно новая версия). Встроенный в Libevent evdns также подходит для многих случаев использования с перечисленными ограничениями. Другие серверные части на данный момент являются в основном устаревшими и больше не тестируются.

По умолчанию используется c-ares, если он доступен. Его использование можно принудительно включить с помощью configure --with-cares или отключить с помощью --without-cares. Если c-ares не используется (не найден или отключен), то используется Libevent. Укажите --disable-evdns, чтобы отключить использование evdns в Libevent и вернуться к реализации на основе libc.

Аутентификация PAM

Чтобы включить аутентификацию PAM, ./configure имеет флаг --with-pam (значение по умолчанию — нет). При компиляции с поддержкой PAM становится доступен новый глобальный тип аутентификации pam для проверки пользователей с помощью PAM.

Интеграция systemd

Чтобы включить интеграцию с systemd, используйте параметр configure --with-systemd. Это позволяет использовать Type=notify (или Type=notify-reload при использовании systemd 253 или более поздней версии), а также активировать сокет. Примеры см. в etc/pgbouncer.service и etc/pgbouncer.socket.

Сборка из Git

Для сборки PgBouncer из Git необходимо получить подмодули libusual и uthash и сгенерировать файлы заголовков и конфигурации, прежде чем запускать configure:

$ git clone https://github.com/pgbouncer/pgbouncer.git
$ cd pgbouncer
$ git submodule init
$ git submodule update
$ ./autogen.sh
$ ./configure
$ make
$ make install

По умолчанию все файлы будут установлены в /usr/local папке. Можно предоставить один или несколько параметров командной строки для configure. Запустите ./configure --help, чтобы просмотреть доступные параметры и переменные среды, которые настраивают конфигурацию.

Требуются дополнительные пакеты: autoconf, automake, libtool, pandoc.

Тестирование

Информацию о том, как запускать тесты, см. в файле README в каталоге тестов.