Архив за месяц: Февраль 2013

Ejabberd c поддержкой mysql и postgresql

Для того, чтобы все заработало — надо:
1) собрать сам ejabberd с поддержкой ODBC
2) собрать из ejabberd-modules (качаются отдельно) модули mysql и pgsql
если этого не сделать — для Postgres будет писать что ошибка выполнения запроса.

I(<0.267.0>:ejabberd_odbc:226) : pgsql connection failed:
** Reason: {{badmatch,{ok,[{«SELECT 366»,
[{«oid»,text,65534,26,4,-1,1247},

А для mysql будет писать:

** Reason for termination =
** {‘module could not be loaded’,
[{mysql_conn,start,
[«localhost»,3306,»login»,»password»,»ejabberd»,
#Fun]},
{ejabberd_odbc,mysql_connect,5},
{ejabberd_odbc,connecting,2},
{p1_fsm,handle_msg,10},
{proc_lib,init_p_do_apply,3}]}

3) из папки odbc в исходниках создать соответствующим скриптом структуру базы
4) у модулей добавляем _odbc
mod_last на mod_last_odbc
mod_offline на mod_offline_odbc
mod_privacy на mod_privacy_odbc
mod_private на mod_private_odbc
mod_roster на mod_roster_odbc
mod_vcard на mod_vcard_odbc
mod_pubsub на mod_pubsub_odbc
5) в модуле mod_pubsub_odbc названия плагинов тоже меняем на «flat_obdc», «hometree_odbc», «pep_odbc»
Иначе будет показывать ошибки:

E(<0.485.0>:mod_pubsub_odbc:3624) : transaction return internal error:
{aborted,
{undef,
[{node_hometree,

E(<0.485.0>:mod_pubsub_odbc:3624) : transaction return internal error:
{aborted,
{undef,
[{node_flat,

E(<0.485.0>:mod_pubsub_odbc:3624) : transaction return internal error:
{aborted,
{undef,
[{node_pep,

Сборка libicu46.deb под Ubuntu для PostgreSQL и 1С

1) Скачать дистрибутив http://site.icu-project.org/download/46
2) распаковать
3) зайти в распакованную папку и там переименовать папку source в libicu46-4.6.1
4) зайти в libicu46-4.6.1 и дать команды
./configure —prefix=/usr
dh_make —createorig
выбрать s (single)
5) отредактировать файлы в директории debian:
а) удалить libicu.init.d.ex, libicu.cron.d.ex, libicu.default.ex
б) в файл debian/control внести изменения:

Source: libicu46
Section: unknown
Priority: extra
Maintainer: user
Build-Depends: debhelper (>= 8.0.0), autotools-dev
Standards-Version: 3.9.3
Homepage:
#Vcs-Git: git://git.debian.org/collab-maint/libicu.git
#Vcs-Browser: http://git.debian.org/?p=collab-maint/libicu.git;a=summary

Package: libicu46
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: Unicode library

6) дать команду dpkg-buildpackage -rfakeroot

Сборка PostgreSQL для 1C в ubuntu

Если в системе стоит libICU версии отличной от 4.6 — поставить именно 4.6, более новая версия будет давать ошибку
creating template1 DATABASE IN /DATA/base/1 … ok
initializing pg_authid … FATAL: syntax error at OR near «REVOKE» at character 1
STATEMENT: REVOKE ALL ON pg_authid FROM public;

Также этот эффект может наблюдаться если библиотека лежит не в /usr/local/lib
Надо либо поправить debian/rules указав правильные пути, либо перенести библиотеку в /usr/local/lib.

Для сборки PostgreSQL для 1C брать исходники тут:
http://v8.1c.ru/overview/postgres_patches_notes.htm

1) распаковываем архив
2) заходим в директорию
3) даем команды:
dpkg-source -x *.dsc
dpkg-buildpackage -rfakeroot

Если при компиляции из исходников не собирается
../../../src/include/parser/kwlist.h:45: error: ‘APPLICATION’ undeclared here (not in a function)
Добавить определение в файлы:
src/interfaces/ecpg/preproc/preproc.h
src/backend/parser/gram.h

На выходе получаем готовые пакеты.

Создание информационной базы 1С на Ubuntu

Если пишет при создании: invalid value for parameter «lc_messages»: «en_US»
дать команду
locale-gen en_US
и перезапустить постгрес

если ошибка
ERROR: syntax error at or near «SECOND»
Изменить в конфигурации:
backslash_quote = safe_encoding
escape_string_warning = off
standard_conforming_strings = off

Если ошибка
Из остнаски сервер создался, а вот при попытки создания базы ошибка (через пару секунд после нажатия OK):
«Ошибка создания информационной базы:
Ошибка информационной базы
Ошибка установки или изменения национальных настроек информационной базы
Порядок сортировки не поддерживается базой данных»

Необходимо пересоздать базу:
export LANG=ru_RU.utf8;
sudo -u postgres /usr/lib/postgresql/9.2/bin/initdb -D /var/lib/postgresql/9.2/main

обратить внимание на строчки:
The database cluster will be initialized with locale «ru_RU.utf8».
The default database encoding has accordingly been set to «UTF8».
The default text search configuration will be set to «russian».

Если выскакивает ошибка, что база не подходит — проверьте, что вы удалили ту базу которую пытались создавать прежде. Модуль создания базы не проверяет наличие старой базы с тем же именем.

Установка 1С 8.2.17-143 на Ubuntu 12.10 x64

1) Качаем дистрибутивы. Понадобятся файлы:

Для самой платформы:
1c-enterprise82-common_8.2.17-143_amd64.deb
1c-enterprise82-common-nls_8.2.17-143_amd64.deb
1c-enterprise82-server_8.2.17-143_amd64.deb
1c-enterprise82-server-nls_8.2.17-143_amd64.deb
1c-enterprise82-ws_8.2.17-143_amd64.deb
1c-enterprise82-ws-nls_8.2.17-143_amd64.deb

Для Postgres:
libecpg6_9.2.1-1.1C_amd64.deb
libpq5_9.2.1-1.1C_amd64.deb
postgresql-client-9.2_9.2.1-1.1C_amd64.deb
postgresql-common_136_9.2.1-1.1C_all.deb
libpgtypes3_9.2.1-1.1C_amd64.deb
postgresql-9.2_9.2.1-1.1C_amd64.deb
postgresql-client-common_136_9.2.1-1.1C_all.deb
postgresql-contrib-9.2_9.2.1-1.1C_amd64.deb

Настройки сервера:

echo «kernel.shmmax = 134217728» >> /etc/sysctl.conf
echo «kernel.shmall = 134217728″ >> /etc/sysctl.conf
sysctl -p
apt-get install libicu-dev libxslt1.1 libxml2 libossp-uuid16 imagemagick libglib2.0-dev libgsf-1-114 texlive-base ttf-mscorefonts-installer unixodbc
export LANG=»ru_RU.UTF-8»

Устанавливаем пакеты Postgres:
dpkg -i Postgres/*.deb
С пакетом contrib будут вопросы, так как он зависит от libicu46 а в системе стоит libicu48.
Ставим командой
dpkg —force-depends -i postgresql-contrib-9.2_9.2.1-1.1C_amd64.deb

Блокируем обновления
echo «libpq5» hold | dpkg —set-selections
echo «postgresql-9.2» hold | dpkg —set-selections
echo «postgresql-client-9.2» hold | dpkg —set-selections
echo «postgresql-contrib-9.2» hold | dpkg —set-selections

Ставим 1С:
dpkg -i 1C_server/*.deb

Даем права на директорию (могли бы и в пакете корректно прописать):
chown -R usr1cv82:grp1cv82 /opt/1C

Выполнить:
cd /opt/1C/v8.2/x86_64/utils
vi config_server

Недостающий симлинк:
ln -s /usr/lib/libgsf-1.so.114 /usr/lib/x86_64-linux-gnu/libgsf-1.so

В начало функции getLibPath добавить
checkPath lib/x86_64-linux-gnu $ARCH && { echo /usr/lib/x86_64-linux-gnu; return; }

Проверяем, все ли ок:
./config_server

Запускаем:
service srv1cv82 start

Для добавления в автозагрузку даем команду:
update-rc.d srv1cv82 defaults