Страница 1 из 1

Jail ldd Teamspeak

Добавлено: 2012-09-15 23:41:36
kharkov_max
День добрый.
Прошу помощи ...

Есть freebsd82 AMD64, при помощи ezjail поднята клетка для teamspeak.
Teamspeak хочу запустить с поддержкой mysql.

Собственно сам teamspeak проинстален из портов и соотвествующим образом настроены его конфиги, подключение к БД.
К БД mysql55 есть доступ.

При запуске teamspeak в лог валится такое:

Код: Выделить всё

2012-09-15 20:17:55.999081|INFO    |ServerLibPriv |   | TeamSpeak 3 Server 3.0.5 (2012-04-23 04:46:12)
2012-09-15 20:17:55.999730|CRITICAL|DatabaseQuery |   | unable to load database plugin library "libts3db_mysql.so", halting!
При этом:

Код: Выделить всё

teamspeak3:/usr/local/lib/teamspeak/server>>ldd libts3db_mysql.so
libts3db_mysql.so:
        libmysqlclient.so.15 => /usr/local/lib/mysql/libmysqlclient.so.15 (0x800c00000)
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x801039000)
        libm.so.5 => /lib/libm.so.5 (0x801249000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x801369000)
        libc.so.7 => /lib/libc.so.7 (0x800647000)
        libz.so.5 => /lib/libz.so.5 (0x801477000)
        libthr.so.3 => /lib/libthr.so.3 (0x80158c000)
На libmysqlclient.so.15 сделан симлинк от libmysqlclient.so.18
На сколько я понимаю в jail при запуске порта не регистрируются библиотеки

Код: Выделить всё

cat /usr/local/etc/rc.d/teamspeak
....
LD_LIBRARY_PATH=/usr/local/lib/teamspeak/server:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
...
Собственно как можно побороть ситуацию ?

Пробовал скачать teamspeak с сайта разработчиков - запускается и работает, но база в sqlite, и нужно использовать только ts3server_freebsd_amd64 дефолтного запуска.
Если пытаться запускать со своим конфигом для mysql, ts3server.ini

Код: Выделить всё

>cat ts3server.ini
machine_id=ts3
default_voice_port=9987
voice_ip=192.168.0.1
liscensepath=
filetransfer_port=30033
filetransfer_ip=192.168.0.1
query_port=10011
query_ip=192.168.0.1
dbplugin=ts3db_mysql
# dbplugin=ts3db_sqlite
dbpluginparameter=/usr/local/etc/teamspeak/ts3db_mysql.ini
dbsqlpath=sql/
dbsqlcreatepath=create_mysql/
logpath=logs
logquerycommands=1

Код: Выделить всё

cat ts3db_mysql.ini
[config]
host=192.168.0.1
port=3306
username=teamspeak3
password=teamspeak3
database=ts3
socket=
То та же ошибка, при чем даже с базой sqlite

Код: Выделить всё

2012-09-15 20:17:55.999081|INFO    |ServerLibPriv |   | TeamSpeak 3 Server 3.0.5 (2012-04-23 04:46:12)
2012-09-15 20:17:55.999730|CRITICAL|DatabaseQuery |   | unable to load database plugin library "libts3db_sqlite.so", halting!
PS
Если все поднимаю в основной системе, с те ми же конфигами - все работает ...

Re: Jail ldd Teamspeak

Добавлено: 2012-09-16 21:03:25
Alex Keda
добавить путь в ldconfig_paths

Re: Jail ldd Teamspeak

Добавлено: 2012-09-16 21:22:43
kharkov_max
Alex Keda писал(а):добавить путь в ldconfig_paths
Банальный вопрос.
Как прописать и где?

Клетка поднята при помощи ezjail.

Re: Jail ldd Teamspeak

Добавлено: 2012-09-16 21:49:24
kharkov_max
Прописал в rc.conf виртуалки.
Первый запуск teamspeak в лог выдал такую же ошибку

Код: Выделить всё

2012-09-15 20:17:55.999081|INFO    |ServerLibPriv |   | TeamSpeak 3 Server 3.0.5 (2012-04-23 04:46:12)
2012-09-15 20:17:55.999730|CRITICAL|DatabaseQuery |   | unable to load database plugin library "libts3db_mysql.so", halting!
все последующие запуски даже лог не формирует ...

Re: Jail ldd Teamspeak

Добавлено: 2012-09-16 22:28:08
kharkov_max
Все танцы с бубном вокруг ldconfig_paths, ни к чему не привели, ошибка та же.

А не может быть причиной симлинк libmysqlclient.so.15 libmysqlclient.so.18
Может нужно более старый mysql поставить ...

Re: Jail ldd Teamspeak

Добавлено: 2012-09-17 7:01:58
kharkov_max
Победил ...

Проблема в библиотеке libmysqlclient.so.15, видимо нужна либа только от mysql 5.0 и симлинк от 5.5 не катит....
В основной системе, где teamspeak работал сделал

Код: Выделить всё

>ldd /usr/local/lib/teamspeak/server/libts3db_mysql.so
/usr/local/lib/teamspeak/server/libts3db_mysql.so:
        libmysqlclient.so.15 => /usr/local/lib/compat/pkg/libmysqlclient.so.15 (0x800c00000)
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x800d6a000)
        libm.so.5 => /lib/libm.so.5 (0x800f7a000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0x80109a000)
        libc.so.7 => /lib/libc.so.7 (0x800647000)
        libcrypt.so.5 => /lib/libcrypt.so.5 (0x8011a8000)
        libz.so.5 => /lib/libz.so.5 (0x8012c1000)
Потом скопировал библиотеку /usr/local/lib/compat/pkg/libmysqlclient.so.15 из основной системы в jail по пути /usr/local/lib/mysql
Перезагрузил jail и teamspeak начал понимать конектор к mysql...

Вот только теперь вопрос.
А кто или какой порт мог собрать libmysqlclient.so.15 в /usr/local/lib/compat/pkg/ ?

Re: Jail ldd Teamspeak

Добавлено: 2012-09-17 17:09:32
Dark_ASU
compat это же совместимость разных версий или ошибаюсь?