• Страница 1 из 1
  • 1
Архив - только для чтения
Модератор форума: andycrowz  
Форум » Корзина форума » Корзина » Компиляция MaNGOS под Linux на примере Ubuntu ([Гайд] Компиляция MaNGOS под Ubuntu)
Компиляция MaNGOS под Linux на примере Ubuntu
Bloodlog
Рыцарь
Будем рассматривать на примере Ubuntu. (в принципе подходит под Debian)
Графическое окружение для нас не так важно...Вся работа происходит в консольном режиме, плюс в том что консоль не жрёт столько оперативной памяти, как если бы вы работали в граф окружении...Спросите себя зачем на серверной машине картинки, меню, окошки, ну вообще графическая среда??!!!Поэтому могу посоветовать поставить Debian без графического окружения. берём тут: http://www.debian.org/
Gnome- кушает ~130MB оперативной памяти, в то время как обычный рабочий сервер с консолью 30 MB, судите сами...
Далее многие любят задавать вопросы, зачем ставить Линукс????какой толк от Линукса на серверной машине???
Дело не только в безопастности которая очень надежна в линукс, но и распределение ресурсов на вашем железе...
Windows- сразу ставиться графическое окружение (я уже говорил о её бесполезности), приходиться искать надежный антивирус...(не аваст, вы меня понимаете), ну и при обычном бездействии системы Windows( любая хоть експи хоть виста или 7) просто так, можно сказать непонятно на что тратит вашу оперативную память в пустоту, и не только её...
Надеюсь я хоть до кого то достучался ответил на некоторые Ваши вопросы...Удачи Вас в использовании Линукс, кому интересно могу прислать по личке многие интересные книги по настроке линукс(фтп, самба и многое другое)

Итак Нашу Ubuntu можно взять от сюда:
http://releases.ubuntu.com

Вот офф сайт:
http://ubuntu.ru

Вот страница с выбором загрузки последних версий:
http://ubuntu.ru/get

Quote
Что такое Ubuntu?

Ubuntu — это разрабатываемая сообществом, основанная на ядре Linux операционная система, которая идеально подходит для использования на персональных компьютерах, ноутбуках и серверах. Она содержит все необходимые программы, которые вам нужны: программу просмотра Интернет, офисный пакет для работы с текстами, электронными таблицами и презентациями, программы для общения в Интернет и много других.
Обещание Ubuntu
Ubuntu всегда будет распространяться бесплатно, включая корпоративные версии и обновления безопасности.
Для Ubuntu доступна полная коммерческая поддержка от Canonical Ltd. и сотен компаний по всему миру.
Ubuntu включает наилучшие переводы и средства доступности для людей с ограниченными возможностями, которые только существуют в виде открытого ПО.
Диски c Ubuntu содержат только свободное программное обеспечение; мы поощряем использование свободно распространяемого и открытого ПО, его улучшение и распространение.

Надо будет поставить нужные пакеты.

Code
~# 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
если хотите, чтобы сорсы были также как у меня, то делаем так

Code
mkdir ~/Sources && cd ~/Sources
git clone git://github.com/mangos/mangos.git
svn co https://scriptdev2.svn.sourceforge.net/svnroot/scriptdev2/

или же можно сделать так:

Code
mkdir ~/Sources && cd ~/Sources
git clone git://github.com/mangos/mangos.git
cd mangos
svn co https://scriptdev2.svn.sourceforge.net/svnroot/scriptdev2/ src/bindings/ScriptDev2/

в этом случае ScriptDev2 будет уже в папке ~/Sources/mangos/src/bindings/ScriptDev2

Патчинг

Сорсы мы слили... Теперь надо их пропатчить хотя бы скриптдевом
//обычно на этом моменте я копирую сорсы в ~/Sources/compile

Чтобы пропатчить скриптдевом, достаточно ввести следующее

Code
cd ~/Sources/mangos/

или

Code
cd ~/Sources/compile

в src/bindings/ScriptDev2 у нас лежит ScriptDev2
патчим сорсы мангоса скриптдевом

Code
git am src/bindings/ScriptDev2/patches/MaNGOS-*

или

Code
git apply < src/bindings/ScriptDev2/patches/MaNGOS-*

где MaNGOS-* это патч под текущую ревизию сорсов

