Установка PostgreSQL на Linux: Ubuntu, CentOS, Astra Linux - пошаговая инструкция | AdminWiki

Установка PostgreSQL на Linux: полное руководство для разработчиков и DevOps

19 декабря 2025 8 мин. чтения #astra linux #devops #linux #postgresql #администрирование #базы данных #настройка #установка
Содержание статьи

Введение: почему PostgreSQL на Linux?

Представь, что тебе нужно развернуть надежную, производительную систему управления базами данных для нового проекта. PostgreSQL на Linux — это классический выбор для production-среды, сочетающий стабильность операционной системы с мощностью объектно-реляционной СУБД. В этой статье мы разберем процесс установки PostgreSQL на популярных дистрибутивах Linux, включая специальный случай — установка PostgreSQL на Astra Linux.

Подготовка к установке

Перед тем как начать установку PostgreSQL, убедись, что у тебя есть:

  • Доступ к серверу с правами администратора (sudo или root)
  • Стабильное интернет-соединение для загрузки пакетов
  • Минимум 1 ГБ свободного места на диске
  • Обновленная система (рекомендуется выполнить sudo apt update или sudo yum update)
Совет ментора: Всегда устанавливай последнюю стабильную версию PostgreSQL, если только у тебя нет специфических требований к конкретной версии.

Установка PostgreSQL на Ubuntu/Debian

Давай начнем с самого популярного дистрибутива. Установка PostgreSQL на Ubuntu — процесс максимально простой благодаря репозиториям.

Шаг 1: Добавление официального репозитория

bash
# Импортируем ключ репозитория
sudo apt install wget ca-certificates
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

# Добавляем репозиторий (для Ubuntu 22.04)
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'

Шаг 2: Установка PostgreSQL

bash
# Обновляем список пакетов
sudo apt update

# Устанавливаем PostgreSQL 16 (или другую версию)
sudo apt install postgresql-16 postgresql-client-16 postgresql-contrib-16

# Проверяем статус службы
sudo systemctl status postgresql
Важно: По умолчанию PostgreSQL создает пользователя 'postgres' без пароля. Не забудь настроить аутентификацию для production-среды.

Установка PostgreSQL на CentOS/RHEL

Для RHEL-подобных систем процесс немного отличается, но тоже довольно прост.

Шаг 1: Настройка репозитория

bash
# Устанавливаем репозиторий PostgreSQL для CentOS 7/8
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-$(rpm -E '%{rhel}')-x86_64/pgdg-redhat-repo-latest.noarch.rpm

# Для CentOS 8/RHEL 8 может потребоваться отключить стандартный модуль
sudo dnf -qy module disable postgresql

Шаг 2: Установка и запуск

bash
# Устанавливаем PostgreSQL 16
sudo yum install -y postgresql16-server postgresql16-contrib

# Инициализируем базу данных
sudo /usr/pgsql-16/bin/postgresql-16-setup initdb

# Запускаем службу
sudo systemctl enable postgresql-16
sudo systemctl start postgresql-16

Особенности установки PostgreSQL на Astra Linux

Установка PostgreSQL на Astra Linux имеет свои особенности из-за специфики этого российского дистрибутива, основанного на Debian.

Метод 1: Через стандартные репозитории

bash
# Обновляем список пакетов
sudo apt update

# Ищем доступные версии PostgreSQL
apt search postgresql | grep postgresql

# Устанавливаем (версия может отличаться)
sudo apt install postgresql postgresql-contrib

# Проверяем установку
sudo systemctl status postgresql

Метод 2: Ручная установка из исходников (если нужна новая версия)

bash
# Устанавливаем зависимости
sudo apt install build-essential libreadline-dev zlib1g-dev flex bison

# Скачиваем исходники PostgreSQL
wget https://ftp.postgresql.org/pub/source/v16.3/postgresql-16.3.tar.gz
tar -xzf postgresql-16.3.tar.gz
cd postgresql-16.3

# Конфигурируем и собираем
./configure --prefix=/usr/local/pgsql
make
sudo make install

# Добавляем в PATH
echo 'export PATH=/usr/local/pgsql/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
Для Astra Linux: Из-за особенностей политик безопасности SE Linux в Astra Linux, может потребоваться дополнительная настройка контекстов безопасности для PostgreSQL.

Базовая настройка PostgreSQL после установки

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

Настройка аутентификации

