Поиск по сайту:

Как установить PostgreSQL с использованием исходного кода в Linux


PostgreSQL, система управления реляционными базами данных с открытым исходным кодом, широко известна своими надежными функциями и расширяемостью. Хотя многие дистрибутивы Linux предоставляют PostgreSQL через свои менеджеры пакетов, установка его из исходного кода обеспечивает большую настройку и контроль.

В этой статье мы объясним, как установить PostgreSQL 16 с использованием установки исходного кода в системах Linux.

Если вам нужен более простой способ установки с помощью диспетчера пакетов распространения, следуйте приведенным ниже инструкциям:

Предварительные условия

Прежде чем приступить к процессу установки PostgreSQL, убедитесь, что ваша система соответствует следующим предварительным требованиям:

  • Дистрибутив Linux (в этом руководстве мы будем использовать Debian в демонстрационных целях).
  • Система Linux с пользователем без полномочий root с привилегиями sudo.
  • Установлены основные инструменты разработки, такие как GCC и Make.

1. Установите необходимые компоненты в Linux

Сначала установите необходимые инструменты разработки, такие как GCC и Make, с помощью диспетчера пакетов распространения, как показано.

В дистрибутивах на основе RHEL, таких как CentOS, Fedora, Rocky Linux и Alma Linux:

sudo yum groupinstall development-tools
sudo yum install zlib-devel readline-devel libicu-devel

В дистрибутивах на базе Debian, таких как Ubuntu и Linux Mint.

sudo apt install gcc build-essential zlib1g-dev libreadline6-dev libicu-dev pkg-config

2. Загрузите исходный код PostgreSQL.

После установки необходимых предварительных условий загрузите tar-файл исходного кода с официального веб-сайта postgres, используя следующую команду wget непосредственно в системе. На момент написания последней версией является PostgreSQL 16.1.

wget https://ftp.postgresql.org/pub/source/v16.1/postgresql-16.1.tar.bz2

Затем используйте команду tar, чтобы извлечь загруженный файл tarball. Будет создан новый каталог с именем postgresql-16.1.

tar -xvf postgresql-16.1.tar.bz2
cd postgresql-16.1/
ls -l

Пример вывода:

-rw-r--r--.  1 tecmint tecmint    365 Nov  7 03:34 aclocal.m4
drwxr-xr-x.  2 tecmint tecmint   4096 Nov  7 03:47 config
-rwxr-xr-x.  1 tecmint tecmint 584560 Nov  7 03:34 configure
-rw-r--r--.  1 tecmint tecmint  87292 Nov  7 03:34 configure.ac
drwxr-xr-x. 61 tecmint tecmint   4096 Nov  7 03:47 contrib
-rw-r--r--.  1 tecmint tecmint   1192 Nov  7 03:34 COPYRIGHT
drwxr-xr-x.  3 tecmint tecmint   4096 Nov  7 03:47 doc
-rw-r--r--.  1 tecmint tecmint   4288 Nov  7 03:34 GNUmakefile.in
-rw-r--r--.  1 tecmint tecmint    277 Nov  7 03:34 HISTORY
-rw-r--r--.  1 tecmint tecmint  64601 Nov  7 03:48 INSTALL
-rw-r--r--.  1 tecmint tecmint   1875 Nov  7 03:34 Makefile
-rw-r--r--.  1 tecmint tecmint 102017 Nov  7 03:47 meson.build
-rw-r--r--.  1 tecmint tecmint   6266 Nov  7 03:34 meson_options.txt
-rw-r--r--.  1 tecmint tecmint   1213 Nov  7 03:34 README
drwxr-xr-x. 16 tecmint tecmint   4096 Nov  7 03:48 src

3. Настройте PostgreSQL из исходного кода.

Поскольку postgres — это база данных с открытым исходным кодом, ее можно собрать из исходного кода в соответствии с потребностями/требованиями. мы можем настроить процесс сборки и установки, указав один или несколько параметров командной строки для различных дополнительных функций.

Используйте следующую команду для получения помощи с различными параметрами и использованием конфигурации, как показано.

./configure --help

Теперь запустите скрипт настройки, который проверит вашу систему на наличие зависимостей и соответствующим образом настроит сборку.

./configure

4. Установите PostgreSQL из исходного кода.

После настройки используйте следующие команды для сборки и установки PostgreSQL из исходного кода.

make
sudo make install

5. Создание пользователя Postgres

Теперь создайте пользователя и каталог postgres, который будет использоваться в качестве каталога data для инициализации кластера базы данных. Владельцем этого каталога data должен быть пользователь postgres, а права доступа должны быть 700. Для нашего удобства также задайте путь к двоичным файлам postgresql.

sudo useradd postgres
sudo passwd postgres
sudo mkdir -p /pgdatabase/data
sudo chown -R postgres: /pgdatabase/data
sudo sh -c "echo 'export PATH=$PATH:/opt/PostgreSQL/bin' > /etc/profile.d/postgres.sh"
source /etc/profile.d/postgres.sh 

6. Инициализация базы данных Postgres

Теперь инициализируйте базу данных с помощью следующей команды от имени пользователя postgres, прежде чем использовать какие-либо команды postgres.

su postgres
initdb -D /pgdatabase/data/ -U postgres -W

Где -D — это местоположение этого кластера базы данных или, можно сказать, это каталог данных, в котором мы хотим инициализировать кластер базы данных, -U для имени суперпользователя базы данных и -W для запроса пароля для суперпользователя базы данных.

Для получения дополнительной информации и опций можно обратиться к initdb --help.

7. Запустите службу PostgreSQL.

После инициализации базы данных запустите кластер базы данных или, если вам нужно изменить порт или прослушать адрес сервера, отредактируйте файл /pgdatabase/data/postgresql.conf в каталоге данных сервер базы данных.

nano /pgdatabase/data/postgresql.conf

Теперь запустите службу PostgreSQL.

pg_ctl -D /pgdatabase/data/ start

После запуска базы данных проверьте состояние процесса сервера postgres, используя следующие команды ps и netstat.

ps -ef |grep -i postgres
netstat -apn |grep -i 51751

Мы видим, что кластер базы данных работает нормально, а журналы запуска можно найти в месте, указанном с помощью опции -l при запуске кластера базы данных.

pg_ctl -D /pgdatabase/data/ -l logfile start

8. Подключитесь к PostgreSQL

Теперь подключитесь к кластеру базы данных и создайте базу данных, используя следующие команды.

psql -p 5432
postgres=# create database test;
postgres=# \l to list all databases in cluster
postgres=# \q to quit form postgres console

Если вы ищете графический инструмент под названием pgAdmin для управления вашим PostgreSQL, следуйте этим руководствам, чтобы установить pgAdmin в вашем дистрибутиве Linux.

Заключение

Вы успешно установили PostgreSQL из исходного кода в своей системе Linux. Этот процесс обеспечивает гибкость и контроль над вашей установкой PostgreSQL, позволяя адаптировать ее к вашим конкретным требованиям.