
Установим PostgreSQL 17 на сервер с операционной системой Debian 12 bookworm. БД установим в директорию /opt.
В репозитории Debian и так имеется Postgresql, так что установить его можно одной командой. Однако, если мы хотим получать самые последние обновления, то лучше использовать репозиторий postgresql.
https://www.postgresql.org/download/linux/debian/
Требования
- ОС Debian 12
- Работаем из-под root
- Установим PostgreSQL 17
Обновим пакеты:
apt update

Установка репозитория
Установим и сконфигурируем репозиторий автоматически:
apt install -y postgresql-common
/usr/share/postgresql-common/pgdg/apt.postgresql.org.sh
Если кто-то хочет всё сделать руками, то:
sudo apt install curl ca-certificates
sudo install -d /usr/share/postgresql-common/pgdg
sudo curl -o /usr/share/postgresql-common/pgdg/apt.postgresql.org.asc --fail https://www.postgresql.org/media/keys/ACCC4CF8.asc
. /etc/os-release
sudo sh -c "echo 'deb [signed-by=/usr/share/postgresql-common/pgdg/apt.postgresql.org.asc] https://apt.postgresql.org/pub/repos/apt $VERSION_CODENAME-pgdg main' > /etc/apt/sources.list.d/pgdg.list"
sudo apt update
sudo apt -y install postgresql


Обновим пакеты:
apt update

Видим что в новом репозитории найдены более новые пакеты. Обновим их тоже.
apt install -y postgresql-common
Репозиторий добавлен, пакеты находятся и устанавливаются.
Установка PostgreSQL 17
apt install postgresql-17

Устанавливается PostgreSQL 17.
Проверяем статус сервера:
systemctl status postgresql

Сервис запущен.
Перенос PostgreSQL в /opt
Сразу же не отходя от кассы перенесём PostgreSQL на выделенный раздел /opt
. Проверим где находится текущая БД PostgreSQL.
sudo -u postgres psql
SHOW data_directory;

БД находится в папке /var/lib/postgresql/17/main
. Для переноса БД нам понадобится rsync:
app install rsync

Останавливаем базу:
systemctl stop postgresql
systemctl status postgresql

Сервисы остановлены. Переносим файлы базы данных.
rsync -av /var/lib/postgresql /opt

После переноса переименуем старую папку, на всякий случай:
mv /var/lib/postgresql/17/main /var/lib/postgresql/17/main.bak

Настроим конфигурацию Postgresql. Правим файл postgresql.conf:
vim /etc/postgresql/17/main/postgresql.conf

Изменяем значение data_directory:
data_directory = '/opt/postgresql/17/main'

Запуск сервисов.
systemctl start postgresql
systemctl status postgresql

Проверяем где находится текущая БД postgresql.
sudo -u postgres psql
SHOW data_directory;

БД находится в папке /opt/postgresql/17/main
.
Удалим ненужные файлы:
rm -Rf /var/lib/postgresql/17/main.bak
Мы установили Postgresql 17 на Debian 12. Файлы данных разместили в директории /opt
.