15.2. Требования

В принципе, запустить PostgreSQL должно быть возможно на любой современной Unix-совместимой платформе. Платформы, прошедшие специальную проверку на совместимость к моменту выпуска версии, перечислены далее в Разделе 15.6. В подкаталоге doc дистрибутива PostgreSQL вы можете найти несколько документов FAQ по разным платформам, к которым следует обратиться в случае затруднений.

Для сборки PostgreSQL требуются следующие программные пакеты:

  • Требуется GNU make версии 3.80 или новее; другие программы make или ранние версии GNU make работать не будут. (Иногда GNU make устанавливается под именем gmake.) Чтобы проверить наличие и версию GNU make, введите:

    make --version

  • Вам потребуется компилятор C, соответствующий ISO/ANSI (как минимум, совместимый с C89). Рекомендуется использовать последние версии 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 и заголовочные файлы. Так как PL/Perl будет разделяемой библиотекой, библиотека libperl так же должна быть разделяемой для большинства платформ. В последних версиях Perl это вариант по умолчанию, но в ранних версиях это было не так, и в любом случае это выбирает тот, кто устанавливает Perl в вашей системе. Если вы планируете отвести PL/Perl не второстепенную роль, следует убедиться в том, что инсталляция Perl была собрана с флагом usemultiplicity (так ли это, может показать команда perl -V).

    Если вам не хватает какой-то необходимой разделяемой библиотеки, при сборке PostgreSQL появится примерно такое сообщение об этом:

    *** Cannot build PL/Perl because libperl is not a shared library.
    *** You might have to rebuild your Perl installation.  Refer to
    *** the documentation for details.

    (Если вы проигнорируете это замечание, вы просто увидите, что объект библиотеки PL/Perl, plperl.so или подобный, не будет установлен.) Если вы получили это сообщение, вы должны пересобрать и установить Perl вручную, чтобы успешно собрать PL/Perl. При этом в процессе конфигурирования Perl выберите разделяемую библиотеку.

  • Чтобы собрать сервер с поддержкой языка программирования PL/Python, вам потребуется инсталляция Python с заголовочными файлами и модулем distutils. Версия Python должна быть не меньше 2.3. (Чтобы работать с аргументами функций типа numeric, в инсталляции 2.3.x должен быть включён отдельно устанавливаемый модуль cdecimal; заметьте, что регрессионные тесты PL/Python не будут пройдены, если он отсутствует.) Python 3 поддерживается, начиная с версии 3.1, но используя Python 3, следует учитывать написанное в Разделе 43.1.

    Так как PL/Python будет разделяемой библиотекой, библиотека libpython так же должна быть разделяемой для большинства платформ. По умолчанию в стандартной инсталляции Python это не так. Если вы собираете и устанавливаете PostgreSQL и вы получили файл plpython.so (возможно, с другим расширением), всё в порядке. В противном случае вы заметите при сборке пролетающее уведомление такого содержания:

    *** Cannot build PL/Python because libpython is not a shared library.
    *** You might have to rebuild your Python installation.  Refer to
    *** the documentation for details.

    Это значит, что вам придётся пересобрать (возможно, частично) вашу инсталляцию Python, чтобы получить эту разделяемую библиотеку.

    Если у вас возникли сложности, запустите для Python 2.3 или новее configure с флагом --enable-shared. В некоторых операционных системах компилировать разделяемую библиотеку не требуется, но вам нужно убедить в этом систему сборки PostgreSQL. За подробностями обратитесь к Makefile в каталоге src/pl/plpython.

  • Чтобы собрать поддержку процедурного языка 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 для некоторых утилит. Для любых других реализаций он не требуется.

  • Вам могут понадобиться пакеты Kerberos, OpenSSL, OpenLDAP и/или PAM, если вам нужна поддержка аутентификации или шифрования, которую они обеспечивают.

  • Для сборки документации PostgreSQL предъявляется отдельный набор требований; см. Раздел I.2.

Если вы хотите скомпилировать код из дерева Git, а не из специального пакета исходного кода, либо вы хотите работать с этим кодом, вам также понадобятся следующие пакеты:

  • GNU Flex и Bison потребуются для сборки из содержимого Git или если вы меняете собственно файлы определений анализа и разбора. Если они вам понадобятся, то версия Flex должна быть не меньше 2.5.31, а Bison — не меньше 1.875. Другие программы lex и yacc работать не будут.

  • Perl 5.8 или новее потребуется для сборки из содержимого Git, либо если вы меняете исходные файлы этапов сборки, построенных на скриптах Perl. Если вы выполняете сборку в Windows, вам потребуется Perl в любом случае. Perl также требуется для выполнения некоторых комплектов тестов.

Если вам понадобится какой-либо пакет GNU, вы можете найти его на вашем локальном зеркале GNU (список зеркал: http://www.gnu.org/order/ftp.html) или на сайте ftp://ftp.gnu.org/gnu/.

Также проверьте, достаточно ли места на диске. Вам потребуется около 100 Мб для исходного кода в процессе компиляции и около 20 Мб для каталога инсталляции. Пустой кластер баз данных занимает около 35 Мб; базы данных занимают примерно в пять раз больше места, чем те же данные в обычном текстовом файле. Если вы планируете запускать регрессионные тесты, вам может временно понадобиться ещё около 150 Мб. Проверить наличие свободного места можно с помощью команды df.