Возможно, наиболее простой способ установки PostgreSQL на Linux состоит в использовании предварительно откомпилированных двоичных пакетов, доступных в формате менеджера пакетов RedHat (Red- Hat Package Manager, RPM) во многих дистрибутивах. Ко времени написания этой статьи имелись пакеты RPM для следующих версий:
- RedHat 6.x, 7.x и выше
- SuSe 4, 7.x и выше
- TurboLinux 6.x и выше
- Caldera OpenLinux eServer 2.3 и выше
- Mandrake 7.x и выше
- LinuxPPC 2000 и выше
Для установки полнофункциональной СУБД нам понадобятся как минимум базовый и серверный пакеты. Полный список пакетов приведен в табл.1:
Таблица 1. Пакеты, необходимые для установки полнофункциональной СУБД
Пакет | Описание |
| Базовый пакет |
| Программы создания и запуска сервера |
| Заголовочные файлы и библиотеки для разработки |
| Драйверы JDBC для доступа к PostgreSQL из Java |
| Драйверы ODBC для доступа к PostgreSQL |
| Интерфейс Perl для PostgreSQL |
| Интерфейс Python для PostgreSQL |
| Интерфейс Tcl для PostgreSQL |
| Тестовые программы PostgreSQL |
| Оболочка и графический интерфейс Tk |
К имени файла добавляется номер версии соответствующего пакета. Рекомендуется устанавливать пакеты с одинаковыми номерами версий и ревизий. Номер ревизии - это последняя цифра в номере версии, то есть x в 7.1.x.
Для установки пакетов используется программа RPM Package Manager. Перед тем как начинать установку, убедитесь, что вы зарегистрированы как суперпользователь (superuser/root). Для установки RPM-пакетов подойдет любой графический менеджер пакетов, например GnoRPM или Kpackage. Можно также скопировать все файлы RPM в один каталог и как суперпользователь (superuser/root) выполнить команду:
$ rpm -i *.rpm
Эта команда распаковывает пакет и копирует находящиеся в нем файлы в предназначенные для них каталоги.
Можно выполнить установку PostgreSQL и из пакета, входящего в состав дистрибутива Linux, такого как RedHat или SuSe. Например, в SuSe 7.x для установки PostgreSQL можно запустить утилиту YaST (рис. 1) и выбрать пакеты из списка, приведенного в табл. 1.
Рис. 1. Утилита установки YaST
В качестве альтернативы можно загрузить или заказать на CD коммерческую версию (само программное обеспечение остается бесплатным) PostgreSQL, включающую инсталлятор и дополнительную документацию. Одна из таких коммерческих версий доступна на сайте компании Great Bridge.
Разработка PostgreSQL не прекращается, и, следовательно, время от времени будут выходить новые версии. Установка «вручную» из пакетов RPM имеет то преимущество, что позволяет обновлять установленную версию до текущей, просто повторяя процедуру. Для этого достаточно сообщить программе установки, что она должна выполнить обновление, а не первоначальную установку, заменив параметр -i
на -u
:
$ rpm -u *.rpm
Настоятельно рекомендуется сохранить резервную копию базы данных перед началом обновления. Подробные инструкции по выполнению обновления доступны на сайте PostgreSQL.
Состав дистрибутива PostgreSQL
К сожалению, во время написания этой статьи стандарт на установку PostgreSQL еще не был выработан. Такой стандарт в большинстве случаев стал бы благом, хотя иногда и мог бы создавать некоторые трудности.
В состав PostgreSQL входят ряд приложений, утилит и каталогов с данными. Его главное приложение (postmaster
или postgre
s) содержит серверный код, отвечающий за обслуживание запросов на доступ к данным от клиентов. Утилиты, такие как pg_ctl
, применяются для управления главным серверным процессом, который должен выполняться постоянно, обеспечивая работу сервера. В каталоге data находятся все файлы, необходимые базе данных. В них хранятся не только таблицы и записи, но и системные параметры.
По умолчанию устанавливаются все компоненты PostgreSQL, перечисленные в табл. 2, каждый в соответствующем подкаталоге. В качестве общего каталога (и каталога по умолчанию при установке из исходного кода) обычно используется /usr/local/pgsql
.
Главный каталог PostgreSQL включает в себя следующие подкаталоги:
Таблица 2. Компоненты PostgreSQL
Каталог | Описание |
| Приложения и утилиты, например |
| Файлы базы данных |
| Документация в формате HTML |
| Заголовочные файлы для разработки приложений PostgreSQL |
| Библиотеки для разработки приложений PostgreSQL |
| Руководство по PostgreSQL |
| Примеры файлов конфигурации |
Недостаток работы с единственным каталогом в том, что неизменные файлы программ и изменяющиеся данные хранятся совместно, а это не всегда удобно.
Файлы, используемые PostgreSQL, можно разделить на несколько категорий. Файлы программ не могут и не должны изменяться во время работы. Файлы журналов, создаваемые сервером, содержат информацию о доступе к базе данных и могут быть очень полезны в решении проблем. Они растут по мере того, как в них добавляются новые записи. Файлы данных - это сердце системы, в них хранится вся информация всех баз данных.
Из соображений эффективности и удобства администрирования файлы разных типов можно поместить в разные каталоги. Гибкость PostgreSQL позволяет хранить файлы программ, системных журналов и данных в различных местах, а дистрибутивы Linux позволяют извлечь из этой гибкости максимум выгоды.
Например, в SuSE 7.0 программы PostgreSQL размещаются вместе с остальными приложениями в /usr/bin
, для журнальных файлов отводится /var/log/postgresql
, а данные хранятся в /var/lib/pgsql/data
. Благодаря этому можно легко разделить процедуры резервного копирования наиболее важных файлов данных и менее критичных журнальных файлов и т. п.
В других дистрибутивах могут применяться собственные схемы размещения файлов. Для просмотра списка файлов, установленных определенным пакетом, можно использовать утилиту RPM, запустив ее с такими параметрами:
$ rpm -q -l postgres
/usr/bin/createdb
....
/usr/share/man/manl/vacuum.1.gz
$
Чтобы просмотреть все установленные файлы, придется запустить rpm для каждого из пакетов, входящих в PostgreSQL:
$ rpm -q -l pg_serv
/sbin/conf.d/SuSEconfig.Postgres
.....
/var/lib/pgsql/data/pg_options
$
В разных дистрибутивах названия пакетов могут слегка отличаться, в данном случае серверному пакету дано имя pg_serv
. Вместо rpm можно использовать графический менеджер пакетов, например kpackage
(рис. 2), поставляемый в комплекте с оболочкой KDE:
Рис. 2. Графический менеджер пакетов kpackage
Недостаток установки из дистрибутива Linux в том то, что не всегда очевидно, где какие файлы находятся. Так что тому, кто захочет обновить версию, может понадобиться настойчивость для того, чтобы разобраться в инсталляции.
Иногда бывает удобнее установить PostgreSQL из исходного кода.