Jump to content
Sign in to follow this  
ovoshlook

Ubuntu server 11.10+mysql+perl

Recommended Posts

Здравствуйте уважаемые формумчане. Возможно я пишу немного не в ту ветку, но тем не менее:

Есть 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 применены ко всем нужным папкам.

Share this post


Link to post
Share on other sites

Вас чем-то не устроил астериск из репозитория и Вы усановили другой в /opt. Кроме того, Вы помимо установленного мускула установили еще один в /opt (наверное, вместе с астериском). Если вам необходимы оба, то нужно разнести их по портам, если один, то указать обращаться к уже запущенному мускулу (обычно, через TCP порт). Установливая ПО самостоятельно, нужно самому отслеживать зависимости, устанавливая нужные библиотеки. Указанная Вами библиотека присутствует в системе, но аналогичная библиотека отсутствует для установленного Вами самостоятельно ПО.

Share this post


Link to post
Share on other sites

Астер установлен в /usr/sbin/asterisk/ (собственно стандартная установка). В системе он один.

в директорию /opt перенесены только скрипты для asterСС (тоже стандартная процедура для astercc, описанная в мануале по установке на сайте astercc.org)

http://wiki.astercrm.org/doku.php?id=astercrm_manual_install

Мускуль так же только один, установленный при установке Ubuntu. В том то и дело что я вижу что библиотека в системе есть. Права я настроил для нее...

Share this post


Link to post
Share on other sites

Тогда понятно...

Проверьте установлены ли перловые пакеты для связи с мускулом? Пакет, c перловой mysql.so, обычно называется libdbd-mysql-perl.

Сама либа у меня в Дебиане помещена в

/usr/lib/perl5/auto/DBD/mysql/mysql.so

Share this post


Link to post
Share on other sites

Пакеты установлены. на всякий случай попробывал еще раз это сделать через apt-get. Он выдал что такой пакет суже стоит. mysql.so лежит по тому адресу что вы указали. собственно оттуда я ldd и снимал...

Еще идеи что может мешать запуску?

Share this post


Link to post
Share on other sites

На вскидку...

1. Скриптами требуется та же версия перла, что и установлена?

2. Может в каталоге со скриптами лежит другой перл, который и запускается? (и не находит библиотеки)

3. Устаноленый в системе Перл сам по себе работает с мускулом?

Share this post


Link to post
Share on other sites

Другой сткрипт на перле запускается нормально... вот том то и дело. Еще одного перла установленного нет точно.

Я с сделал 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 еще очень много... Видимо придется провести целый вечер за созданием ссылок для нужных файлов.

Если есть подстказки как упростить задачу линкования системы буду брагодарен вам.

Share this post


Link to post
Share on other sites

Просмотрите скрипты. Может, там есть явные указания интерпретатору, где искать библиотеки. Вообще, он обычно ищет в нескольких местах, в т.ч. и в текущем каталоге. Запускается, как я понял, /usr/bin/perl?

PS.

Или попробуйте в astercc сделать ссылку

lib -> /usr/lib/perl5

Share this post


Link to post
Share on other sites

Да. Запуск из стандартной директоррии. Он собственно и ищет в нескольких местах, только вот по основному пути он ее не ищен никак) Сегодня вечером попробую поколдовать-отпишусь что получилось) ЗА советы спасибо большое!

Share this post


Link to post
Share on other sites

В общем после добавления ссылок на нужные директории проблема перешла вот в эту фазу:

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, но к сожалению это не помогло.

вопрос. Где еще могут указываться версии?

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

×
×
  • Create New...