|
1C 8.3 не видит libWand.so на Linux (Fedora) - пример установки. | ☑ | ||
---|---|---|---|---|
0
rinat_epos
22.02.14
✎
22:17
|
Система Fedora 20 (Heisenbug) x86_64
Устанавливается 1С Предприятие 8.3.4.428 x86_64 сервер и клиент на Linux и клиент 32 разр на windows. Результат толстый клиент - работает без проблем. Тонкий клиент (режим управл. приложения)после ввода пароля завершается с ошибкой: "Ошибка загрузки библиотеки libWand.so по причине:Библиотека не обнаружена." Cтандартный совет сделать симлинк на библиотеку libMagickWand не помогает (Были испробованы все варианты). Установка последнего пакета с imagemagick.org не помагает. Начинаем разбираться: 1) Что у нас есть: yum info ImageMagick выдает Available Packages Name : ImageMagick Arch : x86_64 Version : 6.8.6.3 Release : 3.fc20 Size : 147 k Repo : fedora/20/x86_64 Библиотеки этого пакета: /usr/lib64/libMagickWand-6.Q16.so.1.0.0 2) Как победить: Теперь самое интересное - что все таки происходит? Тут не обойтись без strace - утилита для отслеживания системных вызовов. Находим pid рабочего процесса 1С rphost: ps -afx | grep rphost Желательно чтобы был один процесс rphost. Дело в том, что в 8.3 мы уже не можем создавать или удалять процессы - все в автомате. Подключимся к рабочему процессу и выловим все системные вызовы. Для этого: Откроем 1С на клиенте и остановимся на моменте когда пароль набран , но еще не нажата кнопка ОК. (Это для того, чтобы не собирать слишком большой файл логов strace ). В консоли сервера вводим strace -p <Ваш pid> -f -s 512 -o /root/123456.txt (-f - обязательно указываем отслеживать все порожденные субпроцессы, -s 512 - длина строки в логах , стандартное значение слишком маленькое, -o - это имя файла логов) и нажимаем Enter, затем сразу нажимаем Ок в форме ввода пароля 1С, после вывода ошибки 1С, останавливаем strace и изучаем файл логов. Ищем строку с вхождением "Wand" и получаем: 18507 execve("/bin/sh", ["sh", "-c", "/sbin/ldconfig -p | grep -P '^[\\t ]*libMagickWand.so\\.[0-9]' | sort -r | sed -e 's/.*=>[\\t ]*//'"], [/* 22 vars */]) = 0 Это вызов "ldconfig -p", в котором ищется подстрока libMagickWand.so. Но этой подстроки нет, т.к. в ImageMagick 6.8.6.3 нет такой библиотеки, она переименована в libMagickWand-6.Q16.so. Но 1С попрежнему ищет библиотеку libMagickWand.so, причем анализируя вывод ldconfig - т.е. если мы сделаем симлинк (ln -s) это не поможет т.к все равно не попадет в вывод ldconfig. Почему так сделано ? Не понятно. Далее мне пришлось найти последний пакет до переименования от CENTOS- ImageMagick-6.7.9-10.src.rpm (Это исходник - мы будем делать rpmbuild ) Удалить стандартный пакет yum remove ImageMagick Делаем ребилд из исходника rpm. rpmbuild --rebuild ImageMagick-6.7.9-10.src.rpm x86_64]# rpm -qlp /root/rpmbuild/RPMS/x86_64/ImageMagick-6.7.9-10.x86_64.rpm - посмотрим что в пакете rpm -ivh /root/rpmbuild/RPMS/x86_64/ImageMagick-6.7.9-10.x86_64.rpm - установим пакет. Затем перезапустим сервер. После этого у меня все заработало. Наименование библиотек пакета libMagickWand изменилось в 2013 году начиная с версии 6.8 libWand.so это старое название библи |
|||
1
Banned
22.02.14
✎
22:22
|
мда.... Всё в этой поделке студенческой не как у людей....
|
|||
2
rinat_epos
22.02.14
✎
22:34
|
Может, кто поправит.
Как обстоят дела на Ubunta и Centos ? Какая библиотека ImageMagick стоит? |
Форум | Правила | Описание | Реклама | Секции | Поиск | Книга знаний | Вики-миста |