16.2. Требования
В принципе, запустить PostgreSQL должно быть возможно на любой современной Unix-совместимой платформе. Платформы, прошедшие специальную проверку на совместимость к моменту выпуска версии, описаны далее в Разделе 16.6.
Для сборки PostgreSQL требуются следующие программные пакеты:
- Требуется GNU make версии 3.80 или новее; другие программы make или ранние версии GNU make работать не будут. (Иногда GNU make устанавливается под именем - gmake.) Чтобы проверить наличие и версию GNU make, введите:- make --version
- Вам потребуется компилятор C, соответствующий ISO/ANSI C (как минимум, совместимый с C99). Рекомендуется использовать последние версии GCC, но известно, что PostgreSQL собирается самыми разными компиляторами и других производителей. 
- Для распаковки пакета исходного кода необходим tar, а также gzip или bzip2. 
- По умолчанию при сборке используется библиотека 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.
Следующие пакеты не являются обязательными. Они не требуются в стандартной конфигурации, но они необходимы для определённых вариантов сборки, описанных ниже:
- Чтобы собрать поддержку языка программирования PL/Perl, вам потребуется полная инсталляция Perl, включая библиотеку - libperlи заголовочные файлы. Версия Perl должна быть не старее 5.8.3. Так как PL/Perl будет разделяемой библиотекой, библиотека- libperlтоже должна быть разделяемой для большинства платформ. В последних версиях Perl это вариант по умолчанию, но в ранних версиях это было не так, и в любом случае это выбирает тот, кто устанавливает Perl в вашей системе. Скрипт- configureвыдаст ошибку, если не сможет найти разделяемую- libperl, когда выбрана сборка PL/Perl. В этом случае, чтобы собрать PL/Perl, вам придётся пересобрать и переустановить Perl. В процессе конфигурирования Perl выберите сборку разделяемой библиотеки.- Если вы планируете отвести PL/Perl не второстепенную роль, следует убедиться в том, что инсталляция Perl была собрана с флагом - usemultiplicity(так ли это, может показать команда- perl -V).
- Чтобы собрать сервер с поддержкой языка программирования PL/Python, вам потребуется инсталляция Python с заголовочными файлами и модулем sysconfig. Версия Python должна быть не ниже 2.7. Python 3 поддерживается, начиная с версии 3.2; но используя Python 3, учтите написанное в Раздел 45.1. - Так как 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), а для других вы можете получить дополнительный пакет по адресу http://www.gnu.org/software/gettext/. Если вы используете реализацию Gettext в библиотеке GNU, вам понадобится ещё пакет GNU Gettext для некоторых утилит. Для любых других реализаций он не требуется. 
- Если вам нужна поддержка зашифрованных клиентских соединений, вам потребуется OpenSSL. OpenSSL также необходим для генерации случайных чисел на платформах, где отсутствует - /dev/urandom(это не относится к Windows). Версия OpenSSL должна быть не ниже 0.9.8.
- Вам могут понадобиться пакеты Kerberos, OpenLDAP и/или PAM, если нужна поддержка аутентификации, которую они обеспечивают. 
- Для сборки документации PostgreSQL предъявляется отдельный набор требований; см. Раздел J.2. 
Если вы хотите скомпилировать код из дерева Git, а не из специального пакета исходного кода, либо вы хотите работать с этим кодом, вам также понадобятся следующие пакеты:
- Flex и Bison потребуются для сборки из содержимого Git или если вы меняете собственно файлы определений анализа и разбора. Если они вам понадобятся, то версия Flex должна быть не меньше 2.5.31, а Bison — не меньше 1.875. Другие программы lex и yacc работать не будут. 
- Perl 5.8.3 или новее потребуется для сборки из содержимого Git, либо если вы меняете исходные файлы этапов сборки, построенных на скриптах Perl. Если вы выполняете сборку в Windows, вам потребуется Perl в любом случае. Perl также требуется для выполнения некоторых пакетов тестов. 
Если вам понадобится какой-либо пакет GNU, вы можете найти его на вашем локальном зеркале GNU (список зеркал: https://www.gnu.org/prep/ftp) или на сайте ftp://ftp.gnu.org/gnu/.
Также проверьте, достаточно ли места на диске. Вам потребуется около 100 Мб для исходного кода в процессе компиляции и около 20 Мб для каталога инсталляции. Пустой кластер баз данных занимает около 35 Мб; базы данных занимают примерно в пять раз больше места, чем те же данные в обычном текстовом файле. Если вы планируете запускать регрессионные тесты, вам может временно понадобиться ещё около 150 Мб. Проверить наличие свободного места можно с помощью команды df.