Если при этом у Вас пишется No Such Fail!=> то скорее всего у Вас папка ScriptDev2 скачалась со стандартным именем scriptdev2(напоминаю, что линукс очень чувствлителен к реестру!)Либо переменовываем паку под команду, либо команду под папку.Всё просто.

Далее. У нас есть некоторые патчи, чтобы пропатчить ими сорсы мангоса вводим

Code
cd mangos
patch -p1 -l < patch.patch

чтобы пропатчить скрипты

Code
cd src/bindings/ScriptDev2
patch -p0 -l < patch.patch

теперь у нас есть пропатченные исходники.

Компиляция
Первое

Code
autoreconf -fvi && mkdir objdir && cd objdir

Конфигурация мангоса. Меняем /opt/mangos на удобную нам папку

Code
../configure --prefix=/opt/mangos --sysconfdir=/opt/mangos/etc --enable-cli --enable-ra --datadir=/opt/mangos

После конфигурации компилируем

Code
make

для ускорения компиляции (у кого более 1 ядра)

Code
make -j n

(где n - число ядер процессора + 1, для 4 ядерного цп используйте -j 5)

Code
make install -j n

и инсталируем

Code
make install

Настройка
и так у нас имееться в папке /opt/mangos сервачок. надо нам настроить конфиги

Code
cp etc/mangosd.conf.dist etc/mangosd.conf
cp etc/realmd.conf.dist etc/realmd.conf

Открываем в любом любимом текстовом редакторе и настраиваем под себя

Создаем необходимые папки:
./mangos/maps
./mangos/dbc
./mangos/vmaps

Экстрактит только под виндой, кидаем экстрактор в папку с ВоВом и запускаем распаковку dbc (~45-50M) maps (~1G) vmaps (~2-1G в зависимости от оптимизации).
Далее закачиваете файлы на вашу систему (посредством ftp, smb или nfs) и копируете в соответствующие папки
Работа с базой данных
Создаем базы

Code
~# mysql -p'Пароль' < mangos/sql/create_mysql.sql
~# mysql -p'Пароль' < ScriptDev2/sql/ScriptDev2_create_database.sql
~# mysql -p'Пароль' ScriptDev2 < ScriptDev2/sql/ScriptDev2_create_structure_mysql.sql

Заполняем базу

Code
~# mysql -p'пароль' mangos < mangos/sql/mangos.sql
~# mysql -p'пароль' characters < mangos/sql/characters.sql
~# mysql -p'пароль' realmd < mangos/sql/realmd.sql
~# mysql -p'пароль' ScriptDev2 < ScriptDev2/sql/ScriptDev2_script_full.sql

Заселение:
для заселения берем в моем примере базу YTDB, хотя есть и UDB и другие.

Изменим реалмлист

Code
mysql -u root -p

mysql> use realmd;
mysql> UPDATE `realmlist` SET `name` = 'название_сервера' , `address` = 'ip адрес сервера' WHERE `id` = '1';

все. сервер готов для запуска

Запуск
я создал в /путь/до/папки/с/сервером/bin/ 2 скрипта
mangos.sh

Code
#!/bin/sh

CMDNAME='mangos-worldd'
RESTARTCMD='/путь/до/папки/с/сервером/bin/mangos-worldd'
SLEEPTIME=1
while test 1
do
              OUTPUT=`ps ax | grep $CMDNAME | grep -v grep`
                       
              if ! echo $OUTPUT | grep $CMDNAME 1>/dev/null ; then
                  echo Restarting service...
                  $RESTARTCMD
              else
                  echo Server Online...
              fi
              sleep $SLEEPTIME
done

realm.sh

Code
#!/bin/sh

CMDNAME='mangos-realmd'
RESTARTCMD='/путь/до/папки/с/сервером/bin/mangos-realmd'
SLEEPTIME=1
while test 1
do
              OUTPUT=`ps ax | grep $CMDNAME | grep -v grep`
                       
              if ! echo $OUTPUT | grep $CMDNAME 1>/dev/null ; then
                  echo Restarting service...
                  $RESTARTCMD
              else
                  echo Server Online...
              fi
              sleep $SLEEPTIME
done

Выставляем нужные права на mangos.sh и realm.sh

Code
chmod +x mangos.sh && chmod +x realm.sh

создаем в /путь/до/папки/с/сервером/ файл start
даем ему права на запуск

