Подготовка к установке
Установка PostgreSQL не сложна. Тем не менее успешная компиляция PostgreSQL возможна лишь при соблюдении ряда требований к программной среде. Все требования (кроме наличия исходных текстов PostgreSQL) относятся к инструментарию GNU. Если вы работаете в системе Linux, вполне возможно, что этот инструментарий уже установлен. В системах, производных от BSD (таких, как FreeBSD или MacOS X), необходимые средства загружаются из Интернета.
Если окажется, что какие-либо из перечисленных компонентов отсутствуют в системе, сначала поищите пакеты на web-сайте поставщика системы. Кроме того, инструментарий GNU можно загрузить с сайта http://www.gnu.org. Объем свободного места в файловой системе, используемой для установки, должен быть достаточным для распаковки и компиляции исходных текстов (требования изложены в подразделе «Дисковое пространство» этого раздела).
Обязательные пакеты
Скорее всего, ваша операционная система уже содержит все (или почти все) обязательные программные пакеты. Ниже приведен полный список.
GNU make
В GNU-системах (таких, как Linux) используется имя make, а в других системах утилита обычно известна под именем gmake. Для удобства в книге будет использоваться имя gmake.
При компиляции PostgreSQL рекомендуется использовать gmake версии 3.76.1 и выше. Номер версии gmake проверяется командой, приведенной в листинге 2.1.
Листинг 2.1. Проверка версии GNU make
$ gmake --version
GNU Make version 3.79.1, by Richard Stallman and Roland McGrath.
Built for i386-redhat-linux-gnu
Copyright (C) 1988. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99, 2000
Free Software Foundation. Inc.
This is free software; see the source for copying conditions. There is NO warranty: not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Report bugs to <bug-make.gnu.org>
Компилятор С стандарта ISO/ANSI
Существует множество компиляторов С, соответствующих стандарту ISO/ANSI. Для компиляции PostgreSQL рекомендуется использовать компилятор GCC (GNU С Compiler), хотя PostgreSQL также может успешно компилироваться продуктами других разработчиков. На момент написания книги наибольшее распространение получили компиляторы версий 2.95 и 2.96 (Red Hat Linux 7.x и Mandrake Linux 8.x). Если компилятор GCC не установлен в вашей системе, загрузите его с web-сайта http://gcc.gnu.org.
Номер версии GCC проверяется командой, приведенной в листинге 2.2.
Листинг 2.2. Проверка версии GCC
$ gcc --version
2.95.3
Утилиты GNU zip и tar
Утилита GNU zip (также называемая gzip) предназначена для сжатия и восстановления файлов. Сжатым файлам, созданным утилитой gzip, присваивается расширение .gz. Проверка наличия и версии программы gzip производится командой gzip --version.
В дополнение к gzip вам также понадобится утилита tar, предназначенная для слияния файлов и каталогов в один архив и последующей распаковки архивов в файловой системе. Архивированный файл, созданный утилитой tar, обычно снабжается расширением .tar. Файлы, сжатые утилитой gzip и архивированные утилитой tar, обычно имеют составное расширение .tar.gz. Именно так выглядят архивные
файлы из комплекта поставки PostgreSQL. Номера версий gzip и tar проверяются командой, приведенной в листинге 2.3.
Листинг 2.3. Проверка версии gzip и tar
$ gzip --version
gzip 1.3
(1999-12-21)
Copyright 1999 Free Software Foundation
Copyright 1992-1993 Jean-Loup Gailly
This program cones with ABSOLUTELY NO WARRANTY.
You may redistribute copies of this program
under the terms of the GNU General Public License.
For more information about these matters, see the file named COPYING.
Compilation options:
DIRENT UTIME STOC_HEADERS HAVE_UNISTD_H HAVE_MEMORY_H HAVE_STRING_H
Writter by Jean-Loup Gailly.
$ tar --version
tan (GNU tar) 1.13.17
Copytight 2000 Free Software Foundation. Inc.
This program cones with NO WARRANT, to the extent permitted by law.
You may redistribute it under the terms of the GNU General Public License:
see the file named COPYING for details
Written by John Gilmore and jay Fenlason.
Дополнительные пакеты
Ниже перечислены некоторые дополнительные пакеты, которые также рекомендуется установить в системе.
- Библиотека GNU Readline. Библиотека GNU Headline значительно расширяет возможности psql, стандартного клиента PostgreSQL режима командной строки. В режиме командной строки psql появляется поддержка всех стандартных ' возможностей библиотеки GNU Readline, в том числе удобные средства чтения и редактирования ранее введенных команд при помощи клавиш управления курсором, а также поиск в журнале команд. Если библиотека Readline уже установлена в системе, ее поддержка включается автоматически в процессе конфигурирования.
ПРИМЕЧАНИЕ
В NetBSD этот пакет не нужен, поскольку в NetBSD имеется библиотека libedit, совместимая с Readline.
- OpenSSL. OpenSSL представляет собой реализацию протоколов SSL/TLS с открытыми исходными текстами. Пакет обычно работает в сочетании с такими утилитами, как OpenSSH и Apache-SSL. В PostgreSQL он используется для шифрования обмена данными между клиентским приложением psql и рабочими модулями PostgreSQL. Кроме того, OpenSSL может понадобиться в том случае, если вы собираетесь использовать Stunnel. За дополнительной информацией о OpenSSL обращайтесь по адресу http://www.openssl.org. Процесс установки и настройки Stunnel для использования с PostgreSQL описан в главе 8.
- Td/Tk. Комбинация языка программирования с графическим инструментарием. Хотя работа с Tel с PostgreSQL в книге не описывается, мы рассмотрим приложение PgAccess, написанное на Tel. Ели вы собираетесь использовать PgAccess, вам придется установить Tcl/Tk. За информацией о Tcl/Tk обращайтесь на сайт http://tcl.activestate.com.
- Ant/JDK. Пакет JDK (Java Development Kit) используется для программирования на Java и позволяет включить в PostgreSQL поддержку JDBC. Кроме того, для поддержки JDBC необходима Java-утилита Ant, отдаленный аналог gmake. JDK можно найти по адресу http://java.sun.com/j2se/index.html, a Ant — по адресу http://jakarta.apache.org/ant/index.html.
Дисковое пространство
PostgreSQL не очень интенсивно использует дисковые ресурсы. На фоне таких продуктов, как Oracle, запросы PostgreSQL выглядят более чем умеренно. Тем не менее PostgreSQL является системой управления базами данных, и при продолжительном использовании PostgreSQL затраты дискового пространства растут.
На среднем компьютере с системой Linux понадобится примерно 50 Мбайт на распаковку исходных текстов и еще 60 Мбайт на их компиляцию. Выполнение регрессионных тестов потребует еще 30 Мбайт. В зависимости от выбранных параметров конфигурации после установки PostgreSQL расходует от 8 до 15 Мбайт дискового пространства.
ПРИМЕЧАНИЕ
Помните, что по мере использования PostgreSQL затраты дискового пространства растут! Заранее позаботьтесь о наличии свободного места для хранимых данных.
Нехватка дискового пространства при установке PostgreSQL сопряжена с потенциальным риском. Прежде чем устанавливать PostgreSQL, проверьте файловую систему и убедитесь в наличии свободного места в том разделе, в котором собираетесь устанавливать систему (например, /usr/local). В GNU-системах для этой цели можно воспользоваться командой df. Пример приведен в листинге 2.4; свободное место на диске измеряется в блоках объемом 1 Кбайт.
Листинг 2.4. Проверка свободного места на диске
$ df -k
Filesystem Ik-blocks Used Available UseX Mounted on
/dev/hdal 2355984 932660 1303644 42% I
/dev/hdbl 4142800 2133160 1799192 54* /home
/dev/hda6 1541680 272540 1190828 19* /usr/local