Перейти к содержанию

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

Инструкции по компиляции и установке PgBouncer

Сборка

Для компиляции PgBouncer требуется несколько компонентов:

  • GNU Make 3.81+
  • Libevent 2.0+
  • pkg-config
  • OpenSSL 1.0.1+ для поддержки TLS
  • (необязательно) c-ares как альтернатива evdns из Libevent
  • (необязательно) библиотеки LDAP
  • (необязательно) библиотеки PAM

После установки зависимостей выполните:

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

Для сборки из Git или под Windows используйте отдельные инструкции ниже.


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

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

БэкендПараллельноEDNS0 (1)/etc/hostsПоиск SOA (2)Примечание
c-aresдадададаошибки IPv6+CNAME в <=1.10
evdns, libevent 2.xданетданетне проверяет обновления /etc/hosts
getaddrinfo_a, glibc 2.9+дада (3)данетнедоступен вне 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.


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

Для включения аутентификации LDAP у ./configure есть флаг --with-ldap (по умолчанию отключён). После компиляции с поддержкой LDAP становится доступен новый глобальный тип аутентификации ldap для проверки пользователей через LDAP.


Интеграция с systemd

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


Сборка из Git

При сборке PgBouncer из Git перед запуском configure необходимо создать файлы заголовков и конфигурации:

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

По умолчанию все файлы устанавливаются в /usr/local. Команде configure можно передать один или несколько параметров командной строки. Выполните ./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 (смена пользователя) не работают.

Чтобы запустить PgBouncer как службу Windows, задайте имя службы параметром service_name, затем выполните:

$ pgbouncer -regservice config.ini

Чтобы удалить службу:

$ pgbouncer -unregservice config.ini

Чтобы использовать журнал событий Windows, задайте в файле конфигурации syslog = 1. Перед этим необходимо зарегистрировать pgbevent.dll:

$ regsvr32 pgbevent.dll

Чтобы отменить регистрацию:

$ regsvr32 /u pgbevent.dll