Будем считать, что свежая версия Ubuntu Server (на сегодняшний день последняя стабильная LTS-версия 14.04.3 LTS) уже скачана и проставлена, поэтому перейдем к установке и настройке PostgreSQL.
Настроим параметры ядра, отвечающие за выделяемую системе память.
Параметр SHMMAX — это максимум памяти, выделяемой в одном запросе в байтах. Я для PQSQL выделил виртуалку с 10ГБ оперативки, поэтому установлю размер в 8ГБ: kernel.shmmax = 8589934592.
Параметр kernel.shmall – Общее количество доступной разделяемой памяти в страницах. Рассчитывается как shmmax/PAGE_SIZE. Как правило, размер страницы в системе — 4096 байт, уточнить можно запросом в консоли getconf PAGE_SIZE
.
Поэтому kernel.shmall = 8589934592/4096 или kernel.shmall = 2097152
echo "kernel.shmmax=8589934592" >> /etc/sysctl.conf
echo "kernel.shmall=2097152" >> /etc/sysctl.conf
sysctl -p
Задаем локаль, естественно, UTF-8:
locale-gen en_US ru_RU ru_RU.UTF-8
export LANG="ru_RU.UTF-8"
Ставим зависимости:
apt-get install libssl0.9.8 libossp-uuid16 libxslt1.1 libicu52 libt1-5 t1utils imagemagick ttf-mscorefonts-installer unixodbc texlive-base libgfs-1.3-2 ssl-cert libicu-dev icu-devtools
Затем скачиваем дистрибутивы PostgreSQL с сайта 1С и устанавливаем:
dpkg -i libpq5_9.4.2-1.1C_amd64.deb
dpkg -i postgresql-client-common_154.1.1C_all.deb
dpkg -i postgresql-client-9.4_9.4.2-1.1C_amd64.deb
dpkg -i postgresql-common_154.1.1C_all.deb
dpkg -i postgresql-9.4_9.4.2-1.1C_amd64.deb
dpkg -i postgresql-contrib-9.4_9.4.2-1.1C_amd64.deb
И в этот момент мы получим ошибку
postgresql-contrib-9.4 зависит от libicu48 (>= 4.8-1), однако:
Пакет libicu48 не установлен.
потому что версия нашего пакета libicu отличается от ожидаемой.
Придется этот пакет перепаковать, перевыпаковать 🙂
dpkg -x postgresql-contrib-9.4_9.4.2-1.1C_amd64.deb tmpdir
dpkg -e postgresql-contrib-9.4_9.4.2-1.1C_amd64.deb tmpdir/DEBIAN
Теперь открываем распакованный файл в редакторе
mcedit ./tmpdir/DEBIAN/control
или, если не установлен пакет mc, то
nano ./tmpdir/DEBIAN/control
находим в строке Depends упоминание пакета libicu48 и меняем на libicu52, после чего сохраняем, перепаковываем пакет и снова устанавливаем:
dpkg -b tmpdir postgresql-contrib-9.4_9.4.2-1.1C_amd64_fixed.deb
dpkg -i postgresql-contrib-9.4_9.4.2-1.1C_amd64_fixed.deb
Проверяем, что PostgreSQL установился:
whereis postgresql
Ответ должен быть таким:
postgresql: /etc/postgresql /usr/lib/postgresql /usr/share/postgresql
и что он запущен: на команду
service postgresql status
должен быть ответ
9.4/main (port 5432): online
Затем создаем директорию для хранения баз 1С PostgreSQL и устанавливаем на нее права для пользователя postgres:
mkdir /1cdb
chown postgres: /1cdb/
Инициализируем базу:
su postgres
/usr/lib/postgresql/9.4/bin/initdb -D /1cdb/ --locale=ru_RU.UTF-8
psql -U postgres -c "alter user postgres with password 'ПАРОЛЬ_ПОЛЬЗОВАТЕЛЯ_POSTGRES';"
Перезапускаем сервис
service postgresql restart
и радуемся надписи
* Restarting PostgreSQL 9.4 database server [ OK ]
Самое главное — для корректной работы с базой из 1С базу необходимо создавать из 1С, а не в PgAdmin`е.
Изменено: 31.05.2017