Перейти к содержанию

Ubuntu server 11.10+mysql+perl


ovoshlook

Рекомендуемые сообщения

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

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

Ссылка на комментарий
Поделиться на другие сайты

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

Ссылка на комментарий
Поделиться на другие сайты

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

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

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

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

Ссылка на комментарий
Поделиться на другие сайты

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

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

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

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

Ссылка на комментарий
Поделиться на другие сайты

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

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

Ссылка на комментарий
Поделиться на другие сайты

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

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

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

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

Ссылка на комментарий
Поделиться на другие сайты

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

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

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

Ссылка на комментарий
Поделиться на другие сайты

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

PS.

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

lib -> /usr/lib/perl5

Ссылка на комментарий
Поделиться на другие сайты

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

Ссылка на комментарий
Поделиться на другие сайты

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

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

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

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...