Установка Postgres Pro 9.6 из исходных текстов в системе CentOS 7

Postgres Pro -  Российская СУБД, разработанная компанией Postgres Professional на основе свободно-распространяемой СУБД PostgreSQL.
 

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

yum update -y
yum install screen wget gcc make bzip2 bison mc readline-devel zlib-devel flex-devel flex git -y
yum install docbook-dtds xsltproc libxslt -y

Получение исходных кодов и сборка

При сборке включим поддержку русского языка и все расширения, включая документацию.

wget http://repo.postgrespro.ru/pgpro-9.6/src/postgrespro-9.6.6.1.tar.bz2
tar -xjvf postgrespro-9.6.6.1.tar.bz2
rm postgrespro-9.6.6.1.tar.bz2
cd postgrespro-9.6.6.1/
./configure --enable-nls='ru'
make world
make install-world

Создадим пользователя и директорию для файлов базы

adduser postgres
mkdir /usr/local/pgsql/data
chown postgres /usr/local/pgsql/data

Инициализация кластера базы данных

Подготовка области хранения базы данных на диске. Будут созданы первичные базы "по-умолчанию" (template0, template1 и postgres).

При инициализации кластер создается с локалью аналогичной локали пользователя postgres. Давайте сейчас выясним какие локали у наших пользователей в системе (их пока двое - root и postgres):

su - postgres
[root@test ~]# localectl status
   System Locale: LANG=en_US.UTF-8
       VC Keymap: us
      X11 Layout: n/a

Поменяем локаль. У пользователя postgres, во время смены локали, будет запрошен пароль root-а.

localectl set-locale LANG=ru_RU.UTF-8

Проверяем локаль.

-bash-4.2$ localectl status
   System Locale: LANG=ru_RU.UTF-8
       VC Keymap: us
      X11 Layout: n/a

Инициализация

Инициализация проходит под пользователем postgres. Если после предыдущего шага вы вылоганились "Ctrl D"  обратно в root, то выполните:

su - postgres

далее

/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data

Настройка и работа

Добавим несколько строк в профиль нашего пользователя postgres для удобства работы.

echo 'export LC_ALL="ru_RU.UTF-8"' >> $HOME/.bashrc
echo "export PATH=/usr/local/pgsql/bin:$PATH" >> $HOME/.bashrc
echo "export MANPATH=/usr/local/pgsql/share/man:$MANPATH" >> $HOME/.bashrc
echo "export PGDATA=/usr/local/pgsql/data" >> $HOME/.bashrc

Вернемся опять под пользователя root по "Ctrl D"

Настроим автозапуск

cd /root/postgrespro-9.6.6.1/contrib/start-scripts/
cp linux /etc/init.d/postgresql
chmod +x /etc/init.d/postgresql
chkconfig postgresql on
service postgresql start

Все, уже можно работать.
 

su - postgres

[postgres@test ~]$ psql
psql (9.6.6)
Введите "help", чтобы получить справку.

postgres=#

Небольшой файл скрипт для установки

#!/bin/bash
echo " ------------ 1 ------------";
yum update -y;
yum install screen wget gcc make bzip2 bison mc readline-devel zlib-devel flex-devel flex git -y;
yum install docbook-dtds xsltproc libxslt -y;
echo " ------------ 2 ------------";
wget http://repo.postgrespro.ru/pgpro-9.6/src/postgrespro-9.6.6.1.tar.bz2;
tar -xjvf postgrespro-9.6.6.1.tar.bz2;
rm postgrespro-9.6.6.1.tar.bz2;
cd postgrespro-9.6.6.1/;
./configure --enable-nls='ru';
make world;
make install-world;
echo " ------------ 3 ------------";
localectl set-locale LANG=ru_RU.UTF-8;
adduser postgres;
mkdir /usr/local/pgsql/data;
chown postgres /usr/local/pgsql/data;
echo " ------------ 4 ------------";
sudo  --user=postgres echo 'export LC_ALL="ru_RU.UTF-8"' >> /home/postgres/.bashrc;
sudo  --user=postgres echo "export PATH=/usr/local/pgsql/bin:$PATH" >> /home/postgres/.bashrc;
sudo  --user=postgres echo "export MANPATH=/usr/local/pgsql/share/man:$MANPATH" >> /home/postgres/.bashrc;
sudo  --user=postgres echo "export PGDATA=/usr/local/pgsql/data" >> /home/postgres/.bashrc;
sudo  --user=postgres /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data;
echo " ------------ 5 ------------";
cd /root/postgrespro-9.6.6.1/contrib/start-scripts/;
cp linux /etc/init.d/postgresql;
chmod +x /etc/init.d/postgresql;
chkconfig postgresql on;
service postgresql start;
sleep 5;
echo " ---------- Yes! -----------";

Автор: Александр