Не смотря на то, что гугл знает чуть более 300 тысяч ссылок на тему Установка 1С:Предприятие на Linux, среди которых можно найти не один десяток пошаговых инструкций как вполне адекватных, так и написанных абсолютно некомпетентными людьми, разработчики программного продукта не устают удивлять новыми проблемами.
При использовании 1С:Предприятие на Linux в качестве СУБД разработчиками предлагается использовать PostgreSQL со специальными патчами от самого 1С. При этом патченую версию PostgreSQL предлагается скачать прямо на сайте 1С.
На момент написания статьи на сайте предлагалось использовать PostgreSQL версии 9.2.4, выпущенный еще в 2013 году. Перепробовав несколько современных дистрибутивов Linux, в том числе Debian 7.6.0, который казалось бы соответствует требованию "Debian GNU/Linux 4.0 и выше", очень быстро стало понятно, что найти в них библиотеку OpenSSL версии 0.9.8 немного затруднительно. Некоторые другие зависимости тоже разрешались не без проблем.
В связи с тем, что 1С:Предприятие я ставил исключительно для тестирования, было решено попробовать предлагаемую к тестированию версию PostgreSQL 9.3.4. А в качестве дистрибутива Linux была взята Ubuntu Server 14.04.1 LTS. Just for lulz.
При установке PostgreSQL 9.3.4 на эту Ubuntu всплыла зависимость одного из пакетов от пакета libicu48. Данной версии libicu в репозитории не оказалось, зато нашёлся libicu52, который и был поставлен. Запуск сервера PostgreSQL прошёл без проблем, а проблемы появились при попытке создать базу данных из конфигуратора 1С:Предприятие, который сообщил о возникновении ошибки:
Поиск в Google выдал множество рекомендаций создавать базу только из конфигуратора (что я и делал) и других советов, не менее полезных в данной ситуации. Корень зла обнаружился в логах самого PostgreSQL:
2014-10-13 12:02:09 MSK ERROR: could not load library "/usr/lib/postgresql/9.3/lib/mchar.so": libicuuc.so.48: cannot open shared object file: No such file or directory
Зайдя в каталог /usr/lib/postgresql/9.3/lib
внезапно выяснилось, что там есть три разделяемых библиотеки от libicu
:
# ls /usr/lib/postgresql/9.3/lib/*icu*
/usr/lib/postgresql/9.3/lib/libicudata.so.48.1.1
/usr/lib/postgresql/9.3/lib/libicui18n.so.48.1.1
/usr/lib/postgresql/9.3/lib/libicuuc.so.48.1.1
Но для них не созданы символичестки ссылки без .1.1
в конце. Что очень легко исправляется:
cd /usr/lib/postgresql/9.3/lib
ln -s libicudata.so.48.1.1 libicudata.so.48
ln -s libicui18n.so.48.1.1 libicui18n.so.48
ln -s libicuuc.so.48.1.1 libicuuc.so.48
После этого попытка создания базы данных завершается успехом и мы переходим на следующий уровень:
Вопросы зачем разработчики 1С в зависимостях для PostgreSQL указывают libicu при том, что требуемые библитеки включены в пакеты PostgreSQL, и почему они забыли сделать для них символические ссылки находятся вне моей компетенции.