Пожалуйста, войдите здесь. Часто задаваемые вопросы О нас
Задайте Ваш вопрос

libasteriskssl.so [Решено] [закрыт]

0
asterisk: error while loading shared libraries: libasteriskssl.so.1: cannot open shared object file: No such file or directory

Собственно locate не находи этот файл, система только что установленная, астериск 11.4 скомпилировался нормально. У кого нить была такая проблема?

CentOS 6 64bit

Решено:

Файл действительно есть но , как все говорили в директории /usr/lib, также там все либы находятся. Чтобы такого не было и компиляция проходила нормально в скрипте конфигурации нужно указать путь до lib билиотек.

./configure --libdir=/usr/lib64
удалить переоткрыть спам изменить тег редактировать

спросил 2013-09-03 17:51:01 +0400

romariosar Gravatar romariosar flag of Russian Federation
578 88 8 38
http://www.webunix.ru/

обновил 2013-09-04 09:03:51 +0400

Comments

сто раз, просто не надо тупо расставлять все галочки когда собираете астериск - выключите сборку тех пакетов которые выключены по умолчанию

awsswa ( 2013-09-03 18:44:25 +0400 )редактировать

кстати, а нафига вы компилировали не последнюю версию asterisk 11?

meral ( 2013-09-03 19:19:26 +0400 )редактировать

уже и последнюю скомпилировал таже беда, галочки оставляю все как есть кроме CDR.

romariosar ( 2013-09-03 21:07:12 +0400 )редактировать

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

meral ( 2013-09-03 22:37:57 +0400 )редактировать

meral, просто нужно было разобраться, а вы как всегда.

romariosar ( 2013-09-04 09:03:22 +0400 )редактировать

решили вы как всегда через ж*.правильное решение было поменять astmoddir и/или пути в ld.so.conf

meral ( 2013-09-04 09:33:00 +0400 )редактировать

3 Ответа

1

Скопируйте этот файл из /usr/lib в /usr/lib64 и будет счастье, всё заработает.

ссылка удалить спам редактировать

ответил 2013-09-03 22:27:26 +0400

amonra Gravatar amonra flag of Ukraine
2261 24 13 63
http://lantec.ua/
1

Хоть ветка и старая, но я все-таки выскажусь, так как у меня была похожая проблема c совсем недавней версией астера.

Проблема очень проста: астериск не находит вашу shared library libasteriskssl.so.1. Как вы понимаете, астериск ищет ее не сам, а вызывает для поиска динамический загрузчик ld.so. как действует загрузчик можете почитать вызвав "man ld.so", но если вкратце, то он пользуется динамическим кэш-файлом /etc/ld.so.cache, а этот файл создается соответственно программой ldconfig, которой наверняка все пользуются довольно часто. В этом кэше прописано где лежат все динамические библиотеки. И очевидно, что раз библиотека libasteriskssl.so.1 не ищется, то значит динамический загрузчик не может найти её ни в ld.so.cache, ни в стандартных путях /lib и /usr/lib.

Что делать? Тут некоторые особо одаренные товарищи говорят, что мол не суйти свои кривые ручки туда, куда не умеете и устанавливайте все пакетами, но это конечно бред и происходит от бескультурия и нарциссизма. Например у меня на сервер астериск устанавливается только из исходников, пакеты не работают. Да, можно конечно вообще все библиотеки устанавливать только в одну стандартную директорию /usr/lib и тогда все будет находиться, но это бред. Система должна работать и с другими привычными директориями установки.

Проблема решается следующим образом. Сначала посмотрите, где у вас находится этот libasteriskssl.so.1

$ find /usr -name libasteriskssl.so.1

у меня он установлен в директории /usr/local/lib64 для 64-четырех битной машины это весьма стандартная директория для установки библиотек, поэтому если библиотеки в этой директории не ищутся, то нужно исправить эту ситуацию один раз и навсегда.

Из чего следует решение первое, самое правильное.

(1) (рекомендую) Если вы админ на машине, то добавьте в файл /etc/ld.so.conf строку

