Всем привет, я достаточно недавно посещаю сей форум, поэтому можно сказать что я больше ридер-потребитель . Попробую совершить общественнополезное дело и написать краткий мануальчик по компиляции Mangos под Linux c использованием git. Я не буду описывать какие либы надо поставить, честно скажу я не помню их все наперечет, да и в wiki очень замечательный список есть. Весь процесс сборки вел под Ubuntu 8.04 LTS. Не ругайтесь если что не так, я и в линуксе новичок почти что Итак поехали:
1. Ставим git:
Код:
sudo apt-get install git-core git
2. Создаем в домашней папке место для хранения всех исходников
Код:
mkdir ~/Mangos-Sources
cd ~/Mangos-Sources
3. Создаем в папке Mangos-Sources три папочки: mangos, script и compile. В папку mangos мы загрузим исходники mangos из git-хранилища,
в папку script загрузим исходники ScriptDev2 из svn-репозитария, а в папку compile будем копировать файлы исходников, готовые к сборке
без служебных файлов git'а и svn'а.
Код:
mkdir mangos
mkdir script
mkdir compile
4. Из папки Mangos-Sources запускаем загрузку исходников Mangos:
Код:
git clone git://github.com/mangos/mangos.git
5. Отсюда же из папки Mangos-Sources выполняем загрузку исходников ScriptDev2:
Код:
svn co http://scriptdev2.svn.sourceforge.net/svnroot/scriptdev2 ~/Mangos-Sources/script
6. Имеем загруженные исходники, теперь нам надо применить патч, для того чтобы Mangos собирался со ScriptDev2, идем в папку mangos,
что находится в Mangos-Sources и запускаем применение патча, вместо YYYY-MM-DD необходимо поставить дату релиза Mangos'а например у меня это было 2008-10-28:
Код:
git am < ../script/patches/MaNGOS-2008-10-28-ScriptDev2.patch
7. Теперь мы получили пропатченные на компиляцию со ScriptDev2 исходники Mangos и, непосредственно, сами исходники ScriptDev2,
Для удобства переложим их в папку compile без служебных файлов git'а и svn'а, для этого сделаем в папке Mangos-Sources скрипт и назовем
его к примеру getcleansources.sh, дадим ему права на выполнение и напишем внутри следующее:
Код:
rm -rf ~/Mangos-Sources/compile/*
cp ~/Mangos-Sources/mangos/* ~/Mangos-Sources/compile -f -r
mkdir ~/Mangos-Sources/compile/src/bindings/ScriptDev2
cp ~/Mangos-Sources/script/* ~/Mangos-Sources/compile/src/bindings/ScriptDev2 -f -r
cd ~/Mangos-Sources/compile
8. Запускаем скрипт из папки Mangos-Sources:
Код:
./getcleansources.sh
9. После выполнения скрипта мы оказались в папке compile, где лежат чистые пропатченные исходники, выполняем команду:
Код:
autoreconf -fvi
10. Теперь создаем папку Objdir, в которой будет идти непосредственно сборка и переходим в нее:
Код:
mkdir objdir
cd objdir
11. Конфигурируем и собираем наш Mangos, предполагаем, что готовый сервер должен лежать в домашней папке, в папке Mangos:
Код:
../configure --prefix=~/Mangos --sysconfdir=~/Mangos/etc --with-python --enable-cli --enable-ra --datadir=~/Mangos
make
make install
12. Если все прошло удачно, то в домашней папке пользователя появилась папка Mangos, в которой лежат бинарники нашего сервера
Можно переходить к водным процедурам, то есть к установке базы
Надеюсь, что кому то смогу помочь!
С уважением, Алексей.
Для ленивых как и я сам обладателей Ubuntu, выкладываю скрипт для автоматической сборки Mangos + ScriptDev2 с чистых исходников последней редакции.
Что умеет скрипт:
- Проверяет нужные пакеты и устанавливает все что нужно для сборки
- Загружает исходники (или обновляет в случае наличия уже загруженных)
- Выполняет поиск нужного патча для сборки со ScriptDev2 и применяет его
- Выполняет реконфиг, запускает конфигурирование, сборку и установку сервера
Для исходных текстов в домашней папке пользователя создается папка Mangos-Source. В нее грузятся исходники Мангоса (mangos) и Cкриптов (scripts). Там же для реконфигурирования и сборки создается папка compile. Внутри папки compile создается папка compile-xxxx-yyy, где xxxx - ревизия Мангоса (из файла revision_nr.h), а yyy - ревизия Скриптов, внутри которой и выполняется конфигурирование и сборка сервера.
Для размещения готового сервера в домашней папке пользователя создается папка Mangos-Server. После окончания работы скрипта автоматической сборки внутри папки Mangos-Server создается папка mangos-xxxx-yyy, где xxxx - ревизия Мангоса (из файла revision_nr.h), а yyy - ревизия Скриптов, в которой размещаются бинарные файлы сервера. Конфигурирование исходником перед сборкой настроено так, чтобы все конфиги сервера хранились в папке Mangos-Server в подпапке config, дабы не приходилось каждый раз править конфиги. Плюс к этому все апдейты хранятся в папке Mangos-Server в подпапке sql.
В итоге каждый раз запуская скрипт, вы будете получать просто еще одну папку mangos-xxxx-yyy в случает изменения ревизий исходников (старые не удаляются). Сервер полученный в результате будет работать с теми же конфигами что и предыдущий. Новые апдейты будут просто дописываться папку Mangos-Server/sql.
Пример:
У Вас только что установленная Ubuntu.
Кидаем в домашнюю папку mangos_install.sh, даем ему права на выполнение и запускаем. Читаем подсказки - отвечаем на вопросы Y или N (да там собссно 2 всего). Ждем пока скомпилируется (можно курить, пить кофе, читать книгу, играть в вов, пока все это сделается).
Теперь смотрим в домашнюю папку ищем там Mangos-Server. Открываем и видим вот такую картину примерно:
config
mangos-7476-911
sql
Конфиги лежат в папке config, апдейты в sql, сами исполняемые в mangos-7476-911. Настраиваем конфиги, накатываем апдейты.
В случае обновления ревизий - делаем бэкап баз и просто еще раз запускаем скрипт и ждем окончания работы. В папке Mangos-Sources ищем папку mangos-xxxx-yyy с новыми номерами ревизий. Конфиги править уже не надо (если их формат не поменялся), просто накатываем новые апдейты. Если что либо не поперло, возвращаем базы из дампов и просто работаем с предыдущей версией, она ж у нас никуда не делась - там же в папке Mangos-Sources и лежит.
В общем кому надо пробуйте! Сильно не пинать и глупые вопросы не задавать! Я не планировал создавать автосборщик и автоустановщик, скрипт помогает просто нажимать меньше кнопок. А матчасть все равно надо знать. Если что либо не ясно - откройте скрипт и посмотрите сами - там все очень просто!
http://getmangos.ru/forum....7284471