config
# Редактируем файл pg_hba.conf
# Расположение зависит от дистрибутива:
# Ubuntu: /etc/postgresql/16/main/pg_hba.conf
# CentOS: /var/lib/pgsql/16/data/pg_hba.conf

# Пример конфигурации для локальных подключений
# TYPE  DATABASE        USER            ADDRESS                 METHOD
local   all             postgres                                peer
local   all             all                                     md5
host    all             all             127.0.0.1/32            md5
host    all             all             ::1/128                 md5

Настройка основных параметров

config
# Редактируем postgresql.conf
# Основные параметры для начала работы:

listen_addresses = 'localhost'          # Для начала только локально
port = 5432                            # Стандартный порт
max_connections = 100                  # Максимальное количество подключений
shared_buffers = 128MB                 # Память для буферов
work_mem = 4MB                         # Память на операцию сортировки
maintenance_work_mem = 64MB            # Память для обслуживания

Работа с PostgreSQL: первые команды

bash
# Переключаемся на пользователя postgres
sudo -i -u postgres

# Запускаем psql
psql

# Внутри psql создаем нового пользователя
CREATE USER myuser WITH PASSWORD 'secure_password';

# Создаем базу данных
CREATE DATABASE mydb OWNER myuser;

# Даем права
GRANT ALL PRIVILEGES ON DATABASE mydb TO myuser;

# Выходим
\q

Сравнение методов установки

Метод Плюсы Минусы Когда использовать
Репозиторий ОС Простота, автоматические обновления Может быть устаревшая версия Для быстрого старта, тестовых сред
Официальный репозиторий PostgreSQL Актуальные версии, стабильность Требует добавления репозитория Для production-сред, когда нужна новая версия
Установка из исходников Полный контроль, кастомная сборка Сложно, нет автоматических обновлений Для специфичных требований, разработки
Docker-контейнер Изоляция, простота развертывания Дополнительный слой абстракции Для микросервисов, разработки, тестов

Часто задаваемые вопросы (FAQ)

Как проверить, что PostgreSQL установлен и работает?

Используй команду sudo systemctl status postgresql (или postgresql-16 для CentOS). Должен быть статус "active (running)". Также можно подключиться через psql: sudo -u postgres psql -c "SELECT version();"

Где находятся конфигурационные файлы PostgreSQL?

Расположение зависит от дистрибутива и метода установки:

  • Ubuntu/Debian: /etc/postgresql/[версия]/main/
  • CentOS/RHEL: /var/lib/pgsql/[версия]/data/
  • Установка из исходников: /usr/local/pgsql/data/ или указанный при инициализации каталог

Как изменить пароль пользователя postgres?

bash
sudo -u postgres psql
\password postgres
# Введи новый пароль дважды
\q

Как разрешить удаленные подключения к PostgreSQL?

Нужно изменить два файла:

  1. В postgresql.conf изменить listen_addresses = '*'
  2. В pg_hba.conf добавить строку: host all all 0.0.0.0/0 md5
  3. Перезапустить PostgreSQL: sudo systemctl restart postgresql
Внимание: Открытие доступа извне требует настройки брандмауэра и использования SSL для безопасности.

Как обновить PostgreSQL до новой версии?

Процесс зависит от дистрибутива. В Ubuntu/Debian с официальным репозиторием достаточно установить новую версию, затем использовать pg_upgrade. Рекомендуется делать бэкап перед обновлением.

Полезные команды для управления PostgreSQL

bash
# Запуск/остановка/перезагрузка
sudo systemctl start postgresql
sudo systemctl stop postgresql
sudo systemctl restart postgresql
sudo systemctl reload postgresql  # Перезагрузка конфигурации без остановки

# Просмотр логов
sudo tail -f /var/log/postgresql/postgresql-16-main.log  # Ubuntu
sudo journalctl -u postgresql-16 -f  # CentOS/RHEL

# Резервное копирование
sudo -u postgres pg_dump dbname > backup.sql

# Восстановление
sudo -u postgres psql dbname < backup.sql

Заключение

Установка PostgreSQL на Linux — это фундаментальный навык для любого разработчика или DevOps-инженера. Как ты мог убедиться, процесс достаточно стандартизирован для большинства дистрибутивов, а специфика установки PostgreSQL на Astra Linux решается либо через стандартные репозитории, либо компиляцией из исходников. Главное — помнить о безопасности: настрой правильную аутентификацию, ограничь доступ по сети и регулярно обновляй систему.

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

Поделиться:
Сохранить гайд? В закладки браузера