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

Для установки PostgresQL и его расширения PostGIS требуется вначале подключить его репозиторий. Для этого нужно создать файл в директории с источниками пакетов

sudo nano /etc/apt/sources.list.d/pgdg.list

и добавить в него строку:

deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main

Далее импортировать ключ доступа к нему и обновить список пакетов

wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update

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

sudo apt-get install postgresql-9.5 postgresql-client-9.5 postgresql-contrib-9.5 libpq-dev postgresql-server-dev-9.5 postgresql-9.5-postgis-2.3

версии Postgresql и PostGIS можно выбрать другие в зависимости от поставленных задач.

Настройка пользователя базы данных

Чтобы разрешить соединения по TCP/IP в файле /etc/postgresql/9.5/main/postgresql.conf строку

#listen_addresses = 'localhost'

заменить на

listen_addresses = '0.0.0.0'

для возможности подключения других компьютеров.

Далее устанавливаем пароль для пользователя posgres (он создается автоматически при установке Postgresql)

sudo -u postgres psql template1
ALTER USER postgres with encrypted password '<ваш новый пароль>';

После настройки пароля, требуется изменить файл /etc/postgresql/9.5/main/pg_hba.conf на использование MD5 аутентификации для пользователя postgres:

local   all         postgres                          md5

И в завершении перезапустить postgresql

sudo /etc/init.d/postgresql restart

Настройка базы данных

Все выполняемые далее sql-запросы находятся в директории usr/share/postgresql/9.5/contrib/postgis-2.3 поэтому при выполнении запросов нужно указывать либо полный путь, либо перейти в это директорию.

Вначале нужно создать базу данных. Для примера будем использовать в качестве имени базы test

sudo createdb --username postgres test
sudo createlang --username postgres pspgsql test

Далее требуется выполнить несколько запросов для установки расширения PostGIS

psql --username posgres -d test -f postgis.sql
psql --username posgres -d test -f postgis_comments.sql
psql --username posgres -d test -f spatial_ref_sys.sql
psql --username posgres -d test -f topology.sql
psql --username posgres -d test -f topology_comments.sql