Сборка PtokaX в Fedora Linux, openSUSE, Краткий HOW-TO |
Здравствуйте, гость ( Вход | Регистрация )
Сборка PtokaX в Fedora Linux, openSUSE, Краткий HOW-TO |
6.12.2009, 22:54
Сообщение
#1
|
|
InstaHub dev. Группа: Пользователи Сообщений: 91 Регистрация: 25.2.2009 Пользователь №: 2 377 Спасибо сказали: 10 раз |
ты сам себе ответил скажем так, на этой твари всё остальное пашет без проблем. то ли у них LiveCD палёный, то ли что... в общем в итоге x64 я вздрючил, разве что это был netinst. он правда тоже при старте тупил долго (черный экран и курсор мигает, никаких признаков жизни/смерти), потом очухался. непривычно, ну да ладно, чай, и не такое ставили. большой разницы в сборке PtokaX я не узрел. в общем в итоге образовался такой кулинарный рецепт: 1. ставим gcc: Код sudo yum install gcc-c++ распаковали птоху, попробовали собрать. сломались на tinyxml. качаем его с sourceforge: распаковываем. берем из него файлы Код tinyxml.{cpp,h} tinystr.{cpp,h} tinyxmlparser.cpp tinyxmlerror.cpp и пихаем их в папку PtokaX/tinyxml/src (она там уже есть). далее заходим в PtokaX/tinyxml и там говорим make. оно собирается. теперь ставим lua-шные пакеты и ещё хидеры для библиотеки zlib. если походить по инету, можно найти вот сюда и по очереди скачать там вот такие пакеты (искать их соответственно по именам lua, lua-devel и zlib-devel): Код lua-5.1.2-1.el5.kb.x86_64.rpm lua-devel-5.1.2-1.el5.kb.x86_64.rpm zlib-devel-1.2.3-3.x86_64.rpm разумеется, для 32-битной версии надо качать 32-битные. после установки этих пакетов Код rpm -ihv lua*.rpm zlib-devel*.rpm заходим в папку PtokaX и говорим Make. компиляция успешно завершается, на линковке всё ломается. нужно подправить Makefile и заменить в нем Код -llua5.1 на Код -llua-5.1 Дальше всё собирается без проблем и перед нами готовый бинарник. |
|
|
5.12.2009, 14:49
Сообщение
#2
|
|
InstaHub dev. Группа: Пользователи Сообщений: 91 Регистрация: 25.2.2009 Пользователь №: 2 377 Спасибо сказали: 10 раз |
Я смотрю, редхатовские изделия не особо популярны среди хабостроителей.
Вашему вниманию предлагается HOW-TO по сборке PtokaX в Fedora Linux. Инструкция практически так же сработает (должна!) на openSUSE. Для CentOS или RHEL инструкция тоже работает, но с изменениями (см. ниже в этой теме). Проверялось всё это на Fedora 12 (Constantine). Здесь приводится пошаговая инструкция, в конце - итоговые diff-ы файлов, которые нужно подогнуть. Шаг 1. Скачиваем, распаковываем: Код tar -xvf 0.4.1.1-posix-src.tgz Шаг 2. Образовалась папка PtokaX. Заходим и пытаемся собрать: Код cd PtokaX make Шаг 3 gcc нам говорит что-то про tinyxml. ага, берем в руки yum и ставим два пакета (о чудо, они называются именно так, мы угадали!) и снова запускаем make (пакеты ставим либо через sudo, либо под root-ом, либо через гуйню) Код sudo yum install tinyxml tinyxml-devel make Шаг 4 На этот раз оно ругается на строчку в файле src/stdinc.h. говорит что нету такого файла - tinystr.h. Убираем эту строчку нах (строка 84 в оригинальном файле), и снова говорим make. После этого оно ругнется на makefile, скажет что нету файла tinyxml/tinyxml.a. Смело правим makefile и убираем из строки 47 упоминание tinyxml в самом конце строки (см. diff ниже) Шаг 5. Снова make, теперь оно ругается про что-то связанное с lua. Берем yum и говорим Код sudo yum install lua-devel make Шаг 6 Ура, оно скомпилировалось, но сломалось на линковке, будет ругаться на lua5.1. Открываем makefile на строке 42, и заменяем Код -llua5.1 на Код -llua-5.1 -ltinyxml И снова make. Ураа!! Всё собралось, перед нами свеженький ещё не остывший бинарник PtokaX. Итого: diff -ub makefile.original makefile: Код --- makefile.original 2009-12-05 14:14:15.953003363 +0300 +++ makefile 2009-12-05 14:14:38.150502577 +0300 @@ -39,13 +39,12 @@ $(CURDIR)/obj/LuaRegManLib.o $(CURDIR)/obj/LuaScript.o $(CURDIR)/obj/LuaScriptManager.o $(CURDIR)/obj/LuaScriptManLib.o $(CURDIR)/obj/LuaSetManLib.o $(CURDIR)/obj/LuaTmrManLib.o $(CURDIR)/obj/LuaUDPDbgLib.o $(CURDIR)/obj/ProfileManager.o \ $(CURDIR)/obj/PtokaX.o $(CURDIR)/obj/pxstring.o $(CURDIR)/obj/RegThread.o $(CURDIR)/obj/ResNickManager.o $(CURDIR)/obj/ServerManager.o $(CURDIR)/obj/ServerThread.o $(CURDIR)/obj/serviceLoop.o $(CURDIR)/obj/SettingManager.o \ $(CURDIR)/obj/TextFileManager.o $(CURDIR)/obj/UdpDebug.o $(CURDIR)/obj/UDPThread.o $(CURDIR)/obj/User.o $(CURDIR)/obj/utility.o $(CURDIR)/obj/ZlibUtility.o - $(CXX) -lpthread -lz -llua5.1 -lrt -o PtokaX \ + $(CXX) -lpthread -lz -llua-5.1 -ltinyxml -lrt -o PtokaX \ $(CURDIR)/obj/ClientTagManager.o $(CURDIR)/obj/colUsers.o $(CURDIR)/obj/DcCommands.o $(CURDIR)/obj/DeFlood.o $(CURDIR)/obj/eventqueue.o $(CURDIR)/obj/globalQueue.o $(CURDIR)/obj/hashBanManager.o $(CURDIR)/obj/hashUsrManager.o \ $(CURDIR)/obj/hashRegManager.o $(CURDIR)/obj/HubCommands.o $(CURDIR)/obj/IP2Country.o $(CURDIR)/obj/LanguageManager.o $(CURDIR)/obj/LuaBanManLib.o $(CURDIR)/obj/LuaCoreLib.o $(CURDIR)/obj/LuaIP2CountryLib.o \ $(CURDIR)/obj/LuaProfManLib.o $(CURDIR)/obj/LuaRegManLib.o $(CURDIR)/obj/LuaScript.o $(CURDIR)/obj/LuaScriptManager.o $(CURDIR)/obj/LuaScriptManLib.o $(CURDIR)/obj/LuaSetManLib.o $(CURDIR)/obj/LuaTmrManLib.o \ $(CURDIR)/obj/LuaUDPDbgLib.o $(CURDIR)/obj/ProfileManager.o $(CURDIR)/obj/PtokaX.o $(CURDIR)/obj/pxstring.o $(CURDIR)/obj/RegThread.o $(CURDIR)/obj/ResNickManager.o $(CURDIR)/obj/ServerManager.o $(CURDIR)/obj/ServerThread.o \ - $(CURDIR)/obj/serviceLoop.o $(CURDIR)/obj/SettingManager.o $(CURDIR)/obj/TextFileManager.o $(CURDIR)/obj/UdpDebug.o $(CURDIR)/obj/UDPThread.o $(CURDIR)/obj/User.o $(CURDIR)/obj/utility.o $(CURDIR)/obj/ZlibUtility.o \ - $(CURDIR)/tinyxml/tinyxml.a + $(CURDIR)/obj/serviceLoop.o $(CURDIR)/obj/SettingManager.o $(CURDIR)/obj/TextFileManager.o $(CURDIR)/obj/UdpDebug.o $(CURDIR)/obj/UDPThread.o $(CURDIR)/obj/User.o $(CURDIR)/obj/utility.o $(CURDIR)/obj/ZlibUtility.o #******************************************************************************* # Files to compile Итого: diff -ub src/stdinc.h.original src/stdinc.h: Код --- src/stdinc.h.original 2009-12-05 14:17:56.804386438 +0300 +++ src/stdinc.h 2009-12-05 14:18:28.409772369 +0300 @@ -81,7 +81,6 @@ #include <syslog.h> #endif #include <tinyxml.h> -#include <tinystr.h> #ifdef _WIN32 #include <psapi.h> #include <io.h> Последние два патча в приложении. ptokax_src_patches.zip ( 896 байт ) Кол-во скачиваний: 32
Причина редактирования: про центос - ложь и провокация :)
|
|
|
5.12.2009, 15:31
Сообщение
#3
|
|
Местная ТехПоддержка Группа: Администраторы Сообщений: 1 875 Регистрация: 18.7.2008 Из: Моск. Обл, г. королев, район Болшево Пользователь №: 221 Спасибо сказали: 220 раз |
Цитата на CentOS (он же по сути дела FC6 - тестовое нестабильное корыто) Что вы говорите? Ставнивать центос и лютый тестинг под названием Федора? Кстати, интересует вопрос - что делаю эти патчи. Описание, пожалуйсто. Ну и да, tinyxml tinyxml-devel в RHEL нету, так что забираем с sourceforge Ну и таки да - не катит оно твоим способом под центосом. Начнем хотя бы с того, что в центосе луа статическая бибилиотека /usr/lib/liblua.a и по идее -llua5.1 не катит, надо инклудить этот файл, то есть добавить строчку после Код $(CURDIR)/tinyxml/tinyxml.a \ /usr/lib/liblua.a Однако птока не собирается и после этого, говорит Код /usr/lib/liblua.a(loadlib.o): In function `ll_loadfunc':
(.text+0x947): undefined reference to `dlsym' /usr/lib/liblua.a(loadlib.o): In function `ll_loadfunc': (.text+0x954): undefined reference to `dlerror' /usr/lib/liblua.a(loadlib.o): In function `ll_loadfunc': (.text+0xa2c): undefined reference to `dlopen' /usr/lib/liblua.a(loadlib.o): In function `ll_loadfunc': (.text+0xa41): undefined reference to `dlerror' /usr/lib/liblua.a(loadlib.o): In function `gctm': (.text+0x104e): undefined reference to `dlclose' collect2: выполнение ld завершилось с кодом возврата 1 make: *** [PtokaX] Ошибка 1 |
|
|
5.12.2009, 18:50
Сообщение
#4
|
|
InstaHub dev. Группа: Пользователи Сообщений: 91 Регистрация: 25.2.2009 Пользователь №: 2 377 Спасибо сказали: 10 раз |
Что вы говорите? Ставнивать центос и лютый тестинг под названием Федора? 1) если уж цитируешь, тогда не искажай оригинальный текст. а то можно подумать что про корыто - это мои слова. 2) Ждать пока RH разродится новой версией CentOS, обычные пользователи не будут, и мой опыт говорит что FC работает не сильно хуже супер-стабильных энтерпрайзов, которые по сути просто не развиваются. 3) зачем простому пользователю эта супер-стабильность, когда более современные ОС обеспечивают не худшую стабильность при гораздо большем функционале? (это всё был оффтоп, не будем его развивать) Кстати, интересует вопрос - что делаю эти патчи. Описание, пожалуйсто. что делают патчи, объяснять не надо, поскольку это написано в них самих. они делают ровно то, что выше предлагалось проделать руками для понимания сути дела - меняют makefile и stdinc.h. Для сборки под FC7..12 и opensuse инструкция годится, адаптировать ее для CentOS тоже можно, просто у меня его сейчас нет под рукой. главное, чтобы народ не качал неизвстно откуда хрен знает какие бинарники... |
|
|
5.12.2009, 20:27
Сообщение
#5
|
|
Местная ТехПоддержка Группа: Администраторы Сообщений: 1 875 Регистрация: 18.7.2008 Из: Моск. Обл, г. королев, район Болшево Пользователь №: 221 Спасибо сказали: 220 раз |
Цитата 2) Ждать пока RH разродится новой версией CentOS, обычные пользователи не будут, и мой опыт говорит что FC работает не сильно хуже супер-стабильных энтерпрайзов, которые по сути просто не развиваются. К сожалению имею список "историй неудач", связанных с федориной, собственно поэтому и корыто оно тестовое. Цитата современные ОС читаем возможности RHEL последнего =). Чего тебе в центосе на хватает то? Мне просто интересно. Цитата адаптировать ее для CentOS тоже можно, просто у меня его сейчас нет под рукой. нету под рукой - не говори про то, что подходит. Не подходит она. Мне сейчас пришлось пересобирать луа, чтобы все взлетело. Несложно кстати, даже rpm-ки получились, правда под powerpc Цитата главное, чтобы народ не качал неизвстно откуда хрен знает какие бинарники... а вот тут да, поддерживаю |
|
|
6.12.2009, 12:46
Сообщение
#6
|
|
InstaHub dev. Группа: Пользователи Сообщений: 91 Регистрация: 25.2.2009 Пользователь №: 2 377 Спасибо сказали: 10 раз |
1. Чего не хватает? хотя бы того что в 2.6.18, на котором живет RHEl 5.4, ещё нету поддержки EXT4 (только experimental, сколь я помню) и ещё массы других вещей, которые давно уже стабилизированы для практического применения большинством юзверей.
2. насчет неудач - ну хз, может быть готовили плохо, повар не выспался и тд ? У федор есть удачные релизы, есть не очень. Но те, на которые уже накатились все апдейты, уж в серверном-то исполнении работают более чем прилично. 3. центос 5.4 уже скачал, щас поставлю и напишу FAQ для него. заодно узнаем, что там нужно собирать а что нет... UPD: 64-битный под вм-тварью просто не завелся (чего не скажешь о других 64-битных линухах), пробуем i386... |
|
|
6.12.2009, 13:39
Сообщение
#7
|
|
Местная ТехПоддержка Группа: Администраторы Сообщений: 1 875 Регистрация: 18.7.2008 Из: Моск. Обл, г. королев, район Болшево Пользователь №: 221 Спасибо сказали: 220 раз |
Цитата вм-тварью ты сам себе ответил Цитата хотя бы того что в 2.6.18 enterprise же! ну и да - ext4 там уже вообще то есть, однако у ext4 есть проблемы определенные, по которым его, как и btrfs не будет в enterprise. Линус вообще-то писал про это. LURK MORE! Для файлопомоек катит xfs, которая шустрее всех этих ващих ext. А хочешь скорости - юзай ext2 |
|
|
7.12.2009, 0:02
Сообщение
#8
|
|
Местная ТехПоддержка Группа: Администраторы Сообщений: 1 875 Регистрация: 18.7.2008 Из: Моск. Обл, г. королев, район Болшево Пользователь №: 221 Спасибо сказали: 220 раз |
ну ты бы ссылочки на пакеты добавил бы Я, собственно не искал пакеты, а просто сам собрал. Так что я не вру, что в стандарте в центосе хреновый lua %-)
|
|
|
9.12.2009, 21:44
Сообщение
#9
|
|
InstaHub dev. Группа: Пользователи Сообщений: 91 Регистрация: 25.2.2009 Пользователь №: 2 377 Спасибо сказали: 10 раз |
ну ты бы ссылочки на пакеты добавил бы Я, собственно не искал пакеты, а просто сам собрал. Так что я не вру, что в стандарте в центосе хреновый lua %-) Добавим, не вопрос. заодно я напишу инструкции по сборке Lua из сырцов, точнее из srpm-ов. Хотя это уже гентовщина какая-то Я кстати на досуге проверил ещё одну вещь и понял, что в C5.4 не хватает нового gcc 4.4.2. Прога, собранная новым компилятором с идентичными опциями, обогнала свой аналог на старом гцц процентов примерно на 20. Причем ничего хитрее STL она не использует. А нового компилятора в центосе не будет, увы, ещё очень долго. потому что он скорее всего тупо не соберется на новом |
|
|
9.12.2009, 22:10
Сообщение
#10
|
|
Местная ТехПоддержка Группа: Администраторы Сообщений: 1 875 Регистрация: 18.7.2008 Из: Моск. Обл, г. королев, район Болшево Пользователь №: 221 Спасибо сказали: 220 раз |
Цитата нового gcc 4.4.2 еще раз повторюсь - это тебе не федора, куда самое последнее пихают. Пока RedHat не решит, что он стабилен - его там не будет. DIXI |
|
|
10.12.2009, 9:55
Сообщение
#11
|
|
InstaHub dev. Группа: Пользователи Сообщений: 91 Регистрация: 25.2.2009 Пользователь №: 2 377 Спасибо сказали: 10 раз |
Как и обещалось, инструкция "для настоящих пацанов" , которые всё собирают из исходников.
А именно, env таков: OS=CentOS 5.4 Lua=из сырцов Качаем сырцы Lua и растариваем их (а люди, которые не познали силу wget-а, ставят и его заодно): Код wget http://www.lua.org/ftp/lua-5.1.4.tar.gz tar -xvf lua-5.1.4.tar.gz Ставим два пакета, которых у меня на системе почему-то не оказалось: Код sudo yum install ncurses-devel readline-devel Дальше заходим в образованную выше папочку Lua-5.1.4 и говорим там Код make linux sudo make install Ура, теперь можно собирать птоху. Подхачиваем makefile и на этот раз убираем там в строке линковки (строка 42) упоминание линковки с -llua-5.1, а в строку 48 после tinyxml.a дописываем через пробел вот это: /usr/local/lib/liblua.a Ещё в строку линковки дописываем -ldl, а то потом будет ругаться на функциии dlclose, dlopen... Итого: diff -ub makefile.original makefile: см. приложение к посту: makefile.zip ( 648 байт ) Кол-во скачиваний: 16 После всего этого безобразия говорим make и получаем готовую птоху. |
|
|
Похожие темы
Тема | Ответов | Автор | Просмотров | Последнее сообщение | |
---|---|---|---|---|---|
Перехват выполнения бана(ов) PtokaX Возможно ли? |
0 | MIKHAIL | 1 198 | 1.8.2022, 10:31 Посл. сообщение: MIKHAIL | |
Установка хаба PtokaX 0.5.2.2 на роутер под прошивкой LEDE 2017 DC++ сервер в роутере |
15 | мамин_парень | 18 159 | 29.1.2021, 8:02 Посл. сообщение: мамин_парень | |
ВАЖНО: PtokaX 0.5.0.1 Mod Модификация PtokaX от alex82 |
112 | alex82 | 108 087 | 13.9.2019, 17:57 Посл. сообщение: CyberGhost404 | |
PtokaX 0.5.2.1 Mod Модификация PtokaX от alex82 |
17 | alex82 | 22 176 | 22.8.2019, 12:27 Посл. сообщение: SergSat | |
Ptokax 0.5.0.2 Crash-14.11.2014-01.11.48.log |
8 | Drakula | 13 342 | 6.6.2019, 15:09 Посл. сообщение: avalon | |
Прошивка LEDE 17.01.4 для 740n v4,v5 c PtokaX 0.5.0.1 Готовая прошивка с поддержкой сервера DC++, все влезло в 4мб )) |
1 | мамин_парень | 6 376 | 10.3.2018, 15:29 Посл. сообщение: мамин_парень | |
Ptokax, opendchub (DC++) - Сборка пакета для OpenWRT, LEDE 2017 Пакеты хабов для прошивки роутера |
0 | мамин_парень | 5 557 | 29.8.2017, 7:00 Посл. сообщение: мамин_парень | |
Антиреклама для PtokaX API1, API2 | Скрипт антирекламы для чата и лички |
39 | Damaks | 56 610 | 9.8.2017, 14:26 Посл. сообщение: Ksan | |
Установка Linux хаба DC++ в ANDROID Теперь ты видел все )) |
0 | мамин_парень | 5 747 | 5.8.2017, 9:49 Посл. сообщение: мамин_парень | |
ВАЖНО: PtokaX Описание. Публикация новых версий |
94 | Svyat | 186 096 | 11.4.2017, 23:08 Посл. сообщение: Alexey | |
PtokaX в OpenWrt (Linux) Ребята как собрать под эту систему? |
21 | мамин_парень | 29 451 | 10.4.2017, 15:19 Посл. сообщение: мамин_парень | |
Linux хаб OpenDCHub под Android Есть кто сможет передлать из программистов форума |
7 | Sezam | 9 623 | 9.1.2017, 15:42 Посл. сообщение: Saymon21 | |
Автозапуск PtokaX на Rassberry Pi? Не могу запустить |
13 | Sezam | 15 483 | 7.11.2016, 9:14 Посл. сообщение: Saymon21 | |
Доска обьявлений для Ptokax 0.5.0.x | 3 | NightmareUA | 8 450 | 11.8.2016, 16:22 Посл. сообщение: Ksan | |
FreeBSD 11.0 & PtokaX Проблема подключения в клиенте PtokaX по имени |
5 | nsd7 | 8 925 | 22.4.2016, 3:47 Посл. сообщение: Saymon21 |
|
Сейчас: 23.11.2024, 0:25 |