В то время как RPM пакеты предназначены для установки PostgreSQL в системах семейства Linux, исходный код позволяет собрать и установить PostgreSQL практически на любой UNIX-совместимой системе.
Исходный код последней версии, а часто и следующей бета-версии PostgreSQL можно получить на сайте PostgreSQL. Если только вы не планируете находиться на переднем крае разработок, вполне можете ограничиться последней стабильной версией. На CD также записаны несколько предыдущих версий. Информацию о последних версиях и их доступности на CD можно получить на сайте PostgreSQL.
Исходный код распространяется в двух формах. Полный комплект исходного кода находится в файле с именем вроде
postgresql-10.5.tar.gz
Во время написания этого блога этот файл имел размер около 25,6 Мбайт. Кроме того, для облегчения загрузки исходный код упаковывается в несколько файлов меньшего размера:
postgresql-10.5.base.tar.gz
postgresql-10.5.docs.tar.gz
postgresql-10.5.opt.tar.gz
postgresql-10.5.test.tar.gz
Разумеется, эти имена тоже меняются в соответствии с номером текущей версии.
Компиляция PostgreSQL выполняется очень просто. Если вы уже компилировали продукты с открытым исходным кодом, то проблем не должно возникнуть. Впрочем, их не должно возникнуть, даже если это ваша первая попытка компиляции такого продукта. Для выполнения компиляции понадобится система Linux или UNIX с полностью установленной средой разработки, которая включает в себя компилятор C и GNU-версию утилиты make, необходимую для сборки системы.
Дистрибутивы Linux обычно поставляются со средой разработки, включающей GNU-инструментарий от фонда свободно распространяемых программ FSF. Сюда входит превосходный компилятор GNU C (gcc), являющийся стандартным в Linux. Программы GNU доступны и для большинства других UNIX-платформ, поэтому мы рекомендуем использовать их для компиляции PostgreSQL. Последнюю версию инструментария можно получить по адресу http://www.gnu.org. Сразу после установки среды разработки можно переходить к компиляции PostgreSQL.
Скопируйте архивный файл с исходным кодом в какой-либо подходящий для компиляции каталог. Этот каталог - еще не то место, куда будет установлен PostgreSQL, он будет другим. Подходящим выбором будет подкаталог вашего домашнего подкаталога, поскольку для компиляции не требуются права суперпользователя, они понадобятся только при установке. Распакуйте архив:
$ tar zxvf postgres-10.5.tar.gz
Авторы предпочитают хранить исходные тексты в специальном каталоге для продуктов с открытым кодом /usr/src
, но подойдет любой каталог, где достаточно свободного места для выполнения компиляции (понадобится около 80 Мбайт).
В процессе разархивирования будет создан новый каталог с именем, соответствующим версии PostgreSQL. Перейдите в этот каталог:
$ cd postgres-10.5
Там вы обнаружите файл INSTALL, содержащий подробные инструкции по сборке - на тот случай, если изложенный ниже метод автоматической сборки не даст результата.
В процессе сборки используется скрипт конфигурации configure, позволяющий настроить параметры сборки в соответствии с имеющимся окружением. При запуске без параметров configure руководствуется значениями по умолчанию:
$ ./configure
creating cache ./config.cache
checking host system type... i686-pc-linux-gnu
checking which template to use... linux
$
Скрипт configure устанавливает значения переменных, управляющих процессом сборки PostgreSQL, с учетом типа платформы, особенностей компилятора и т. д. Нюансы использования скрипта configure с различными значениями переменных выходят за рамки моего блога. Описание всех параметров можно найти в руководстве man.
Место установки выбирается скриптом configure автоматически. По умолчанию основным рабочим каталогом PostgreSQL назначается /usr/local/pgsql
, а приложения и данные располагаются в его подкаталогах.
Запуск configure c параметрами позволяет изменить расположение каталогов. Чаще всего подставляются параметры, описанные в табл. 1:
Таблица 1. Параметры configure
Параметр | Описание |
| Устанавливать в каталог PREFIX. По умолчанию - /usr/local/ psql |
| Устанавливать программы в DIR. По умолчанию - PREFIX/bin |
| Компилировать с поддержкой приложений Tcl, таких как pgAccess |
| Компилировать с поддержкой приложений Perl |
| Компилировать модуль поддержки Python |
С помощью ключа --help
можно получить полный список настроечных параметров:
$ ./configure --help
Usage: configure [options] [host]
Options: [defaults in brackets after descriptions]
Configuration:
--cache-file=FILE cache test results in FILE
$
Нет необходимости определять место расположения базы данных и журнальных файлов на данном этапе. Эти параметры могут быть заданы при запуске серверного процесса после того, как он уже установлен.
Закончив конфигурирование, можно приступать к сборке с помощью программы make.
В процессе сборки PostgreSQL участвует ряд сложных make-файлов, управляющих компиляцией. Поэтому рекомендуется использовать GNU-make. В Linux эта версия установлена по умолчанию, но на других UNIX-платформах может потребоваться отдельная установка GNU-make. Часто ей дают имя gmake, для того чтобы отличать от программы gmake, поставляемой вместе с операционной системой. В дальнейшем обсуждении под make понимается GNU-make.
Компилируем программы:
$ make
All of PostgreSQL successfully made. Ready to install.
Если все настроено правильно, будут выведены множество сообщений о компиляции и завершающее сообщение об успешном окончании сборки.
После завершения программы make необходимо скопировать программы в их рабочий каталог. Для этого мы также используем make, но прежде надо получить права суперпользователя:
$ su
#make install
Thank you for choosing PostgreSQL, the most advanced open source database engine.
#exit
$
Вот, собственно, и все. Программы, составляющие сервер базы данных PostgreSQL, установлены.
Такой же результат мы получили бы при установке PostgreSQL из пакетов RPM. Настало время выяснить, как же запускается PostgreSQL.