Возникла необходимость перенести сайт с одного хостинга на другой. Старый хостинг на Linux сервере, новый FreeBSD 6. Скрипты писаны на TCL используют библиотеку fbsql, сама библиотека компилируется, но когда запускаю скрипт выдает ошибку.
couldn't load file "../lib/tcllib/fbsql/fbsql.so": /usr/local/lib/mysql/libmysqlclient.so.14: Undefined symbol "gethostbyname_r"
while executing
"load ../lib/tcllib/fbsql/fbsql.so"
("package ifneeded" script)
invoked from within
"package require "fbsql""
>Возникла необходимость перенести сайт с одного хостинга на другой. Старый хостинг на
>Linux сервере, новый FreeBSD 6. Скрипты писаны на TCL используют библиотеку
>fbsql, сама библиотека компилируется, но когда запускаю скрипт выдает ошибку.
>
>
>couldn't load file "../lib/tcllib/fbsql/fbsql.so": /usr/local/lib/mysql/libmysqlclient.so.14: Undefined symbol "gethostbyname_r"А команда mysql работает? gethostbyname_r - это из glibc, где она в FreeBSD находится?
> while executing
>"load ../lib/tcllib/fbsql/fbsql.so"
> ("package ifneeded" script)
> invoked from within
>"package require "fbsql""Это че-то очень замшелое. Может лучше mysqltcl использовать?
>[оверквотинг удален]
>
>А команда mysql работает? gethostbyname_r - это из glibc, где она в
>FreeBSD находится?
>> while executing
>>"load ../lib/tcllib/fbsql/fbsql.so"
>> ("package ifneeded" script)
>> invoked from within
>>"package require "fbsql""
>
>Это че-то очень замшелое. Может лучше mysqltcl использовать?Перейти на mysqltcl возможности нет, тогда придется движок переписывать. Поиск в интернете показал что в glibc для FreeBSD6 нет gethostbyname_r, нужно пересобирать libmysqlclient.so . Может кто сталкивался ?
>>[оверквотинг удален]
>>
>>gethostbyname_r - это из glibc, где она в FreeBSD находится?Она там разве что в /opt/ftp/income/unsorted :)
>Поиск в интернете показал что в glibc для FreeBSD6 нет gethostbyname_r,
А поиск на локальном харде что - показал glibc? - Ну дык поздравляю - у вас Линукс! :)
>нужно пересобирать libmysqlclient.so
У вас mysql консолька не работает?
Кстати - уже спрашивали. Если нам приходится угадывать Ваши ответы - будет честно если вам придется угадывать наши :)
>. Может кто сталкивался ?Скорее сего собака в /lib/tcllib/fbsql/fbsql.so - но я не тиклист, тут тебе к специалисту надо.
PS: Телепаты как известно в отпуске. Но если FreeBSD 6 это 6.3 то там таки gethostbyname_r есть. Только что проверил.
>Скорее сего собака в /lib/tcllib/fbsql/fbsql.so - но я не тиклист, тут тебе
>к специалисту надо.Это не от тикля ругательство, а от ld. Так что до тикля дело даже дойти не успело.
>>Скорее сего собака в /lib/tcllib/fbsql/fbsql.so - но я не тиклист, тут тебе
>>к специалисту надо.
>Это не от тикля ругательство, а от ld. Так что до тикля
>дело даже дойти не успело.Ok. Мне то че ;) Ход мысли был таким:
fbsql.so - это:
- запчасть от MySQL?
- от FreBSD?
Вот что гуголь говорит: "This Tcl extension provides access to MySQL database servers using simple Tcl commands."Далее я уже упомянул что на поднадзорной 6.3 - в частях не касаемых тикля - все Ок!
ЗырЬ:# uname -a
FreeBSD box.domain.com 6.3-RELEASE-p7 FreeBSD 6.3-RELEASE-p7 #0: Sun Dec 21 03:42:05 UTC 2008 root@i386-builder.daemonology.net:/usr/obj/usr/src/sys/GENERIC i386
# nm /usr/local/lib/mysql/libmysqlclient.so | grep gethost
U gethostbyname_r
0001f5f4 T my_gethostbyname_r
# nm /usr/lib/libc.a | grep gethostbyname_r
00000744 T gethostbyname_rРазъяснять надеюсь не надо?
Стало быть ">>Скорее сего собака в /lib/tcllib/fbsql/fbsql.so " - не так ли?PS: Аффтар - а расскажи как нам подробнее как ты эту собаку fbsql.so добыл? А то одна мысль возникла ....
>PS: Аффтар - а расскажи как нам подробнее как ты эту собаку
>fbsql.so добыл? А то одна мысль возникла ....В гугле забанили? http://www.fastbase.co.nz/fbsql/index.html
Под линуксом, кстати, несмотря на древность кода всё работает:
$gcc -fPIC -c -I/usr/include/mysql fbsql.c
$gcc -shared -L/usr/lib -ltcl8.5 -L/usr/lib/mysql -lmysqlclient fbsql.o -o fbsql.so
$export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/mysql
$tclsh
% load ./fbsql.so
% sql
Usage: sql connect|selectdb|query|numrows|disconnect|version; please try again.
%
>>PS: Аффтар - а расскажи как нам подробнее как ты эту собаку
>>fbsql.so добыл? А то одна мысль возникла ....
>В гугле забанили? http://www.fastbase.co.nz/fbsql/index.htmlМалыш - не умничай, не надо ...(С) 8-)
>Под линуксом, кстати, несмотря на древность кода всё работает:
Ну вот как бэ тебе совсем уж доходчиво объяснить то ... Ты под _фрю_ как собирал показать не хочешь? Тогда тебе к телепатам - а оне только платые :)