firebird + linux

делаю по рекомендации http://vk.it-sfera.com.ua/231.html
правда у меня CentOS 5.5
поставил из репозитория epel uuid-devel

базу перенес, работает.
Но нужно поставить UDF библиотеку, которая не собирается из исходников.
gcc -fPIC -w -I/usr/include -c uuidlib.c -o uuidlib.o
uuidlib.c:27:23: error: uuid/uuid.h: No such file or directory
uuidlib.c: In function ‘fn_guid_create’:
uuidlib.c:37: error: ‘uuid_t’ undeclared (first use in this function)
uuidlib.c:37: error: (Each undeclared identifier is reported only once
uuidlib.c:37: error: for each function it appears in.)
uuidlib.c:37: error: expected ‘;’ before ‘uuid’
uuidlib.c:38: error: ‘uuid’ undeclared (first use in this function)
uuidlib.c: In function ‘fn_guid_create2’:
uuidlib.c:49: error: ‘uuid_t’ undeclared (first use in this function)
uuidlib.c:49: error: expected ‘;’ before ‘uuid’
uuidlib.c:51: error: ‘uuid’ undeclared (first use in this function)
make: *** [uuidlib.o] Error 1

заранее спасибо

Нравится

18 комментариев

Вам необходим e2fsprogs-devel или libe2fsprogs-devel - я точно не помню, нет под рукой CentOS. В нем необходимые h файлы (в дебиане эти пакеты разделены). Пакет uuid-devel необходимо удалить.

выкроил пол часа свободного времени - попытался поставить базу на centos 5.5
облом
uuid скомпилилась, скопировал uuidlib.so в lib/UDF где lib каталог с библиотеками firederd
также пробовал копировать uuidlib.so в lib

подключиться не удалось
пишет "ошибка открытия источника данных" и тп

причина как я понимаю в этом
Function GETUTCDATE:
Function library is uuidlib
Entry point is fn_sysdate
Returns TIMESTAMP

не может загрузить библиотеку
как указать firebird - где взять либу ? Может нужно указать Function library is полный путь ?
заранее спасибо

по прежнему не удалось победить под CentOS 5.5
кому нибудь удалось ?

причина скорее всего что не находит uuidlib.so
каталог по умолчанию /opt/firebird/UDF
там не видит похоже
ради интереса положил в /lib - не помогло
процесс естессно перестартовал

Ваше обращение передано на рассмотрение руководителя департамента разработки. По результату мы с Вами свяжемся.

Terrasoft Support Team.

"Котенко Александр" написал:Ваше обращение передано на рассмотрение руководителя департамента разработки. По результату мы с Вами свяжемся.

Terrasoft Support Team.


большое спасибо ! ждем

"Ash" написал:по прежнему не удалось победить под CentOS 5.5
кому нибудь удалось ?

Расскажите, если не секрет, почему CentOS в качестве платформы для сервера? Не гуглил по данной теме, признаюсь сразу:smile:

Какая у Вас версия CentOS 32bit или 64bit?

Для установки Firebird с сайта firebirdsql.org необходимо установить compat-libstdc++-33
Обязательно необходимо установить openssl.
Devel-пакет, необходимый для сборки называется e2fsprogs-devel.

После сборки uuidlib.so в /opt/firebird/UDF.

Если у Вас CentOS 64-bit замените файл libfbident.a на файл в аттаче.

версия 64 битная

compat-libstdc++-33 было установлено первым делом
e2fsprogs-devel. также поставил

libfbident.a где менять ? его в каталоге /opt/firebird (а именно туда ставиться сам fb из рпм пакета) нету

я также пробовал собирать fb из исходников - не помогло

В исходных текстах uuidlib/src.

И приведите пожалуйста лог сборки.

ничего не поменялось
вот лог сборки

gcc -fPIC -w -I/usr/include -c uuidlib.c -o uuidlib.o
gcc uuidlib.o -shared -L/usr/lib -luuid -o uuidlib.so

"Александр Кудряшов" написал:Расскажите, если не секрет, почему CentOS в качестве платформы для сервера? Не гуглил по данной теме, признаюсь сразу

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

Скорее всего у Вас старая версия. Возьмите прикрепленную в аттаче (в ней обязательно замените файл на приаттаченный в сообщении выше).

точно - была старая версия
скопировал через gback рабочую базу с виндовой машины

но теперь пишет "Лицензия для модуля Common не найдена"

уже хоть что-то :smile:

Здравствуйте.

По умолчанию, после установки FireBird-базы зайти в неё можно под пользователем sysdba с паролем masterkey. Далее в разделе "Администрирование" нужно создать пользователей и заказать для них лицензии (описано в руководстве администратора). Сообщение "Лицензия для модуля Common не найдена" может возникать, когда выполнена попытка входа в систему Terrasoft под пользователем, у которого нет или нарушена лицензия.

Terrasoft Support Team.

"Котенко Александр" написал:По умолчанию, после установки FireBird-базы зайти в неё можно под пользователем sysdba с паролем masterkey. Далее в разделе "Администрирование" нужно создать пользователей и заказать для них лицензии (описано в руководстве администратора). Сообщение "Лицензия для модуля Common не найдена" может возникать, когда выполнена попытка входа в систему Terrasoft под пользователем, у которого нет или нарушена лицензия.

Terrasoft Support Team

так дело в том, что я переносил через бэкап рабочую базу с виндовой машины.
и еще ради интереса установил лицензии на linux сервер, получил тот же результат. "Лицензия для модуля Common не найдена"

Если у Вас конкурентные лицензии, то их необходимо перезаказывать для нового сервера. Обратитесь с этим вопросом в службу поддержки.

в общем заработало.
как оказалось нужно:
1. поставить последнюю версию uuidlib
2. если на linux перенесли базу с винды - перезаказать лицензии, если они конкурентные, насчет именных не знаю.

ну и в качестве благодарности за хороший саппорт и всем желающим небольшой скрипт для бэкапа баз на firebird (все пути в скрипте следует заменить на те которые у вас). Скрипт клдется в крон и делает бэкап у меня каждый час, а вообще можно реже. Бэкапы хранятся 7 дней

####################################################
#!/bin/sh
DATE=`date "+%d-%m-%Y_%H:%m"`
SERVER='192.168.1.4'

#PATH='C:\Program Files\Terrasoft\DB\TS.fdb'
PATH='/opt/firebird/CRM/TS.fdb'
USER='sysdba'

PASS='мой пароль'
BACKUP_PATH="/mnt/sda1/backup/firebird/TSRM/"

#echo "/opt/firebird/bin/gbak $SERVER:"$PATH" -USER $USER -PAS $PASS $BACKUP_PATH$DATE.fbk"
/opt/firebird/bin/gbak $SERVER:"$PATH" -USER $USER -PAS $PASS $BACKUP_PATH$DATE.fbk
cd $BACKUP_PATH
/usr/bin/bzip2 -9 $DATE.fbk
/usr/bin/find $BACKUP_PATH -mtime +7 -delete
######################################################

ЗЫ: если у вас конкурентные лицензии - восстановленая из бэкапа база будет работать только если:
1. Имя файла базы данных то же самое
2. Путь тот что был у прежнего файла

видать лицензия привязывается к пути и к имени файла БД

Показать все комментарии