17.1. Требования #
В принципе, запустить PostgreSQL должно быть возможно на любой современной Unix-совместимой платформе. Платформы, прошедшие специальную проверку на совместимость к моменту выпуска версии, описаны далее в Разделе 17.6.
Для сборки PostgreSQL требуются следующие программные пакеты:
Требуется GNU make версии 3.81 или новее; другие программы make или ранние версии GNU make работать не будут. (Иногда GNU make устанавливается под именем
gmake
.) Чтобы проверить наличие и версию GNU make, введите:make --version
В качестве альтернативы PostgreSQL можно собирать, используя Meson. На данный момент это экспериментальный вариант. При использовании Meson не требуется GNU make, но применяются остальные требования, указанные ниже.
Требуется версия Meson не ниже 0.54.
Вам потребуется компилятор C, соответствующий ISO/ANSI C (как минимум, совместимый с C99). Рекомендуется использовать последние версии GCC, но известно, что PostgreSQL собирается самыми разными компиляторами и других производителей.
Для распаковки пакета исходного кода необходим tar, а также gzip или bzip2.
Для сборки потребуются Flex версии 2.5.35 или выше и Bison версии 2.3 или выше. Другие программы lex и yacc работать не будут.
В процессе сборки и для запуска некоторых пакетов тестов требуется Perl версии 5.14 или выше. (Это отдельное требование, не зависящее от требований для сборки PL/Perl; см. ниже.)
По умолчанию при сборке используется библиотека GNU Readline. Она позволяет запоминать все вводимые команды в psql (SQL-интерпретатор командной строки для PostgreSQL) и затем, пользуясь клавишами-стрелками, возвращаться к ним и редактировать их. Это очень удобно и мы настоятельно рекомендуем пользоваться этим. Если вы не желаете использовать эту возможность, вы должны добавить указание
--without-readline
дляconfigure
. В качестве альтернативы часто можно использовать библиотекуlibedit
с лицензией BSD, изначально разработанную для NetBSD. Библиотекаlibedit
совместима с GNU Readline и подключается, еслиlibreadline
не найдена, или когдаconfigure
передаётся указание--with-libedit-preferred
. Если вы используете систему на базе Linux с пакетами, учтите, что вам потребуются два пакета:readline
иreadline-devel
, если в вашем дистрибутиве они разделены.По умолчанию для сжатия данных используется библиотека zlib. Если вы не хотите её использовать, вы должны передать
configure
указание--without-zlib
. Это указание отключает поддержку сжатых архивов в pg_dump и pg_restore.По умолчанию используется библиотека ICU. Если вы не хотите её использовать, передайте
configure
указание--without-icu
, которое отключает поддержку правил сортировки ICU (см. Раздел 23.2).Для поддержки библиотеки ICU необходим пакет ICU4C. В настоящее время требуется ICU4C версии не ниже 4.2.
По умолчанию для определения нужных параметров компиляции будет использоваться pkg-config. Этот вариант работает для ICU4C версии 4.6 и новее. Для более старых версий или в отсутствие pkg-config соответствующие параметры для
configure
можно задать в переменныхICU_CFLAGS
иICU_LIBS
, как в этом примере:./configure ... ICU_CFLAGS='-I/some/where/include' ICU_LIBS='-L/some/where/lib -licui18n -licuuc -licudata'
(Даже если ICU4C находится в пути поиска, который использует компилятор, тем не менее нужно задать непустые значения, чтобы избежать обращения к pkg-config, например,
ICU_CFLAGS=' '
.)
Следующие пакеты не являются обязательными. Они не требуются в стандартной конфигурации, но они необходимы для определённых вариантов сборки, описанных ниже:
Чтобы собрать поддержку языка программирования PL/Perl, вам потребуется полная инсталляция Perl, включая библиотеку
libperl
и заголовочные файлы. Версия Perl должна быть не старее 5.14. Так как PL/Perl будет разделяемой библиотекой, библиотекаlibperl
тоже должна быть разделяемой для большинства платформ. В последних версиях Perl это вариант по умолчанию, но в ранних версиях это было не так, и в любом случае это выбирает тот, кто устанавливает Perl в вашей системе. Скриптconfigure
выдаст ошибку, если не сможет найти разделяемуюlibperl
, когда выбрана сборка PL/Perl. В этом случае, чтобы собрать PL/Perl, вам придётся пересобрать и переустановить Perl. В процессе конфигурирования Perl выберите сборку разделяемой библиотеки.Если вы планируете отвести PL/Perl не второстепенную роль, следует убедиться в том, что инсталляция Perl была собрана с флагом
usemultiplicity
(так ли это, может показать командаperl -V
).Чтобы собрать сервер с поддержкой языка программирования PL/Python, вам потребуется инсталляция Python с заголовочными файлами и модулем sysconfig. Версия Python должна быть не ниже 3.2.
Так как PL/Python будет разделяемой библиотекой, библиотека
libpython
тоже должна быть разделяемой для большинства платформ. По умолчанию при сборке инсталляции Python из пакета исходного кода это не так, но во многих дистрибутивах имеется нужная разделяемая библиотека. Скриптconfigure
выдаст ошибку, если не сможет найти разделяемуюlibpython
, когда выбрана сборка PL/Python. Это может означать, что вам нужно либо установить дополнительные пакеты, либо пересобрать (частично) вашу инсталляцию Python, чтобы получить эту библиотеку. При сборке Python из исходного кода выполните configure с флагом--enable-shared
.Чтобы собрать поддержку процедурного языка PL/Tcl, вам, конечно, потребуется инсталляция Tcl. Версия Tcl должна быть не старее 8.4.
Чтобы включить поддержку национальных языков (NLS, Native Language Support), то есть возможность выводить сообщения программы не только на английском языке, вам потребуется реализация API Gettext. В некоторых системах эта реализация встроена (например, в Linux, NetBSD, Solaris), а для других вы можете получить дополнительный пакет по адресу https://www.gnu.org/software/gettext/. Если вы используете реализацию Gettext в библиотеке GNU, вам понадобится ещё пакет GNU Gettext для некоторых утилит. Для любых других реализаций он не требуется.
Если вам нужна поддержка зашифрованных клиентских соединений, вам потребуется OpenSSL. OpenSSL также необходим для генерации случайных чисел на платформах, где отсутствует
/dev/urandom
(это не относится к Windows). Версия OpenSSL должна быть не ниже 1.0.2.Вам могут понадобиться пакеты MIT Kerberos (для GSSAPI), OpenLDAP и/или PAM, если нужна поддержка аутентификации, которую они обеспечивают.
Если вам нужна поддержка сжатия данных методом LZ4, вам потребуется собственно библиотека LZ4; см. default_toast_compression и wal_compression.
Если вам нужна поддержка сжатия данных методом Zstandard, вам потребуется собственно библиотека Zstandard версии не ниже 1.4.0; см. wal_compression.
Для сборки документации PostgreSQL предъявляется отдельный набор требований; см. Раздел J.2.
Если вам понадобится какой-либо пакет GNU, вы можете найти его на вашем локальном зеркале GNU (список зеркал: https://www.gnu.org/prep/ftp) или на сайте ftp://ftp.gnu.org/gnu/.