Устанавливаем PostgreSQL 9.2 + PostGIS 2 в Centos 6.7
PostGIS - это расширение для реляционной базы данных PostgreSQL, которое добавляет поддержку географических объектов и операций над ними. Также PostGIS обеспечивает поддержку различных форматов географических данных, таких как WKT, Well-Known Text, и WKB, Well-Known Binary, что позволяет легко обмениваться данными с другими системами и инструментами.
Устанавливаем утилиту wget
и текстовый редактор nano
1
$ sudo yum install wget nano
Установка PostgreSQL
Добавляем репозиторий
1
2
$ sudo wget http://yum.pgrpms.org/9.2/redhat/rhel-6-x86_64/pgdg-centos92-9.2-7.noarch.rpm
$ sudo rpm -ivh pgdg-centos92-9.2-7.noarch.rpm
Правим конфигурационный файл репозитория CentOS-Base.repo
, что бы в дальнейшем установить PostgreSQL из добавленного репозитория
1
2
3
4
5
6
7
8
9
10
$ sudo nano /etc/yum.repos.d/CentOS-Base.repo
[base]
...
exclude=postgresql*
...
[updates]
...
exclude=postgresql*
...
Устанавливаем PostgreSQL 9.2, инициализируем его и добавляем в автозагрузку
1
2
3
$ sudo yum install postgresql92 postgresql92-server
$ sudo service postgresql-9.2 initdb
$ sudo chkconfig postgresql-9.2 on
Входим в систему под именем пользователя postgres
и запускаем оболочку psql
1
2
$ sudo su - postgres
$ psql
Зададим пользователю postgres
пароль
1
=# ALTER ROLE postgres WITH PASSWORD 'postgres';
Выходим
1
2
=# \q
$ exit
Редактируем файл pg_hba.conf
и меняем тип идентификации на md5
. Так же добавляем нашу подсеть, чтобы можно было подключаться к PostgreSQL через клиент PgAdmin
1
2
3
4
5
$ sudo nano /var/lib/pgsql/9.2/data/pg_hba.conf
...
local all all md5
host all all 127.0.0.1/32 md5
host all all 192.168.1.0/24 md5
Редактируем postgresql.conf
1
2
$ sudo nano /var/lib/pgsql/9.2/data/postgresql.conf
listen_addresses = '*'
Без этого изменения удаленно подключиться к PostgreSQL не получится
Перезапускаем службу
1
$ sudo service postgresql-9.2 restart
Редактируем правила файерволла, открываем стандартный порт PostgreSQL. Перезапускаем iptables
1
2
3
4
$ sudo nano /etc/sysconfig/iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 5432 -j ACCEPT
$ sudo service iptables restart
Добавляем репозиторий EPEL, чтобы в процессе установки PostGIS подтянулись зависимости
1
$ sudo rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
Установка PostGIS
Ставим PostGIS и дополнительные расширения
1
$ sudo yum install postgis2_92 postgresql92-contrib
Создаем новую базу данных
1
2
3
$ sudo su - postgres
$ createdb postgis
$ psql postgis
Устанавливаем дополнительные расширения и проверяем
1
2
=# CREATE EXTENSION postgis;
=# SELECT PostGIS_full_version();
Добавляем поддержку топологии и ставим дополнительные расширения
1
2
3
=# CREATE EXTENSION postgis_topology;
=# CREATE EXTENSION fuzzystrmatch;
=# CREATE EXTENSION postgis_tiger_geocoder;