|
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
|
![]()
Сообщение
#1
|
|
![]() Начинающий ![]() Группа: Пользователи Сообщений: 10 Регистрация: 24.1.2012 Пользователь №: 10 219 Спасибо сказали: 7 раз ![]() |
Сборка хаба PtokaX 0.4.1.2 с поддержкой Lua и luasocket в ОС Solaris 10 x86
Необходимые условия для нормальной сборки: - установленная (можно и в виртуальной машине) ОС Solaris 10 10/09 s10x_u8wos_08a X86 и выше (комплект ПО "Entire Group Plus OEM"); - комплект исходников PtokaX и сопутствующих библиотек; - правильно указанные пути к утилитам сборки. 1. Загрузка исходников Найти в Google следующие архивы: 0.4.1.2-nix-src.gz tinyxml_2_6_2.tar.gz lua-5.1.4.tar.gz luasocket-2.0.2.tar.gz compat-5.1r5.tar.gz 2. Размещение исходников в каталоге для сборки Создан каталог - /export/home/username/compile/ Архивы скопированы: /export/home/username/compile/0.4.1.2-nix-src.gz /export/home/username/compile/tinyxml_2_6_2.tar.gz /export/home/username/compile/lua-5.1.4.tar.gz /export/home/username/compile/luasocket-2.0.2.tar.gz /export/home/username/compile/compat-5.1r5.tar.gz 3. Распаковка Архивы распакованы в каталоги: /export/home/username/compile/PtokaX /export/home/username/compile/tinyxml /export/home/username/compile/lua-5.1.4 /export/home/username/compile/luasocket-2.0.2 /export/home/username/compile/compat-5.1r5 4. Перемещение каталогов для подготовки к сборке Код mv /export/home/username/compile/tinyxml /export/home/username/compile/PtokaX/ mv /export/home/username/compile/compat-5.1r5 /export/home/username/compile/luasocket-2.0.2/ 5. Редактирование makefile в каталогах Lua и PtokaX Код vi /export/home/username/compile/lua-5.1.4/src/Makefile В строке 115 производится добавление параметров "-lsocket" и "-lresolv" Код solaris: $(MAKE) all MYCFLAGS="-DLUA_USE_POSIX -DLUA_USE_DLOPEN" MYLIBS="-lsocket -lresolv -lrt -ldl" Код vi /export/home/username/compile/PtokaX/makefile В строке 42 производится добавление параметров "-lsocket", "-lresolv" и "-lnsl" при этом "-llua5.1" заменяется на "-llua" Код $(CXX) -lpthread -lz -lrt -lsocket -lresolv -llua -lnsl -o PtokaX \ В строке 48 производится добавление библиотеки liblua.a ("/usr/local/lib/liblua.a") Код $(CURDIR)/tinyxml/tinyxml.a /usr/local/lib/liblua.a 6. Создание сборочного скрипта (с учетом того, что "/usr/local" основной каталог для установки Lua и luasocket) Код vi /export/home/username/compile/mk.sh Код #!/bin/sh LD_LIBRARY_PATH=/usr/sfw/lib:/usr/local/lib:/usr/ccs/lib export LD_LIBRARY_PATH PATH=$PATH:/usr/sfw/bin:/usr/local/bin:/usr/ccs/bin:/usr/ucb export PATH cd lua-5.1.4 gmake clean gmake solaris gmake solaris install cd .. cd luasocket-2.0.2 gmake clean gmake gmake install cd .. cd PtokaX cd tinyxml gmake clean gmake cd .. gmake clean gmake Запуск сборочного скрипта. Сборка завершена. PtokaX собран в каталоге "/export/home/username/compile/PtokaX" Действия по конфигурированию PtokaX для использования выполнены согласно документации разработчика PtokaX. 7. Проверка работы luasocket скриптом ls.lua Код cat ls.lua Код socket = require("socket") print(socket._VERSION) После запуска PtokaX в консоль выдается сообщение о работе luasocket Код LuaSocket 2.0.2 PtokaX DC Hub 0.4.1.2 running... Все вышеописанное справедливо и при сборке PtokaX 0.4.2.0 Собранный PtokaX работает на Solaris 10 x86 dchub://city-hub.ru Для работы с MySQL из PtokaX, используя Lua требуется сборка библиотеки luasql-mysql MySQL должен быть уже установлен (Шпаргалку по установке mysql в ОС Solaris 10 из пакетов взятых на sunfreeware.com я написал тут Исходники для сборки luasql-mysql Найти в Google и загрузить следующий архив: luasql-2.1.1.tar.gz так же потребуется (загружен ранее) compat-5.1r5.tar.gz Архивы скопированы: /export/home/username/compile/luasql-2.1.1.tar.gz /export/home/username/compile/compat-5.1r5.tar.gz Архивы распакованы в каталоги: /export/home/username/compile/luasql-2.1.1 /export/home/username/compile/compat-5.1r5 Вносятся изменения в конфигурационные файлы: /export/home/username/compile/luasql-2.1.1/config Отредактировать так как показано ниже: Пример файла config # Driver (leave uncommented ONLY the line with the name of the driver) T= mysql #T= oci8 #T= odbc #T= postgres #T= sqlite #T=sqlite3 # Installation directories # Default prefix PREFIX = /usr/local # System's libraries directory (where binary libraries are installed) LUA_LIBDIR= $(PREFIX)/lib # System's lua directory (where Lua libraries are installed) LUA_DIR= $(PREFIX)/share # Lua includes directory LUA_INC= $(PREFIX)/include # Lua version number (first and second digits of target version) LUA_VERSION_NUM= 501 # OS dependent LIB_OPTION= -shared -llua #for Linux #LIB_OPTION= -bundle -undefined dynamic_lookup #for MacOS X LIBNAME= $T.so COMPAT_DIR= ../compat-5.1r5 # Compilation parameters # Driver specific ######## MySQL DRIVER_LIBS= -L/usr/local/mysql/lib/mysql -lmysqlclient -lz DRIVER_INCS= -I/usr/local/mysql/include/mysql ######## Oracle OCI8 #DRIVER_LIBS= -L/home/oracle/OraHome1/lib -lz -lclntsh #DRIVER_INCS= -I/home/oracle/OraHome1/rdbms/demo -I/home/oracle/OraHome1/rdbms/public ######## PostgreSQL #DRIVER_LIBS= -L/usr/local/pgsql/lib -lpq #DRIVER_INCS= -I/usr/local/pgsql/include ######## SQLite #DRIVER_LIBS= -lsqlite #DRIVER_INCS= ######## SQLite3 #DRIVER_LIBS= -L/opt/local/lib -lsqlite3 #DRIVER_INCS= -I/opt/local/include ######## ODBC #DRIVER_LIBS= -L/usr/local/lib -lodbc #DRIVER_INCS= -DUNIXODBC -I/usr/local/include WARN= -Wall -Wmissing-prototypes -Wmissing-declarations -ansi -pedantic INCS= -I$(LUA_INC) CFLAGS= -fPIC -O2 $(WARN) -I$(COMPAT_DIR) $(DRIVER_INCS) $(INCS) $(DEFS) CC= gcc # $Id: config,v 1.8 2007/10/27 22:55:27 carregal Exp $ Кратко о внесенных в файл config изменениях: Выбран mysql Изменены пути к библиотекам В переменную "LIB_OPTION= -shared #for Linux" добавлен параметр "-llua" Выбран драйвер mysql и указаны пути к его библиотекам в 60-61 строках: Код DRIVER_LIBS= -L/usr/local/mysql/lib/mysql -lmysqlclient -lz DRIVER_INCS= -I/usr/local/mysql/include/mysql В переменную "CFLAGS= -O2 $(WARN) -I$(COMPAT_DIR) $(DRIVER_INCS) $(INCS) $(DEFS)" добавлен параметр "-fPIC" Далее отредактировать файл: /export/home/username/compile/luasql-2.1.1/Makefile В 26 строке изменения должны быть такими: Код src/$(LIBNAME): $(OBJS) MACOSX_DEPLOYMENT_TARGET="10.3"; $(CC) $(CFLAGS) -o $@ $(LIB_OPTION) $(OBJS) $(DRIVER_LIBS) export MACOSX_DEPLOYMENT_TARGET К МАКОС(и) отношения не имеет в случае сборки на Солярис, но как переменная участвует в процессе сборки. В консоли необходимо настроить переменные окружения: Код LD_LIBRARY_PATH=/usr/sfw/lib:/usr/local/lib:/usr/ccs/lib:/usr/local/mysql/lib/mysql export LD_LIBRARY_PATH PATH=$PATH:/usr/sfw/bin:/usr/local/bin:/usr/ccs/bin:/usr/ucb export PATH Далее сборка: Код cd luasql-2.1.1 gmake clean gmake gmake install Библиотека "mysql.so" установлена в каталог "/usr/local/lib/luasql" Проверить работу "libqsl-mysql" можно командой "lua /export/home/username/compile/luasql-2.1.1/tests/test.lua" с параметрами. |
|
|
![]()
Сообщение
#2
|
|
![]() Местная ТехПоддержка ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Администраторы Сообщений: 1 875 Регистрация: 18.7.2008 Из: Моск. Обл, г. королев, район Болшево Пользователь №: 221 Спасибо сказали: 220 раз ![]() |
У меня тока один вопрос - как вас на соляру занесло. Брендовое санковское железо?
|
|
|
![]()
Сообщение
#3
|
|
![]() Начинающий ![]() Группа: Пользователи Сообщений: 10 Регистрация: 24.1.2012 Пользователь №: 10 219 Спасибо сказали: 7 раз ![]() |
У меня тока один вопрос - как вас на соляру занесло. Брендовое санковское железо? Начал с брэндового на Sparc. Теперь на х86. С 2005 года на Солярке и сижу. Как серверная платформа устраивает. Для десктопа админа - Opensolaris. Насчет сборки скажу, что пакеты Lua собранные сообществами не поддерживают luasocket Поэтому описал свой удачный опыт сборки. Тем более, что виндовый сервер с хабом навернулся из-за атаки извне... Ну и пришлось на Солярке пересобрать PtokaX с нужными опциями. |
|
|
![]()
Сообщение
#4
|
|
![]() Местная ТехПоддержка ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Администраторы Сообщений: 1 875 Регистрация: 18.7.2008 Из: Моск. Обл, г. королев, район Болшево Пользователь №: 221 Спасибо сказали: 220 раз ![]() |
Цитата Теперь на х86. ну не знаю. На x86 систем хватает, а вот на спархках да, соляра рулит. Хотя она везде рулит. |
|
|
![]()
Сообщение
#5
|
|
![]() Начинающий ![]() Группа: Пользователи Сообщений: 10 Регистрация: 24.1.2012 Пользователь №: 10 219 Спасибо сказали: 7 раз ![]() |
ну не знаю. На x86 систем хватает, а вот на спархках да, соляра рулит. Хотя она везде рулит. К сожалению на Спарке PtokaX не работает. Спарки еще есть в запасе, правда 1998 года выпуска, но на них спокойно устанавливается и работает ОС Solaris 10 Однако, из-за особенности архитектуры процессоров Спарк, которая не учтена разработчиками PtokaX, заставить работать PtokaX на Спарке мне не удалось. Вот обсуждение по сборке PtokaX на Спарк, в котором я делился опытом... Но тогда я не собирался использовать PtokaX на Solaris x86 и не заботился о поддержке luasocket |
|
|
![]()
Сообщение
#6
|
|
![]() Местная ТехПоддержка ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Администраторы Сообщений: 1 875 Регистрация: 18.7.2008 Из: Моск. Обл, г. королев, район Болшево Пользователь №: 221 Спасибо сказали: 220 раз ![]() |
ясно. Хех, я помнится срался с автором птоки по аналогичному вопросу, как у вас описано в той теме. Сам же собирал птоку на power, arm и mips, но на linux-платформе
|
|
|
![]()
Сообщение
#7
|
|
![]() Продвинутый участник ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 113 Регистрация: 20.1.2009 Из: г. Москва САО Пользователь №: 1 889 Спасибо сказали: 37 раз ![]() |
Спасибо, так же подходит для Solaris 11 x86
|
|
|
![]()
Сообщение
#8
|
|
![]() Начинающий ![]() Группа: Пользователи Сообщений: 10 Регистрация: 24.1.2012 Пользователь №: 10 219 Спасибо сказали: 7 раз ![]() |
|
|
|
![]() ![]() |
Похожие темы
![]() |
Сейчас: 8.9.2024, 2:48 |