ТАКСИ. Установка расширений в базу данных PostgreSQL

Ниже готовая инструкция для aaPanel (PostgreSQL в /www/server/pgsql), как поставить pg_trgmuuid‑ossp и PostGIS. Все команды выполняются на сервере под root.


0) Убедиться, что это именно aaPanel‑PostgreSQL

/www/server/pgsql/bin/pg_config --version /www/server/pgsql/bin/pg_config --sharedir /www/server/pgsql/bin/pg_config --pkglibdir

Если пути /www/server/pgsql/... — значит всё правильно.


A) Установка pg_trgm и uuid‑ossp (через исходники PostgreSQL)

1) Зависимости для сборки

sudo apt update sudo apt install -y build-essential flex bison libreadline-dev zlib1g-dev \ libssl-dev libxml2-dev libxslt1-dev libicu-dev uuid-dev wget

2) Скачать исходники PostgreSQL (версия = из pg_config)

sudo mkdir -p /usr/local/src/pgsrc cd /usr/local/src/pgsrc sudo wget https://ftp.postgresql.org/pub/source/v18.0/postgresql-18.0.tar.bz2 sudo tar -xjf postgresql-18.0.tar.bz2

3) Установить pg_trgm

export PATH=/www/server/pgsql/bin:$PATH cd /usr/local/src/pgsrc/postgresql-18.0/contrib/pg_trgm make USE_PGXS=1 PG_CONFIG=/www/server/pgsql/bin/pg_config sudo make USE_PGXS=1 PG_CONFIG=/www/server/pgsql/bin/pg_config install

4) Установить uuid‑ossp

cd /usr/local/src/pgsrc/postgresql-18.0/contrib/uuid-ossp make USE_PGXS=1 PG_CONFIG=/www/server/pgsql/bin/pg_config sudo make USE_PGXS=1 PG_CONFIG=/www/server/pgsql/bin/pg_config install

B) Установка PostGIS (если его нет)

1) Зависимости

sudo apt update sudo apt install -y build-essential libjson-c-dev libgeos-dev libproj-dev \ libgdal-dev libxml2-dev libprotobuf-c-dev protobuf-c-compiler \ pkg-config wget

2) Скачать PostGIS (совместимый с PG18 — 3.6.x)

cd /usr/local/src sudo wget https://download.osgeo.org/postgis/source/postgis-3.6.2.tar.gz sudo tar -xzf postgis-3.6.2.tar.gz cd postgis-3.6.2

3) Сборка и установка в aaPanel‑Postgres

./configure --with-pgconfig=/www/server/pgsql/bin/pg_config make sudo make install

C) Включить расширения в БД (через Adminer)

CREATE EXTENSION IF NOT EXISTS pg_trgm; CREATE EXTENSION IF NOT EXISTS "uuid-ossp"; CREATE EXTENSION IF NOT EXISTS postgis;

D) Проверка в Adminer

SELECT extname, extversion FROM pg_extension WHERE extname IN ('pg_trgm','uuid-ossp','postgis'); SELECT PostGIS_Version();

Если вдруг будет ошибка “could not load library”

Перезапусти PostgreSQL в aaPanel (кнопка Restart) и повтори CREATE EXTENSION.