Code
chmod +x start

записываем туда

Code
screen -AmdS world /путь/до/папки/с/сервером/bin/mangos.sh
screen -AmdS realm /путь/до/папки/с/сервером/bin/realm.sh

Запускаем

Code
./start

смотрим запущем ли сервер

Code
screen -ls

There are screens on:
                  3546.world      (Detached)
                  3549.realm      (Detached)
2 Sockets in /var/run/screen/S-mangos.

Внимание!!! 1 запуск лучше производить просто запустив файл mangos-world, чтобы убедиться что все работает
ЗЫ: Предложения по дополнению мана приветствуються

Code
Порты Git и Subversion

$ cat /etc/services | grep Git
git  9418/tcp   # Git Version Control System

$ cat /etc/services | grep subver
svn  3690/tcp    subversion    # Subversion protocol
svn  3690/udp    subversion

Мои скомпилированные ядра под Ubuntu здесь:
http://wowjp.net/forum/32-69536-1

Взято с http://ru-mangos.ru/showthread.php?t=72

bloodlog@localhost:~$ apt-get install отдых
Сообщение # 1 отредактировано Bloodlog - Вторник, 23.11.2010, 17:43
AlO
Маршал
О_О если поставлю себе линукс то обязательно попробую smile лови + за урок
Сообщение # 2 написано 25.06.2010 в 18:02
sochidrive
Капрал
Мне нужно уже скомпелированое ядро для Linux
<=== Заходи и играй ;)
Сообщение # 3 написано 25.06.2010 в 21:37
DobroFenix7
Рыцарь
Молчу. Автор дописал, что копипаст.
Почитаешь дебилов, и думаешь - Ах, как несовершенны люди, и как безупречно совершенен ты сам, любимый © DobroFenix

Самый опасный дурак - это дурак, глубоко уверенный в том, что он далеко не дурак.

Сообщение # 4 отредактировано DobroFenix7 - Пятница, 25.06.2010, 21:46
AlO
Маршал
DobroFenix7, с самого начала было написано что не его урок smile
Сообщение # 5 написано 25.06.2010 в 21:49
Bloodlog
Рыцарь
=)))
Если скрипты под ядра найду хоршие, или кто писать сам будет, то могу наладить производство ядер мангос под убунту....далее и готовых серверов...

Добавлено (26.06.2010, 17:51)
---------------------------------------------
Щас слешка подредактирую темку..

bloodlog@localhost:~$ apt-get install отдых
Сообщение # 6 написано 26.06.2010 в 17:51
Kasperski
Антивирус
Bloodlog, неплохо и вполне понятно
Сообщение # 7 написано 27.07.2010 в 08:48
Cybergamer
Сержант
Я думаю, что наличие хоть какой нибудь графической оболочки на сервере по моему мнению обязательно, особенно если это сервер в университете (так будет легче знакомить студентов с Linux), домашний сервер или сервер в небольшой канторе. Понятное дело, что бородатым-красноглазым дядькам графическая оболочка даром не упала, но мы же с вами простые смертные. Для сервера подойдет что нибудь легкое, например XFCE.

Добавлено (28.11.2010, 22:04)
---------------------------------------------
В крайнем случае, можно графическую оболочку отключать когда надо, а когда надо что-то настроить, запускать иксы)



Сообщение # 8 написано 28.11.2010 в 22:04
INFERNOS
Quote (Cybergamer)
Я думаю, что наличие хоть какой нибудь графической оболочки на сервере по моему мнению обязательно

Зачем?что бы она поглощала всю видео и оперативну память и у вас лагало?
Сообщение # 9 написано 29.11.2010 в 07:45
Cybergamer
Сержант
Quote (Cybergamer)
Понятное дело, что бородатым-красноглазым дядькам графическая оболочка даром не упала, но мы же с вами простые смертные. Для сервера подойдет что нибудь легкое, например XFCE.

В крайнем случае, можно графическую оболочку отключать когда надо, а когда надо что-то настроить, запускать иксы)



Сообщение # 10 написано 29.11.2010 в 14:31
Форум » Корзина форума » Корзина » Компиляция MaNGOS под Linux на примере Ubuntu ([Гайд] Компиляция MaNGOS под Ubuntu)
  • Страница 1 из 1
  • 1
Поиск: