ovoshlook Posted January 9, 2012 Report Share Posted January 9, 2012 Здравствуйте уважаемые формумчане. Возможно я пишу немного не в ту ветку, но тем не менее: Есть Ubuntu server. Так же на нем стоит LAMP-server (ставился сразу с установкой ОС). (MySql+web+php) не сервере стоит asterisk. На астериск устаовлена CRM система. (asterCC) при запуске одного из perl скриптов появляется ошибка: sudo /opt/asterisk/scripts/astercc/astercc install_driver(mysql) failed: Can't load 'auto/DBD/mysql/mysql.so' for module DBD::mysql: auto/DBD/mysql/mysql.so: невозможно открыть разделяемый объектный файл: Нет такого файла или каталога at /</opt/asterisk/scripts/astercc/astercc>DynaLoader.pm line 214. at perlapp line 642 Perhaps a required shared library or dll isn't installed where expected at astercc.pl line 1640 По ошибке видно, что mysql не может запустить свой модуль mysql.so. 2 дня гугления ответов толком не дали кроме одного: не хватает модуля libmysqlclient.so. чтобы проверить подключается ли libmysqlclient.so запустил ldd для mysql.so: linux-gate.so.1 => (0xb787d000) libmysqlclient.so.16 => /usr/lib/libmysqlclient.so.16 (0xb7667000) libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb74eb000) libpthread.so.0 => /lib/i386-linux-gnu/libpthread.so.0 (0xb74cf000) libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xb74a5000) libz.so.1 => /lib/i386-linux-gnu/libz.so.1 (0xb7490000) /lib/ld-linux.so.2 (0xb787e000) Как видно нужная либа есть. я уже всю голову сломал себе что не так и что не может подключить к себе этот скрипт. Прошу помощи. Заранее спасибо P.S. совсем забыл написать: права доступа 777 применены ко всем нужным папкам. Quote Link to comment Share on other sites More sharing options...
gogi Posted January 9, 2012 Report Share Posted January 9, 2012 Вас чем-то не устроил астериск из репозитория и Вы усановили другой в /opt. Кроме того, Вы помимо установленного мускула установили еще один в /opt (наверное, вместе с астериском). Если вам необходимы оба, то нужно разнести их по портам, если один, то указать обращаться к уже запущенному мускулу (обычно, через TCP порт). Установливая ПО самостоятельно, нужно самому отслеживать зависимости, устанавливая нужные библиотеки. Указанная Вами библиотека присутствует в системе, но аналогичная библиотека отсутствует для установленного Вами самостоятельно ПО. Quote Link to comment Share on other sites More sharing options...
ovoshlook Posted January 9, 2012 Author Report Share Posted January 9, 2012 Астер установлен в /usr/sbin/asterisk/ (собственно стандартная установка). В системе он один. в директорию /opt перенесены только скрипты для asterСС (тоже стандартная процедура для astercc, описанная в мануале по установке на сайте astercc.org) http://wiki.astercrm.org/doku.php?id=astercrm_manual_install Мускуль так же только один, установленный при установке Ubuntu. В том то и дело что я вижу что библиотека в системе есть. Права я настроил для нее... Quote Link to comment Share on other sites More sharing options...
gogi Posted January 9, 2012 Report Share Posted January 9, 2012 Тогда понятно... Проверьте установлены ли перловые пакеты для связи с мускулом? Пакет, c перловой mysql.so, обычно называется libdbd-mysql-perl. Сама либа у меня в Дебиане помещена в /usr/lib/perl5/auto/DBD/mysql/mysql.so Quote Link to comment Share on other sites More sharing options...
ovoshlook Posted January 9, 2012 Author Report Share Posted January 9, 2012 Пакеты установлены. на всякий случай попробывал еще раз это сделать через apt-get. Он выдал что такой пакет суже стоит. mysql.so лежит по тому адресу что вы указали. собственно оттуда я ldd и снимал... Еще идеи что может мешать запуску? Quote Link to comment Share on other sites More sharing options...
gogi Posted January 9, 2012 Report Share Posted January 9, 2012 На вскидку... 1. Скриптами требуется та же версия перла, что и установлена? 2. Может в каталоге со скриптами лежит другой перл, который и запускается? (и не находит библиотеки) 3. Устаноленый в системе Перл сам по себе работает с мускулом? Quote Link to comment Share on other sites More sharing options...
ovoshlook Posted January 9, 2012 Author Report Share Posted January 9, 2012 Другой сткрипт на перле запускается нормально... вот том то и дело. Еще одного перла установленного нет точно. Я с сделал strace -f /opt/asterisk/scripts/astercc/astercc Он мне показал что помимо всего прочего не может найти файл или libmysqlclient.so.15 . Не находит потому что его и нет. есть толкьо 16. Сделал ссылку по именем libmysqlclient.so.15 на libmysqlclient.so.16: система стала ее находить. Видимо asterсс 0,21 не настолько новая на сколько новая ubuntu server 11.10 и LAMP server в ее дистре. еще насторожило вот это: stat64("/opt/asterisk/scripts/astercc/lib/auto/DBD/mysql", 0x912fc00) = -1 ENOENT (No such file or directory) stat64("/opt/asterisk/scripts/astercc/auto/DBD/mysql", 0x912fc00) = -1 ENOENT (No such file or directory) stat64("auto/DBD/mysql/mysql.bs", 0x912fc00) = -1 ENOENT (No such file or directory) open("auto/DBD/mysql/mysql.so", O_RDONLY) = -1 ENOENT (No such file or directory) То есть он ищет mysql.so совсем не там где она должна быть получается (лежит то она как вы и я знаем в /usr/lib/perl5/auto/DBD/mysql/) сейчас при вызове strace там файлов которые не находит astercc еще очень много... Видимо придется провести целый вечер за созданием ссылок для нужных файлов. Если есть подстказки как упростить задачу линкования системы буду брагодарен вам. Quote Link to comment Share on other sites More sharing options...
gogi Posted January 9, 2012 Report Share Posted January 9, 2012 Просмотрите скрипты. Может, там есть явные указания интерпретатору, где искать библиотеки. Вообще, он обычно ищет в нескольких местах, в т.ч. и в текущем каталоге. Запускается, как я понял, /usr/bin/perl? PS. Или попробуйте в astercc сделать ссылку lib -> /usr/lib/perl5 Quote Link to comment Share on other sites More sharing options...
ovoshlook Posted January 10, 2012 Author Report Share Posted January 10, 2012 Да. Запуск из стандартной директоррии. Он собственно и ищет в нескольких местах, только вот по основному пути он ее не ищен никак) Сегодня вечером попробую поколдовать-отпишусь что получилось) ЗА советы спасибо большое! Quote Link to comment Share on other sites More sharing options...
ovoshlook Posted January 11, 2012 Author Report Share Posted January 11, 2012 В общем после добавления ссылок на нужные директории проблема перешла вот в эту фазу: install_driver(mysql) failed: DBD::mysql object version 4.019 does not match bootstrap parameter 4.018 at /</opt/asterisk/scripts/astercc/astercc>DynaLoader.pm line 234. Где то в общем версии не сопоставляются. В mysql.pm я нашел указание на версию 4.019 изменил значение на 4.018, но к сожалению это не помогло. вопрос. Где еще могут указываться версии? Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.