Форум » LetoDB, HbNetio. » LetoDB сервер + Debian Linux 5.0.4 » Ответить

LetoDB сервер + Debian Linux 5.0.4

PSP: С Linux я на "Вы". Пока только установил и настроил файл-сервер (Samba). Все исключительно по подсказкам из инета... :) Установлен Linux был в виртуалке Virtualbox, но, несмотря на это, файловые операции происходят весьма шустро. Из 256Mb выделенного ОЗУ Linux использует 30-50... Меня впечатлило. :) Собственно вопрос от начала и пока солнце не сядет... :) Кто может терпеливо и понятно растолковать, как установить на Linux сначала C-компилятор (если его там нет), а потом и LetoDB? Нужно очень подробно, по шагам. Что, где, куда... и когда... :) Срочности особой нет. Понимаю, что у всех есть свои заботы. Жду отзывов. Спасибо!

Ответов - 18

Andrey: PSP пишет: Кто может терпеливо и понятно растолковать, как установить на Linux сначала C-компилятор (если его там нет), а потом и LetoDB? Присоединяюсь к данному вопросу... Я тоже хочу установить ЭТО, только под Ubintu !

alkresin: PSP пишет: Кто может терпеливо и понятно растолковать, как установить на Linux сначала C-компилятор (если его там нет), а потом и LetoDB? А разве нет в главном меню графической оболочки чего-то вроде "Установка и удаление программ" ? В каждом дистрибутиве Linux - своя программа для этой цели. С Debian я дела не имел, но думаю, что работает она примерно так же, как и в других дистрибутивах. Просто запустите ее и установите, что вам надо. Возможно, там можно поставить сразу пакет приложений "для разработки" - нужен ведь не только компилятор С, но и разнообразные библиотеки, make - система. Потом ставите Харбор, ну а после - Letodb, для этого я запускаю make_linux.sh

PSP: alkresin пишет: А разве нет в главном меню графической оболочки чего-то вроде "Установка и удаление программ" ? Я не ставил графику. Похоже надо поставить. Попробую разобраться. Спасибо, Александр.


alkresin: В консоли у Debian для этого служит набор скриптов apt, команда apt-get. Задайте в поисковике "Debian apt-get" - вот одна из полученных ссылок: http://www.rsdn.ru/article/linux/debian.xml

PSP: alkresin пишет: В консоли у Debian для этого служит набор скриптов apt, команда apt-get Угу, я уже понял. Доходит потихоньку. :) Задайте в поисковике "Debian apt-get" - вот одна из полученных ссылок: http://www.rsdn.ru/article/linux/debian.xml Thanks a lot!!! :)

PSP: Так... 1. gcc установил. 2. Harbour установил. 3. "Hello, world!" сделал... :) 4. GNU make 3.81-5 установил. LetoDB не могу собрать. Получаю вот что:

alkresin: Хм... Опять что-то, связанное с изменением деклараций от версии к версии ... Попробуйте просто удалить или закомментировать эту строчку в funcleto.h, а вообще надо будет еще с условной компиляцией повозиться. Что касается ругани на make_linux.sh - наверное, в вашей системе нет bash, или он не в bin/ находится, а где-то в другом месте. Введите в командной строке: which bash - в ответ получите, где он есть и тогда можно прописать этот путь в первой строчке make_linux.sh

