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

firebird 2.1.3 BSD8.1

Добавлено: 2010-10-14 16:22:47
koklushkin
Хочу поставить собственно сабж firebird 2.1.3+UDF(rfunc) на 8.1, у кого то есть опыт или что можете посоветовать дельного, особенности установки. Буду весьма признателен! :smile:

Re: firebird 2.1.3 BSD8.1

Добавлено: 2010-10-14 16:33:24
hizel
судя по наличию патчей в databases/firebird20-server
вас ожидают приключения

Re: firebird 2.1.3 BSD8.1

Добавлено: 2010-10-15 9:12:16
koklushkin
про реальные танцы с бубном я в курсе )

Re: firebird 2.1.3 BSD8.1

Добавлено: 2010-10-18 10:28:01
Aligarh
У меня получилось поставить на 8.0 i386, скомпилив из исходником с сайта с особыми параметрами. На amd64 такой фокус не удался, пришлось поставить линуксовые бинарники.
Параметры я сохранил, могу скинуть, если нужно.

Re: firebird 2.1.3 BSD8.1

Добавлено: 2010-10-19 7:10:53
serge
Стоит уже давно firebird-server-2.0.3_2 на 8.0-PRERELEASE i386. Встал вроде без проблем, но как помню была проблема толи с кодировкой БД, толи с отсутствием чего-то в UDF.
Вобщем как СУБД firebird никак не перевариваю, но тем неменее при необходимости установил :pardon:

Re: firebird 2.1.3 BSD8.1

Добавлено: 2010-10-19 13:09:01
koklushkin
Если бы еще howto о проделанных действиях))) Было бы супер :-D

Re: firebird 2.1.3 BSD8.1

Добавлено: 2010-10-20 4:53:24
Aligarh
Вчера скомпилил и поставил на 8.1 amd64, надо было просто патч накатить для динамической линковки.
Днём постараюсь написать последовательность действий с логами. Глядишь, так и статья получится :-)

Re: firebird 2.1.3 BSD8.1

Добавлено: 2010-10-20 6:31:42
Aligarh
Итак, установка. Имеем в наличии:

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

# uname -a
FreeBSD gw.aligarh.net.ru 8.1-STABLE FreeBSD 8.1-STABLE #0: Tue Oct 12 09:49:46 UTC 2010     root@gw.aligarh.net.ru:/usr/obj/usr/src/sys/GWKern  amd64
Идем на сайт http://sourceforge.net/projects/firebird/files/, и находим там последнюю версию исходников. Качаем:

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

# wget http://sourceforge.net/projects/firebird/files/firebird/2.1.3-Release/Firebird-2.1.3.18185-0.tar.bz2
# tar xfv Firebird-2.1.3.18185-0.tar.bz2
# cd Firebird-2.1.3.18185-0
Конфигурируем:

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

# ./configure -without-editline

.  .  . 

The Firebird2 package has been configured with the following options:

                   Architecture : ClassicServer
                          Debug : disabled
64 bit I/O for 32-bit platforms : enabled
                    Raw devices : enabled
                   Lock manager : enabled
                   Service name : gds_db
                   Service port : 3050
                   GPRE modules : c_cxx.cpp

                    Install Dir : /usr/local/firebird
И пробуем скомпилить:

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

# gmake

.  .  .

