Компиляция и установка PgBouncer
Эта страница переведена при помощи нейросети GigaChat.
Сборка
Компиляция PgBouncer зависит от нескольких факторов:
-
GNU Make 3.81+;
-
Libevent 2.0+;
-
OpenSSL 1.0.1+ для поддержки TLS;
-
(необязательно) c-ares в качестве альтернативы evdns от Libevent;
-
(необязательно) Библиотеки PAM.
-
Когда зависимости будут установлены, просто запустите:
$ ./configure --prefix=/usr/local
$ make
$ make install
Если сборка будет выполняться из Git, пожалуйста, ознакомьтесь с отдельными инструкциями по сборке ниже.
Поддержка поиска DNS
PgBouncer выполняет поиск имени хоста во время подключения, а не один раз при загрузке конфигурации. Для этого требуется асинхронная реализация DNS. В следующей таблице показаны поддерживаемые серверы и порядок их проверки:
| backend | parallel | EDNS0 (1) | /etc/hosts | SOA 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 |
- Для EDNS0 требуется более 8 адресов для одного имени хоста.
- Поиск SOA необходим для повторной проверки имен хостов при изменении серийного номера зоны.
- Чтобы включить 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 в каталоге тестов.