PSP: Александр, спасибо за ответ. 1. bash находится в /bin, но почему-то файл make_linux.sh не могу запустить. Ну да фиг с ним. Потом разберусь. 2. Закомментировал в funcleto.h все HB_ERRCODE, запустил make -fMakefile.linux и сервер собрался. Было, правда, несколько варнингов, но собрался... Логи сборки: a) gcc -Wall -O3 -c -Iinclude -I/home/test/Harbour/include -o obj/linux/leto1.o source/client/leto1.c gcc -Wall -O3 -c -Iinclude -I/home/test/Harbour/include -o obj/linux/letomgmn.o source/client/letomgmn.c gcc -Wall -O3 -c -Iinclude -I/home/test/Harbour/include -o obj/linux/hbip.o source/common/hbip.c gcc -Wall -O3 -c -Iinclude -I/home/test/Harbour/include -o obj/linux/net.o source/common/net.c gcc -Wall -O3 -c -Iinclude -I/home/test/Harbour/include -o obj/linux/common_c.o source/common/common_c.c gcc -Wall -O3 -c -Iinclude -I/home/test/Harbour/include -o obj/linux/blowfish.o source/common/blowfish.c /home/test/Harbour/bin/harbour -n -w -es2 -q0 -d__LINUX__ -d__LINUX_DAEMON__ -I/home/test/Harbour/include -Iinclude -oobj/linux/rddsys.c source/client/rddsys.prg gcc -Wall -O3 -c -Iinclude -I/home/test/Harbour/include -o obj/linux/rddsys.o obj/linux/rddsys.c ar rc lib/librddleto.a obj/linux/leto1.o obj/linux/letomgmn.o obj/linux/hbip.o obj/linux/net.o obj/linux/common_c.o obj/linux/blowfish.o obj/linux/rddsys.o /home/test/Harbour/bin/harbour -n -w -es2 -q0 -d__LINUX__ -d__LINUX_DAEMON__ -I/home/test/Harbour/include -Iinclude -oobj/linux/server.c source/server/server.prg gcc -Wall -O3 -c -Iinclude -I/home/test/Harbour/include -o obj/linux/server.o obj/linux/server.c /home/test/Harbour/bin/harbour -n -w -es2 -q0 -d__LINUX__ -d__LINUX_DAEMON__ -I/home/test/Harbour/include -Iinclude -oobj/linux/common.c source/common/common.prg gcc -Wall -O3 -c -Iinclude -I/home/test/Harbour/include -o obj/linux/common.o obj/linux/common.c gcc -Wall -O3 -c -Iinclude -I/home/test/Harbour/include -o obj/linux/letofunc.o source/server/letofunc.c gcc -Wall -O3 -c -Iinclude -I/home/test/Harbour/include -o obj/linux/letoacc.o source/server/letoacc.c gcc -Wall -O3 -c -Iinclude -I/home/test/Harbour/include -o obj/linux/leto_lnx.o source/server/leto_lnx.c gcc -Wall -O3 -c -Iinclude -I/home/test/Harbour/include -o obj/linux/errint.o source/server/errint.c /home/test/Harbour/bin/harbour -n -w -es2 -q0 -d__LINUX__ -d__LINUX_DAEMON__ -I/home/test/Harbour/include -Iinclude -oobj/linux/errorsys.c source/server/errorsys.prg gcc -Wall -O3 -c -Iinclude -I/home/test/Harbour/include -o obj/linux/errorsys.o obj/linux/errorsys.c gcc obj/linux/server.o obj/linux/common.o obj/linux/hbip.o obj/linux/common_c.o obj/linux/blowfish.o obj/linux/letofunc.o obj/linux/letoacc.o obj/linux/leto_lnx.o obj/linux/errint.o obj/linux/errorsys.o -obin/letodb -L/home/test/Harbour/lib -Wl,--start-group -lhbvm -lhbrtl -lhbcpage -lhblang -lhbrdd -lhbrtl -lhbvm -lhbmacro -lhbpp -lgtstd -lrddntx -lrddcdx -lrddfpt -lhbcommon -lhbsix -Wl,--end-group -lm -lpthread rm obj/linux/server.c obj/linux/rddsys.c obj/linux/errorsys.c obj/linux/common.c b) source/client/leto1.c: In function ‘letoGetValue’: source/client/leto1.c:1531: warning: pointer targets in passing argument 1 of ‘hb_cdpnDup’ differ in signedness source/client/leto1.c: In function ‘letoPutValue’: source/client/leto1.c:1792: warning: unused variable ‘uiSize’ source/client/letomgmn.c: In function ‘HB_FUN_LETO_GETLOCALIP’: source/client/letomgmn.c:588: warning: implicit declaration of function ‘hb_getLocalIP’ source/server/letofunc.c: In function ‘leto_UnlockAllRec’: source/server/letofunc.c:1209: warning: ‘pItem’ may be used uninitialized in this function source/server/letofunc.c:1197: warning: ‘pArea’ may be used uninitialized in this function source/server/letofunc.c: In function ‘HB_FUN_LETO_PARSEFILTER’: source/server/letofunc.c:603: warning: ‘cQuo’ may be used uninitialized in this function source/server/letofunc.c:597: warning: ‘bLastCond’ may be used uninitialized in this function source/server/letofunc.c: In function ‘leto_Skip’: source/server/letofunc.c:3001: warning: ‘pp4’ may be used uninitialized in this function source/server/letofunc.c:3029: warning: ‘pTag’ may be used uninitialized in this function source/server/letofunc.c: In function ‘leto_Seek’: source/server/letofunc.c:2794: warning: ‘pp2’ may be used uninitialized in this function source/server/letofunc.c:2794: warning: ‘pp3’ may be used uninitialized in this function source/server/letofunc.c:2799: warning: ‘iKeyLen’ may be used uninitialized in this function source/server/letofunc.c:2798: warning: ‘bFindLast’ may be used uninitialized in this function source/server/letofunc.c:2798: warning: ‘bSoftSeek’ may be used uninitialized in this function source/server/letofunc.c: In function ‘leto_Goto’: source/server/letofunc.c:3140: warning: ‘pp3’ may be used uninitialized in this function source/server/letofunc.c: In function ‘leto_UpdateRec’: source/server/letofunc.c:2590: warning: ‘pData’ may be used uninitialized in this function source/server/letofunc.c: In function ‘leto_Ordfunc’: source/server/letofunc.c:3475: warning: ‘pTagPrev’ may be used uninitialized in this function source/server/letofunc.c:3573: warning: ‘pTag’ may be used uninitialized in this function source/server/letofunc.c:3446: warning: ‘pp3’ may be used uninitialized in this function source/server/letofunc.c: In function ‘leto_ScanUS’: source/server/letofunc.c:3941: warning: ‘ptr’ may be used uninitialized in this function source/server/letofunc.c:3941: note: ‘ptr’ was declared here source/server/letofunc.c:3941: warning: ‘pp3’ may be used uninitialized in this function source/server/letofunc.c:3941: note: ‘pp3’ was declared here source/server/letofunc.c:3941: warning: ‘pp2’ may be used uninitialized in this function source/server/letofunc.c:3941: note: ‘pp2’ was declared here source/server/letofunc.c:3941: warning: ‘pp1’ may be used uninitialized in this function source/server/letofunc.c:3941: note: ‘pp1’ was declared here source/server/letofunc.c:3709: warning: ‘pp2’ may be used uninitialized in this function source/server/letofunc.c:3709: note: ‘pp2’ was declared here source/server/letofunc.c:3709: warning: ‘pp1’ may be used uninitialized in this function source/server/letofunc.c:3709: note: ‘pp1’ was declared here source/server/letofunc.c:4031: warning: ‘ptr’ may be used uninitialized in this function source/server/letofunc.c:4031: note: ‘ptr’ was declared here source/server/letofunc.c: In function ‘leto_Transaction’: source/server/letofunc.c:4311: warning: ‘pData’ may be used uninitialized in this function source/server/errint.c: In function ‘hb_errInternalRaw’: source/server/errint.c:91: warning: format ‘%lu’ expects type ‘long unsigned int’, but argument 3 has type ‘HB_ERRCODE’ 3. Теперь дальше. Файлы .dbf я положил в директорию /home/test/base В letodb.ini написал как обычно: [MAIN] Port = 2812 Log = letodb.log DataPath = /home/test/ EnableFileFunc = 1 ShareTables = 0 В своей программе указываю путь: //192.168.1.100:2812/base/ Связь из программы с сервером leto есть, а функция leto_file() для любого файла возвращает .F. Может быть нужно как-то права доступа настраивать? 4. Как организовать автозапуск сервера при старте Linux?

