Как установить 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, позволяя адаптировать ее к вашим конкретным требованиям.