1с 8.2 модуль libodbc.so не найден #621807


#0 by Compy
Здравствуйте! Собственно, вопрос в заголовке - кто-нибудь побеждал эту проблему? Предыстория такова - понадобилось подключаться к внешним источникам данных, конкретно, к Access-ному mdb-шнику и к базе MySQL. На локальной базе на Windows все замечательно работает, но при попытке перенести на тестовую площадку на Linux клиент выдает сабжевое сообщение. Сервер крутится на SuSE, установлен по HowTo с этого сайта. Установлены unixODBC, mdbtools, MyODBC, переменная окружения LIB_ODBC_DRIVER_MANAGER имеет значение полного имени реально существующего файла. Но, тем не менее, 1с-ка продолжает, при обращении из обработки, писать сообщение об отсутствии файла! И гугл ничего ценного больше не подсказывает...
#1 by Irek-kazan
первое что на ум пришло - кодировка в имени файла?
#2 by Compy
ru_RU.UTF8. И только английские буквы в именах папок. А что имеется ввиду? В той ли кодировке я задал значение переменной? Так я с локального терминала задавал...
#3 by Todorov
Для начала - спросите гугла на предмет libodbc.so not found, возможно, вся проблема решится симлинком.
#4 by Compy
Это было первым, что я сделал - создал симлинк libodbc.so на libodbc.so.1.0.0. Не помогло
#5 by Todorov
Гм... Вот это не поможет? И еще, сервер не 64-битный? Может, проблема в том, что libodbc.so попала в lib64, а программа ищет ее в lib? Можете указать вывод команды locate libodbc. (findutils-locate, наверное, Вы поставили?)
#6 by Compy
Нет, обычная 32-х битка в режиме PAE. И файлик находится там, где он и должен быть после rpm-установки - в /usr/lib. Команда locate libodbc не выводит ничего, даже пустой строки (хотя сам пакет присутствует). За ссылочку спасибо, там приведен пример установки unixODBC. Насколько это возможно для моего дистрибутива, все сделано так же, как написано (ldd /usr/lib/libodbc.so - ничего криминального, ldconfig -v тоже ничего страшного не показывает). {:offtopic:} Странно все это... За каким графическим интерфейсом внешняя обработка на клиентской машине дергает сервер, чтобы передать ему данные, вместо того, чтобы получить их самостоятельно, как это делается на локальной файловой базе? Непонятно... {:offtopic:}
#7 by Todorov
Вот ведь... Так, если я правильно понял Вашу ситуацию, то: есть сервер 1с под Linux на SQL, клиент - Win. Вы подключаетесь к базе на сервере, запускаете некую (как я понимаю, написанную Вами) обработку и получаете в клиенте указанную ругань. В порядке мыслей в слух: а если дело все в том, что клиент пытается делать то, что должен делать сервер? Т.е. проблема в обработке?
#8 by Todorov
Снова выполните /opt/1C/v8.2/i386/utils/config_server, этот скрипт в том числе регистрирует б-ки ODBC. В плане бреда: а может кинуть симлинк (или даже скопировать) эту библиотеку в /opt/1C/v8.2/i386/ или куда она там ставится?
#10 by Compy
Ситуацию вы описываете правильно. Вот только обработку писал не я. Да и нет там никакой обработки - есть попытка следовать инструкции вот отсюда - И если верить тектсту в вышеуказанной ссылке, то в случае клиент-серверного варианта подключение к ODBC выполняет сервер. (Знать бы еще, КАК он ищет либы... походу, переменные PATH и LIBRARY_PATH им просто игнорятся...) утилиту confog_server я, после удовлетворения всех ее зависимостей, запустил - не сработало. А тот симлинк в каталоге присутстствует, это я с самого начала сделал - без толку...
#11 by Todorov
ИМХО тут вот в чем еще может быть дело: пример заточен под MSSQL, а у Вас PostgreSQL. Вполне вероятно, что есть какие-то различия в процедуре инициализации ИД. В указанной Вами статье меня насторожил пункт 1г (там, где настройки подключения). Возможно, там нужен бубен. Думаю, вполне оправданно было бы обратиться в 1С, тем более, что они сейчас сильно активизировали поддержку Linux. Теоретически можно попытаться покурить мануал на предмет настройки logcfg.xml и поиграться с уровнями логирования в PostgreSQL, может, удастся узнать хоть что-то более конкретное. Вот тут посмотрите еще - это я больше для очистки совести, но я бы начал с этого: - внимательно прочитайте то, что касается odbc.ini Ну и вот еще интересно (последний пост см.) Похоже на Ваш случай Я спросил гугла "1с linux odbc", это все на первой же странице.
#12 by Compy
Спасибо, но во всех описаных в ссылках примерах описывается, насколько мне хватает мозгов, вариант доступа либо к файловой базе (позволяющей использовать ODBC со стороны клиента), либо через wine (клиента под wine запускать куда ни шло, но сервер...). Да и не кажется мне, что в 1с настолько ленивые программисты, чтоб на любую ошибку выводить одно и то же сообщение... Кстати, я постоянно натыкаюсь упоминания некоего "партнерского форума". Туда если не попасть, то запостить мою проблему нельзя?
#13 by loh_pedalny
Если у тебя все официально приобретено и подписка на ИТС есть - обратись в техподдержку. А еще лучше - проверь на 8.3.1. Если проблема осталась, то можно на тестплатформ написать. Там быстро ответят.
#14 by Compy
Конечно, официально. И ключики есть, и пароль. Вот только кто б меня носом ткнул, куда жать... на я ничего такого не нашел... может, у меня админская слепота?
#15 by ansh15
"So if after installing you have apps that can't find libodbc.so, its likely they are linked to libodbc.so.1, so just create a symlink from libodbc.so.2" Как вариант.
#16 by Compy
Нет у меня libodbc.so.2 У меня есть libodbc.so.1.0.0 И с него есть симлинк на libodbc.so
#17 by Compy
Проблема не в том, как найти этот файл. Он есть. Проблема в том, как объяснить однэске, где он лежит.
#18 by Todorov
дело говорите. Сам сколько раз обращался, решали быстро и конструктивно.
#19 by эцп
Может стоит сделать симлинк от libodbc.so.2 на libodbc.so?
#20 by Compy
Симлинк сделал, не помогло.
Тэги: Unix / Linux
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С