PostgreSQL 9.2.4 с патчами от 1С на Lubuntu 14.04

Старенький ноутбук Toshiba Satellite-A75 станет стендом для этой практической работы по установке сначала базы данных PostgreSQL, затем клиента и сервера 1С:Предприятие версии 8.3. Процессор Intel(R) Pentium(R) 4 CPU 3.20GHz, память 1381MiB. Предварительно скачаем и установим сам линукс Lubuntu http://cdimage.ubuntu.com/lubuntu/daily-live/current/trusty-desktop-i386... . Выбор Lubuntu стал результатом исключительно нетребовательности к ресурсам по железу. На сайте 1С https://users.v8.1c.ru берем нужные файлы (подразумевается имеющийся дуступ), а именно: Патчи вместе с исходниками PostgreSQL 9.2.4 или для тех, кто не хочет заморачиваться с патчами готовый deb-пакет Cервер 1С:Предприятия для DEB-based Linux-систем Клиент 1С:Предприятия для DEB-based Linux-систем Разумеется, клиент может быть и под Windows. Начнем. В скачанном файле patch.rar находим каталог SRC_DEB, а в нем исходники оригинального постгреса postgresql-9.2_9.2.4.orig.tar.bz2. Распакуем исходники в каталог ~/src/postgresql-9.2.4/ и в нем создадим каталог для патчей ~/src/postgresql-9.2.4/patches, в который уже скопируем сами патчи 1c_FULL_92-0.23.1 applock-1c-9.2.patch online_analyze.patch plantuner.patch postgresql-1c-9.2.patch Зайдем в каталог с патчами

~/src/postgresql-9.2.4/patches

и поочередно выполним
patch -d .. -p1

patch -d .. -p1 Теперь пробуем подготовиться к компиляции

cd ~/src/postgresql-9.2.4/
 
./configure

упс...

configure: error: in `/home/baklan/src/postgresql-9.2.4': configure: error: no acceptable C compiler found in $PATH See `config.log' for more details.

ага, нечем компилировать. Я выполнил стандартную установку:

sudo apt-get install linux-headers-`uname -r` binutils pkg-config build-essential

еще раз ./configure выявила следующую ошибку:

configure: error: readline library not found If you have readline already installed, see config.log for details on the failure. It is possible the compiler isn't looking in the proper directory. Use --without-readline to disable readline support.

ну это было и 5 лет назад, значит нужно

sudo aptitude install libreadline-dev

Сейчас ./configure успешно. Идем дальше, компиляция:

make

компиляция с первого раза выдала старую знакому ошибку:

error: ‘APPLICATION’ undeclared here (not in a function) PG_KEYWORD("application", APPLICATION

Уже известно как исправляется

Нужно: в src/interfaces/ecpg/preproc/preproc.h после строки UMINUS = 746 поставить запятую и добавить строку APPLICATION = 747 . Т.о. получим вот такой фргмент этого заголовочного файла

UMINUS = 746,
 
APPLICATION = 747
 
          };
 
#endif

в src/backend/parser/gram.h аналогично

UMINUS = 669,
 
APPLICATION = 670
 
          };
 
#endif

и опять

make
 
make install
 
cd contrib
 
make install

если получите

mchar.h:7:27: fatal error: unicode/uchar.h: Нет такого файла или каталога

необходима установка

sudo aptitude install zlib1g-dev

еще раз

make install

Я решил сделать каталог баз данных в /home/bases

sudo mkdir /home/bases

Добавим пользователя postgres и группу postgres

sudo useradd -g postgres -d /home/bases -s /bin/bash -c "PostgreSQL Server" -u 5026 postgres

Пользователя сделаем владельцем каталога баз данных

sudo chown postgres:postgres /home/bases

Установим пароль для пользователя postgres

sudo passwd postgres
 
Введите новый пароль UNIX:
 
Повторите ввод нового пароля UNIX:
 
passwd: пароль успешно обновлён

Теперь от пользователя postgres инициализируем базу данных

su postgres
 
/usr/local/pgsql/bin/initdb -D /home/bases

и первый запуск PostgreSQL

/usr/local/pgsql/bin/pg_ctl -D /home/bases -l /home/bases/pgsql.log start
 
server starting

Проверим прослушивается ли стандартный порт PostgreSQL 5432

netstat -atn
 
tcp 0 0 127.0.1.1:53 0.0.0.0:* LISTEN
 
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
 
tcp 0 0 127.0.0.1:631 0.0.0.0:* LISTEN
 
tcp 0 0 0.0.0.0:5432 0.0.0.0:* LISTEN
 
 

По старинке сделаем скрипт запуска сервера postgres

sudo nano /etc/init.d/pgsql

вот такого содержания:

#!/bin/sh
 
case $1 in
restart)
sudo -u postgres -H /usr/local/pgsql/bin/pg_ctl -D /home/bases -l /home/bases/pg.log stop
sudo -u postgres -H /usr/local/pgsql/bin/pg_ctl -D /home/bases -l /home/bases/pg.log start
;;
start)
sudo -u postgres -H /usr/local/pgsql/bin/pg_ctl -D /home/bases -l /home/bases/pg.log start
;;
stop)
sudo -u postgres -H /usr/local/pgsql/bin/pg_ctl -D /home/bases -l /home/bases/pg.log stop
;;
*)
echo start|stop|restart
return 1;
;;
esac

Права запуска для этого скрипта:

sudo chmod +x /etc/init.d/pgsql

и автозапуск:

sudo update-rc.d pgsql defaults

пробуем проверить работу скрипта:

sudo service pgsql restart
 
waiting for server to shut down....
 
done server stopped server starting 

Итак мы установили сервер баз данных PostgreSQL 9.2.4 с патчами для работы 1С:Предприятие. Далее рассмотрим установку самого сервера 1С 8.3