/usr/local/lib64

(точнее поставьте свое название директории, где у вас нашлась библиотека libasteriskssl.so.1)

далее вызываем (как админ)

# ldconfig

он заново перепишет кэш-файл, про который я писал выше, включив туда уже вашу директорию. после этого все должно заработать.

(2) решение второе, временное (не рекомендуется)

запускать астер строкой

$ LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib64 asterisk -&

в этом случае вы говорите динамическому загрузчику, что у вас есть еще одна директория, где искать библиотеки

(3) решение третье, постоянное (не рекомендуется)

поместить в свой ~/.bashrc

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib64

это модификация решения (2), которая будет работать только если вы запускаете астериск "ручками", то есть вызывая asterisk из своей bash shell. если вы не зашли в bash shell, то соответственно путь к библиотеке не добавится.

еще раз подчеркну, что правильным постоянным способом является только способ (1)

ссылка удалить спам редактировать

ответил 2014-04-22 04:16:52 +0400

krokodil Gravatar krokodil
29 5 2 4

обновил 2014-04-22 22:30:31 +0400

Comments

ем. а чем это отличается от того что сдесь уже написано? ну кроме "многобукв"? к тому же вы может не в курсе, но человек задавший вопрос позиционирует себя как експерт linux и asterisk и продает услуги. и делает это уже больше трех лет.

meral ( 2014-04-22 17:43:22 +0400 )редактировать
1

только тем, что постарался подробно и понятно. чтобы не только решить проблему, но и объяснить, как это работает и почему. я люблю, когда объясняют решение так, чтобы было понятно даже чайнику, поэтому и сам стараюсь делать также. про личность задававшего не в курсе, но это не важно - так как эта тема вылезает в топе гугла, то надеюсь, что ответ будет полезен не только ему, но и остальным.

krokodil ( 2014-04-22 22:20:28 +0400 )редактировать

честно? чайник не будет искать по этому сайту. да ине поймет то что выше написано. будут вопросы типа "а как редактировать". а топикстартеру вообще ничто не поможет.

meral ( 2014-04-23 07:50:54 +0400 )редактировать
0

locate если вы не в курсе не ищет а делает лукап по базе. она еще необновилася наверно. используйте

find / -name libasteriskssl.so*

а вообще тут скорее всего 64 битная система, модули поставилися в lib64 а у вас в /etc/asterisk/asterisk.conf неправильные пути.

ссылка удалить спам редактировать

ответил 2013-09-03 19:18:28 +0400

meral Gravatar meral flag of Ukraine
21228 23 18 169
http://pro-sip.net/

Comments

в /usr/lib/asterisk этого файла нет, а директории /usr/lib64/asterisk и вовсе нет. система 64 битрная. Я в смятении короче. Завтра попробую 1.8 скомпилировать.

romariosar ( 2013-09-03 21:08:55 +0400 )редактировать

вот что нашел в документации к 11 астеру: The Asterisk build system will now build and install a shared library (libasteriskssl.so) used to wrap various initialization and shutdown functions from the libssl and libcrypto libraries provided by OpenSSL. This is done so that Asterisk can ensure that these functions do not get called by any modules that are loaded into Asterisk, since they should only be called once in any single process. If desired, this feature can be disabled by supplying the --disable-asteriskssl option to the configure script.

Завтра попробую с этим ключем.

romariosar ( 2013-09-03 21:16:12 +0400 )редактировать

ну блин. я вам выдал КАК найти где файл. вы не можете сделать что там написано?

meral ( 2013-09-03 22:37:15 +0400 )редактировать

Закладки и информация

Добавить закладку

подписаться на rss ленту новостей

Статистика

Задан: 2013-09-03 17:51:01 +0400

Просмотрен: 3,835 раз

Обновлен: Apr 22 '14

Похожие вопросы:

Проект компании "АТС Дизайн"
Asterisk® и Digium® являются зарегистрированными торговыми марками компании Digium, Inc., США.
IP АТС Asterisk распространяется под лицензией GNU GPL.