PSP: Стоп!!! Разобрался... точнее вспомнил... Для Linux Grp.dbf и GRP.DBF - два разных файла. Linux различает регистры букв. Как-то так...

PSP: Все. Черновой вариант работает... Александр, большое спасибо!!!

Andrey: PSP пишет: Linux различает регистры букв. Это же полны пипец .... А как тогда выкручиваться ?

PSP: А чё? Главное, чтобы в программе и на диске имена файлов были написаны одинаково. Просто у меня в примере, который я на Linux ставил, было несоответствие регистра букв имен файлов в программе и на диске. Вот сервер и не находил их...

alkresin: PSP пишет: А чё? Главное, чтобы в программе и на диске имена файлов были написаны одинаково. Просто у меня в примере, который я на Linux ставил, было несоответствие регистра букв имен файлов в программе и на диске. Я стараюсь, чтобы в Линукс - системе пути и имена файлов баз данных были в нижнем регистре и ставлю в letodb.ini LOWER_PATH = 1, чтобы не зависеть от того, в каком регистре имя файла указано в программе.

alkresin: PSP пишет: 4. Как организовать автозапуск сервера при старте Linux? В тех дистрибутивах, с которыми я работаю ( Fedora, AspLinux, AltLinux ) скрипты для запуска служб размещаются в /etc/init.d ( или /etc/rc.d/init/d ). Кидаю туда вот такой файл с названием leto (присвоив ему права на исполнение): #!/bin/sh # chkconfig: 2345 99 10 # description: Starts and stops the Leto DB at boot time and # shutdown # # processname: letodb # config: /apps/letodb.ini LETO_DIR=/apps BOOTUP=color RES_COL=60 MOVE_TO_COL="echo -en \\033[${RES_COL}G" SETCOLOR_SUCCESS="echo -en \\033[1;32m" SETCOLOR_FAILURE="echo -en \\033[1;31m" SETCOLOR_NORMAL="echo -en \\033[0;39m" echo_success() { [ "$BOOTUP" = "color" ] && $MOVE_TO_COL echo -n "[ " [ "$BOOTUP" = "color" ] && $SETCOLOR_SUCCESS echo -n $"OK" [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL echo -n " ]" echo -ne "\r" echo "" return 0 } echo_failure() { [ "$BOOTUP" = "color" ] && $MOVE_TO_COL echo -n "[" [ "$BOOTUP" = "color" ] && $SETCOLOR_FAILURE echo -n $"FAILED" [ "$BOOTUP" = "color" ] && $SETCOLOR_NORMAL echo -n "]" echo -ne "\r" echo "" return 1 } leto_start() { echo "" echo -n "Starting Leto DB Server" cd $LETO_DIR ./letodb start echo_success } leto_stop() { echo "" echo -n "Shutting down Leto DB Server" cd $LETO_DIR ./letodb stop echo_success } leto_restart() { leto_stop sleep 1 leto_start } case "$1" in 'start') leto_start ;; 'stop') leto_stop ;; 'restart'|'reload') leto_restart ;; *) echo "Usage: $0 start|stop|restart|reload" esac и потом даю команду: chkconfig --add leto В результате leto попадает в список служб, автоматически запускаемых при включении компьютера и, что не менее важно, автоматически закрываемых при его выключении. В дистрибутивах, которые я использую, есть команда setup, которая, в частности, позволяет просмотреть этот список служб и поставить напротив каждой галочку, что значит - запускать ее при старте.

PSP: Александр, еще раз большое спасибо! Начальные сведения и навыки появились.

doleynikov: у меня ubuntu. хотел попробовать leto. скачал исходники, распаковал в свою хому. запускаю sh скрипт - ошибки, пытаюсь через hbmk2 - тоже ошибки. тут был разговор специалистов, как это установить, но я его не понял. можно то же самое для валенков?

alkresin: doleynikov пишет: запускаю sh скрипт - ошибки, пытаюсь через hbmk2 - тоже ошибки. Список ошибок - в студию!

PSP: У меня не хватало пакета libgpm-dev. Это была единственная ошибка при сборке. Установил пакет и все собралось. Были варнинги (см.выше), но сервер собрался и работал.



полная версия страницы