Установка 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 yum install docbook-style-dsssl docbook-style-xsl openjade libxslt-devel -y
Получение исходных кодов и сборка
При сборке включим поддержку русского языка и все расширения, включая документацию.
-- обновлено 17.08.2018 -- #wget http://repo.postgrespro.ru/pgpro-9.6/src/postgrespro-9.6.6.1.tar.bz2 wget http://repo.postgrespro.ru/pgpro-archive/pgpro-9.6.6.1/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; yum install docbook-style-dsssl docbook-style-xsl openjade libxslt-devel -y; echo " ------------ 2 ------------"; wget http://repo.postgrespro.ru/pgpro-archive/pgpro-9.6.6.1/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! -----------";