[Гайд] Компиляция MaNGOS под Linux на примере Ubuntu
Будем рассматривать на примере Ubuntu.
Надо будет поставить нужные пакеты. Код:
~# apt-get install build-essential gcc g++ cpp automake git-core autoconf make patch libmysql++-dev libtool libcurl4-openssl-dev libssl-dev grep binutils subversion zlibc libc6 nano mysql-server Работа с сорсами Теперь. Обычно я делаю так. У меня сорсы MaNGOS и ScriptDev2 в папке Sources/mangos и Sources/scriptdev2 компилю и работаю с сорсами уже в папке Sources/complile если хотите, чтобы сорсы были также как у меня, то делаем так Код:
mkdir ~/Sources && cd ~/Sources Код:
mkdir ~/Sources && cd ~/Sources Патчинг Сорсы мы слили... Теперь надо их пропатчить хотя бы скриптдевом //обычно на этом моменте я копирую сорсы в ~/Sources/compile Чтобы пропатчить скриптдевом, достаточно ввести следующее Код:
cd ~/Sources/mangos/ Код:
cd ~/Sources/compile патчим сорсы мангоса скриптдевом Код:
git am src/bindings/ScriptDev2/patches/MaNGOS-* Код:
git apply < src/bindings/ScriptDev2/patches/MaNGOS-* Далее. У нас есть некоторые патчи, чтобы пропатчить ими сорсы мангоса вводим Код:
cd mangos Код:
cd src/bindings/ScriptDev2 Компиляция Первое Код:
autoreconf -fvi && mkdir objdir && cd objdir Код:
../configure --prefix=/opt/mangos --sysconfdir=/opt/mangos/etc --enable-cli --enable-ra --datadir=/opt/mangos Код:
make Цитата:
Код:
make install и так у нас имееться в папке /opt/mangos сервачок. надо нам настроить конфиги Код:
cp etc/mangosd.conf.dist etc/mangosd.conf Создаем необходимые папки: ./mangos/maps ./mangos/dbc ./mangos/vmaps Экстрактит только под виндой, кидаем экстрактор в папку с ВоВом и запускаем распаковку dbc (~45-50M) maps (~1G) vmaps (~2-1G в зависимости от оптимизации). Далее закачиваете файлы на вашу систему (посредством ftp, smb или nfs) и копируете в соответствующие папки Работа с базой данных Создаем базы Код:
~# mysql -p'Пароль' < mangos/sql/create_mysql.sql Код:
~# mysql -p'пароль' mangos < mangos/sql/mangos.sql для заселения берем в моем примере базу YTDB, хотя есть и UDB и другие. Изменим реалмлист Код:
mysql -u root -p Запуск я создал в /путь/до/папки/с/сервером/bin/ 2 скрипта mangos.sh Код:
#!/bin/sh Код:
#!/bin/sh Код:
chmod +x mangos.sh && chmod +x realm.sh даем ему права на запуск Код:
chmod +x start Код:
screen -AmdS world /путь/до/папки/с/сервером/bin/mangos.sh Код:
./start Код:
screen -ls ЗЫ: Предложения по дополнению мана приветствуються Порты Git и Subversion Код:
$ cat /etc/services | grep Git |
для ускорения компиляции (у кого более 1 ядра)
PHP код:
PHP код:
|
Народ,подскажите в чем проблема может быть,пробую скачать с ГИТа и получаю:
Код:
Initialized empty Git repository in /home/syrex/Sources/mangos/.git/ |
Цитата:
|
Цитата:
|
Цитата:
|
Стоп,тут скорей всего у меня порт закрыт.
На какой порту гит работает ? |
Код:
$ cat /etc/services | grep Git |
Может немного не в тему.
Но Пингвинов советую скачать тут http://mirror.yandex.ru/ для новичков рекомендую Ubuntu (щас постораюсь найти лентяй-скрипт для авто установки), а для тех кто хочет углубиться в изучения О.С. и сервер с отличной работоспособностью, + наилучшем соотношением онлайн железо советую Gentoo. |
Ошибка конфгурации
OS: Debian
Mangos: 9541 (Каратель + 3 доп. патча) Вариант 1. Код:
cd mangos Код:
configure: creating ./config.status Код:
cd mangos Код:
configure.ac:36: error: possibly undefined macro: AC_MSG_ERROR |
Код:
git apply < src/bindings/ScriptDev2/patches/MaNGOS-* |
всё равно вот это получаю =\
Код:
configure: creating ./config.status Добавлено... Чистые исходники без SD2 Код:
autoreconf -fvi |
Код:
dos2unix configure.ac |
Вроде при скачивани с репозитария на Linux-е "кодировки" должны автоматом подгоняться =\
В любом случае, спасибо, порпобую так сделать. |
Когда пытаюсь выполнить команду autoreconf -fvi && mkdir objdir && cd objdir
Получаю пачку вот таких ахтунгов libtoolize: can not copy `/usr/share/aclocal/ltversion.m4' to `m4/' В чём может быть проблема.. |
а с правами все нормально? или с пакетами?
к примеру под последними ревами все путем Цитата:
|
Цитата:
Код:
drwxrwx--- 2 root plugdev 65536 2010-03-08 13:56 m4 root@alioth:/windows/Sources/compile/mangos# autoreconf -fvi autoreconf: Entering directory `.' autoreconf: configure.ac: not using Gettext autoreconf: running: aclocal --force -I m4 autoreconf: configure.ac: tracing autoreconf: configure.ac: adding subdirectory dep/ACE_wrappers to autoreconf autoreconf: Entering directory `dep/ACE_wrappers' autoreconf: running: libtoolize --install --copy --force libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, `aux_config'. libtoolize: can not copy `/usr/share/libtool/config/config.guess' to `aux_config/' libtoolize: can not copy `/usr/share/libtool/config/config.sub' to `aux_config/' libtoolize: can not copy `/usr/share/libtool/config/install-sh' to `aux_config/' libtoolize: can not copy `/usr/share/libtool/config/ltmain.sh' to `aux_config/' libtoolize: putting macros in AC_CONFIG_MACRO_DIR, `m4'. libtoolize: can not copy `/usr/share/aclocal/libtool.m4' to `m4/' libtoolize: can not copy `/usr/share/aclocal/ltoptions.m4' to `m4/' libtoolize: can not copy `/usr/share/aclocal/ltsugar.m4' to `m4/' libtoolize: can not copy `/usr/share/aclocal/ltversion.m4' to `m4/' libtoolize: can not copy `/usr/share/aclocal/lt~obsolete.m4' to `m4/' autoreconf: libtoolize failed with exit status: 1 |
Цитата:
|
Цитата:
root@alioth:/windows/Sources/compile/mangos# apt-get install libtool Чтение списков пакетов... Готово Построение дерева зависимостей Чтение информации о состоянии... Готово Уже установлена самая новая версия libtool. |
С горем пополам вроде бы конфигурация прошла
делаю make и получаю вот это... mixnsk@alioth:/windows/Sources/compile/mangos/objdir$ make cd .. && /bin/bash /windows/Sources/compile/mangos/missing --run automake-1.11 --gnu src/Makefile cd . && /bin/bash ./config.status src/Makefile config.status: creating src/Makefile Making all in tools /bin/bash: line 17: cd: tools: No such file or directory make: *** [all-recursive] Ошибка 1 |
Вложений: 1
Вот скрипт Alex Blade, с авто установкой всех программ и самого сервера, попробуйте (судя по apt-get install как раз под вашу О.С.) там все очень понятно расписано и при желании легко переписать под себя.
|
За скрипт спасибо... Вообщем убил пока часов пять своей жизни на эксперименты))
Пути подправил в скрипте на то как мне удобно. Но тут есть свои косяки 1) Хоть убей не определяется ревизия скриптдева... по сути она не нужна просто получаем папку с названием ревизии ядрышка. Это не притично 2) Исходники скриптдева качает а вот обновлять их не хочет... опять же не критично скомпилилось бы хотяб так 3) Косяк был с путями скриптдева. они имели вид Mangos-Sources/scriptdev2/scriptdev2/ из-за этого там был рамс с патчингом, но вроде исправил. 4) Ну и в конце концов не компилится всё равно... конфигурация заканчивается ошибкой config.status: creating dep/include/Makefile config.status: creating dep/lib/Makefile config.status: creating dep/src/Makefile config.status: creating dep/src/g3dlite/Makefile config.status: creating dep/src/sockets/Makefile config.status: creating dep/src/zlib/Makefile config.status: creating dep/src/gsoap/Makefile config.status: creating dep/Makefile config.status: creating dep/tbb/Makefile config.status: creating doc/Doxyfile config.status: creating doc/Makefile config.status: error: cannot find input file: `Makefile.in' И вот и всё... Можно узнать где он его найти неможет или откуда скопировать... |
Цитата:
|
Цитата:
|
Цитата:
|
Возможно, библиотеки повреждены у тебя, можешь дать доступ по ssh? я попробую помочь.
Если есть желание пиши в л.с. |
Цитата:
Цитата:
И еще измени (-3) на (-4) там уже 4 цифры в номере |
при выполнении конфигурации выдает вот это:
Код:
Configuration of MaNGOS 0.16.0 is now complete. ОС Debian 5.0.4 Ядро 9385 |
Обновление при помощи git
А может кто-нить. написать Мануал на обновление сервера при помощи git'a под Linux? И вообще существует ли легкий способ обновления сервера?
|
Цитата:
|
Хм..:mda:
вот я в Линуксе новичок... У меня второй день стоит Ubuntu 9.10 x64. Когда я начну более менее разбираться в линуксе, какой дистрибутив с упором на производительность мангоса вы бы мне посоветовали? или достаточно будет сменить сборку ОС с dektop edition на server edition (можете не прежупреждать, я знаю там нет графической оболочки)? Цитата:
:yes3: И еще, если ставишь второй реалм, как поступить? В другую папку установить? если да, то какой командой. |
Цитата:
Я одно время держал сервер на рабочей машине, на десктопной кубунте, и при этом играл с этой же машины с людьми из локальной сети, при небольшом онлайне 10+ не замечались какие-либо проблемы :) (Думаю и с большим онлайном бы работало, но у меня сеть небольшая :) ) Если вы уже задумали поднять статический сервер, с http и пр. то лучше будет поставить серверную версию. Цитата:
Сам не поднимал 2 реалма, но думаю достаточно будет собрать 2е ядро, с отличным путем, просто получается что 2 mangosd используют 1н realmd, и не забыть про отдельные базы, как минимум для чаров :) |
Замечательный рестартер. Умеет ловить краши, и заливать их на сервисы типа pastle.com. Работает как под мангосом, так и под тринити :)
http://trinity.elegosproject.org/#whatisit2 |
У меня такая трабла:
Код:
make[3]: Entering directory `/server/Mangos-Sources/compile/compile-9825-/objdir/src/game' |
Цитата:
Хм, а можете дать название аналогичных пакетов на RedHat дистрибутивах? В частности, на CentOS 5.4:swoon2: |
Цитата:
Ну и некоторые программы идут "пачками" в пакетах, и обычно стоят уже в системе, ибо первой необходимости они. |
Кстати, нужно ещё поставить libtbb-dev, а то будет ошибка при компиле.
|
ремени суток, ядро под OC Linux OpenSuse 10.3 получилось собрать, ревизия 9978. Но походу дела понял, что прохлопал очень важный момент "пачканье" ядра ScriptDev2. Почему грешу на это, потому что ни один босс не имеет EventAI скрипта ... Поясните где ошибся плз ...
При этом скачивая svn-ом сорц ScriptDev2 его версия 1700, а патч в ней -> MaNGOS-9519-ScriptDev2.patch ( я так понял для 9519 ревизии ядра, и весит он 2 килобайта). Результат - при компиляции и инсталяции никаких ошибок, но в базах ни один Босс или НПС не проскриптован. И еще меня очень заинтересовала фраза Сорсы мы слили... Теперь надо их пропатчить хотя бы скриптдевом Чем в принципе нужно патчить ? (просто сведения отрывочные, кто пишет - накатываем 1, кто 50+ вливает, потерялся я ....) Плз объясните как для "жирафа". ХЕЛП !!! |
Вообще руководство для случая "я в Linux новичок" крайне запутано...
Для получения работоспособного ванильного (читай, не модифицированного) ядра и скриптов достаточно применить MaNGOS-9519-ScriptDev2.patch и провести компиляцию. Описание про "patch -p1 -1 < patch.patch" и т.д. предназначено только для тех, у кого есть свои собственные патчи для ядра/SD2, которых у Вас, как я понял, не наблюдается. Теперь по поводу скриптов боссов. В creature_template есть колонка ScriptName. SD2 при инициализации регистрирует скрипты, соответственно вывод простой: если в базе скрипт указан и в SD2 он есть, то будет использоваться. EventAI в данном случае ни при чем. |
|
Текущее время: 17:50. Часовой пояс GMT +3. |
ru-mangos.ru - Русское сообщество MaNGOS