../src/jrd/pag.cpp:325:2: error: #error no support on other hardware for FreeBSD
../src/jrd/pag.cpp: In function 'USHORT PAG_add_file(const TEXT*, SLONG)':
../src/jrd/pag.cpp:544: error: 'CLASS' was not declared in this scope
../src/jrd/pag.cpp: In function 'void PAG_format_header()':
../src/jrd/pag.cpp:1077: error: 'CLASS' was not declared in this scope
../src/jrd/pag.cpp: In function 'void PAG_header_init()':
../src/jrd/pag.cpp:1412: error: 'CLASS' was not declared in this scope
gmake[3]: *** [../temp/boot/jrd/pag.o] Error 1
rm ../temp/boot/jrd/dpm.cpp ../temp/boot/jrd/dyn_del.cpp ../temp/boot/jrd/met.cpp ../temp/boot/jrd/fun.cpp ../temp/boot/jrd/scl.cpp ../temp/boot/jrd/grant.cpp ../temp/boot/jrd/dfw.cpp ../temp/boot/jrd/ini.cpp ../temp/boot/jrd/dyn_def.cpp ../temp/boot/jrd/dyn.cpp ../temp/boot/jrd/dyn_mod.cpp ../temp/boot/jrd/pcmet.cpp ../temp/boot/jrd/dyn_util.cpp
gmake[3]: Leaving directory `/Firebird-2.1.3.18185-0/gen'
gmake[2]: *** [libfbstatic] Error 2
gmake[2]: Leaving directory `/Firebird-2.1.3.18185-0/gen'
gmake[1]: *** [../gen/firebird/bin/gpre_static] Error 2
gmake[1]: Leaving directory `/Firebird-2.1.3.18185-0/gen'
gmake: *** [firebird] Error 2
 
Не нравится архитектура. Еще раз, но с явным указанием через CFLAGS:

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

# export CFLAGS="-DAMD64" 
# gmake

.  .  .
/usr/bin/ld: /usr/lib/libsupc++.a(tinfo2.o): relocation R_X86_64_32S can not be used when making a shared object; recompile with -fPIC
/usr/lib/libsupc++.a: could not read symbols: Bad value
gmake[2]: *** [../gen/firebird/lib/libfbclient.so.2.1.3] Error 1
rm ../temp/superclient/dsql/blob.cpp ../temp/superclient/dsql/array.cpp
gmake[2]: Leaving directory `/Firebird-2.1.3.18185-0/gen'
gmake[1]: *** [libfbclient] Error 2
gmake[1]: Leaving directory `/Firebird-2.1.3.18185-0/gen'
gmake: *** [firebird] Error 2
libsupc++ скомпилирована так, что не подходит для общих линковки объектов. Т.к. переокмпилировать влом, нужно пропатчить make.defaults патчем от Debian:

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

# cd gen
# wget 'http://git.debian.org/?p=pkg-firebird/2.1.git;a=blob_plain;f=debian/patches/no-static-linkage.patch;hb=HEAD' -O fix.patch
# patch make.defaults fix.patch 
Hmm...  Looks like a unified diff to me...
The text leading up to this was:
--------------------------
|# Avoid static linking with the C++ support library.
|# use dynamic linking instead
|--- a/builds/posix/make.defaults
|+++ b/builds/posix/make.defaults
--------------------------
Patching file make.defaults using Plan A...
Hunk #1 succeeded at 268.
done
И пробуем скомпилировать еще раз:

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

# cd ..
# gmake

.  .  . 

(cd ../gen/firebird/lib && ln -s -f libfbclient.so.2.1.3 libfbclient.so.2 )
(cd ../gen/firebird/lib && ln -s -f libfbclient.so.2 libfbclient.so )
gmake[2]: Leaving directory `/Firebird-2.1.3.18185-0/gen'
gmake[1]: Leaving directory `/Firebird-2.1.3.18185-0/gen'
Получилось. Устанавливаем:

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

# gmake install
gmake -C gen install
gmake[1]: Entering directory `/Firebird-2.1.3.18185-0/gen'
gmake -f ../gen/Makefile.install install
gmake[2]: Entering directory `/Firebird-2.1.3.18185-0/gen'
(cd ../gen/; ./install/install.sh)
firebird user using uid 90
firebird user using gid 90
find: ./firebird/examples/v5: No such file or directory
Example files have not been built!
chmod: examples/*.fdb: No such file or directory
gmake[2]: Leaving directory `/Firebird-2.1.3.18185-0/gen'
gmake[1]: Leaving directory `/Firebird-2.1.3.18185-0/gen'
Т.к. Firebird работает из под inetd, проверяем конфиг inetd:

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

# cat /etc/inetd.conf | grep firebird
gds_db    stream    tcp    nowait    firebird    /usr/local/firebird/bin/fb_inet_server  fb_inet_server
Всё на месте, перезапускаем inetd:

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

# /etc/rc.d/inetd restart
Stopping inetd.
Starting inetd.
Проверяем, слушает ли firebird порт:

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

# sockstat | grep 3050
root     inetd      6254  5  tcp4   *:3050                *:*
Работает Пробуем восстановить базу:

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

# /usr/local/firebird/bin/gbak -REP -V /storage/test.fbk /usr/test.fdb
/libexec/ld-elf.so.1: Shared object "libicuuc.so.30" not found, required by "libfbembed.so.2.1"
Не скопировались библиотеки. Нужно скопировать вручную:

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

# cp -v gen/firebird/lib/* /usr/local/firebird/lib/   
gen/firebird/lib/libfbclient.so -> /usr/local/firebird/lib/libfbclient.so
gen/firebird/lib/libicuuc.so.30 -> /usr/local/firebird/lib/libicuuc.so.30
gen/firebird/lib/libicuuc.so -> /usr/local/firebird/lib/libicuuc.so
gen/firebird/lib/libicui18n.so.30.0 -> /usr/local/firebird/lib/libicui18n.so.30.0
gen/firebird/lib/libicui18n.so.30 -> /usr/local/firebird/lib/libicui18n.so.30
gen/firebird/lib/libicui18n.so -> /usr/local/firebird/lib/libicui18n.so
gen/firebird/lib/libicudata.so.30.0 -> /usr/local/firebird/lib/libicudata.so.30.0
gen/firebird/lib/libicudata.so.30 -> /usr/local/firebird/lib/libicudata.so.30
gen/firebird/lib/libicudata.so -> /usr/local/firebird/lib/libicudata.so
gen/firebird/lib/libib_util.so -> /usr/local/firebird/lib/libib_util.so
gen/firebird/lib/libfbstatic.a -> /usr/local/firebird/lib/libfbstatic.a
gen/firebird/lib/libfbembed.so.2.1.3 -> /usr/local/firebird/lib/libfbembed.so.2.1.3
gen/firebird/lib/libfbembed.so.2.1 -> /usr/local/firebird/lib/libfbembed.so.2.1
gen/firebird/lib/libfbembed.so -> /usr/local/firebird/lib/libfbembed.so
gen/firebird/lib/libfbclient.so.2.1.3 -> /usr/local/firebird/lib/libfbclient.so.2.1.3
gen/firebird/lib/libfbclient.so.2 -> /usr/local/firebird/lib/libfbclient.so.2
gen/firebird/lib/libicuuc.so.30.0 -> /usr/local/firebird/lib/libicuuc.so.30.0
И пробуем восстановить еще раз:

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

# /usr/local/firebird/bin/gbak -REP -V /storage/test.fbk /usr/test.fdb
gbak:opened file /storage/test.fbk
gbak:transportable backup -- data in XDR format
gbak:        backup file is compressed
gbak:created database /usr/test.fdb, page_size 4096 bytes
gbak:started transaction
gbak:restoring domain RDB$1
gbak:restoring domain RDB$2
gbak:restoring domain RDB$3

.  .  .

gbak:    committing metadata
gbak:finishing, closing, and going home
Установка завершена, всё работает.

Re: firebird 2.1.3 BSD8.1

Добавлено: 2010-10-20 10:13:19
koklushkin
Сегодня опробую, отпишусь СПАСИБО :drinks:

Re: firebird 2.1.3 BSD8.1

Добавлено: 2010-10-20 19:08:33
Alex Keda
если бы вы порт нарисовали - было бы вообще сказочно.

Re: firebird 2.1.3 BSD8.1

Добавлено: 2010-10-20 21:29:25
Aligarh
Да я бы срадостью, да не умею. Вот найду время и где почитать про это, и попробую сваять. Глядишь дело получится. :)

Re: firebird 2.1.3 BSD8.1

Добавлено: 2010-10-20 23:47:14
Alex Keda
http://www.freebsd.org/doc/ru_RU.KOI8-R ... -handbook/

хорошим началом будет просто скопирвоать существующий порт под другим именем - в соответствии с версией и поправить файлики.
в 99% случаев - этого хватает чтоб заработало =)

Re: firebird 2.1.3 BSD8.1

Добавлено: 2010-10-21 8:51:30
serge
Наша контора вон сервера с freebsd на линухс сменила только потому что контора-разраб. ПО сказала что больше не сможет поддерживать FB под фряшкой... порт не обновляется. Так что даешь порт для этого "чудо" СУБД 8)

Re: firebird 2.1.3 BSD8.1

Добавлено: 2010-10-21 10:02:27
koklushkin
Поставил, все заработало Большое Человеческое СПАСИБО ! Если кто соберет порт тоже опробую )

Re: firebird 2.1.3 BSD8.1

Добавлено: 2010-10-21 11:45:06
Aligarh
Почитал про создание портов. Вроде не сложно. Постараюсь в выходные запилить порт.

Re: firebird 2.1.3 BSD8.1

Добавлено: 2010-10-21 16:46:30
koklushkin
ок, буду ждать :drinks:

Re: firebird 2.1.3 BSD8.1

Добавлено: 2010-11-19 18:31:05
hangover
Firebird-2.1.3.18185-0

Сервер: http://www.freebsd.org/cgi/query-pr.cgi?pr=152402
Клиент: http://www.freebsd.org/cgi/query-pr.cgi?pr=152403

Авось добавят в дерево портов.

Re: firebird 2.1.3 BSD8.1

Добавлено: 2010-11-22 10:40:35
koklushkin
по идее должны

Re: firebird 2.1.3 BSD8.1

Добавлено: 2011-02-12 21:06:49
surycat
Привет!
у меня такая проблема
Установил на FreeBSD 8.0 Firebird21 с портов
Прописал строку для службы gds_db в inetd.conf, а порт не открывается
Фаервол не запущен
Ошибка для справки:

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

serv# cat /var/log/messages | grep inetd
Feb 12 19:06:13 serv inetd[1662]: gds_db/tcp: socket: Protocol not supported
следовательно:

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

serv# sockstat | grep 3050
servt#

Re: firebird 2.1.3 BSD8.1

Добавлено: 2011-02-12 21:07:45
surycat
Подскажите, если встречались. В нете ничего не нашел

Re: firebird 2.1.3 BSD8.1

Добавлено: 2011-02-12 22:16:40
Aligarh
surycat
А остальные сервисы inetd работают? ftp, там, или еще что-нибудь...

Re: firebird 2.1.3 BSD8.1

Добавлено: 2011-02-12 23:41:16
surycat
да, запускаются
ssh, ftp, syslog
даже backup/restore сделался))

Re: firebird 2.1.3 BSD8.1

Добавлено: 2011-02-12 23:48:36
surycat
может проблема в том , как я его собирал?
но не хотел собираться по рутом, поэтому я отключил эту проверку в Makefile порта

Re: firebird 2.1.3 BSD8.1

Добавлено: 2011-02-12 23:58:20
Aligarh
Вот я как раз и хотел об этом написать, что может быть плохо собралось.
По идее, раз остальные сервисы в inetd работают, значит именно в самом fb проблема.

Re: firebird 2.1.3 BSD8.1

Добавлено: 2011-02-13 0:05:58
surycat
ну это мне мало про что говорит
еще и готовых пакетов на фрюху нет(
ну всеравно спасибо, попробую пересобрать сервис