Ru-MaNGOS

Вернуться   Ru-MaNGOS > Документация > Установка MaNGOS

Важная информация

Установка MaNGOS Установка MaNGOS

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 10.08.2010, 17:32   #1
Bguser
Гость
 
Сообщений: n/a
По умолчанию [Гайд]Компиляция Mangos для CentOS

Проведя целую ночь в бесплодных попытках скомплить мангос под CentOS, в 08.08 утра, мне все же удалось это сделать методом научного тыка.
Чтобы другие не отнимали, как я, сами у себя свой заслуженный сон, я написал манульчег.
Вернее, сделал на основе трёх этих, некоторые места писал сам, опираясь на собсный опыт..
http://wowjp.net/forum/120-70970-1
http://wowjp.net/forum/18-69227-1
http://hudson.su/2010/05/11/install-git-on-centos/

Итак, Компиляция mangos на CentOS\RedHat
Проверялось на 5.5 версии
Логинимся за root'a
Код:
su
Надо будет поставить нужные пакеты.

Код:
yum groupinstall "development tools"
yum groupinstall "development libraries"
yum install gcc-g++ mercurial wget links zip unzip unrar
yum install mysql-server mysql-client mysql-devel
yum install openssl   
yum install gcc44 gcc44-c++
yum install screen
Теперь на нужна утилита libtool. В репозитории CentOS
она есть, но версия слишком старая, и поэтому при компиле
мангоса вылазают апишки! По сему, утилиту будем собирать сами.

Качаем архив с нужной версией утилиты.

Код:
wget http://ftp.gnu.org/gnu/libtool/libtool-2.2.tar.gz
Распаковываем.
Код:
tar -xvzf libtool-2.2.tar.gz
Переходим в папку с утилитой.

Код:
cd libtool-2.2
Конфигурируем, собираем, ставим.

Код:
./configure && make && make install
Если мне не изменяет память, GITа в репозиторих центоси тоже нет.
Собираем таким же образом

Устанавливаем зависимости:

Код:
yum install gettext-devel expat-devel curl-devel  zlib-devel openssl-devel
Загружаем исходники и разархивируем их:

Код:
wget  http://kernel.org/pub/software/scm/git/git-1.6.1.tar.gz
     
tar xvfz git-1.6.1.tar.gz
Устанавливаем:

Код:
cd git-1.6.1
     
make prefix=/usr/local all
     
make prefix=/usr/local install
Все. Пакеты поставлены. Надо слить сорсы. Создаем/заходим в папку с сорсами.

Код:
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

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

Код:
cd ~/Sources/mangos/
или

Код:
cd ~/Sources/compile
в src/bindings/ScriptDev2 у нас лежит ScriptDev2
патчим сорсы мангоса скриптдевом

Код:
git apply < src/bindings/ScriptDev2/patches/MaNGOS-*
где MaNGOS-* это патч под текущую ревизию сорсов

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

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

Код:
cd mangos
patch -p1 -l < patch.patch
чтобы пропатчить скрипты

Код:
cd src/bindings/ScriptDev2
patch -p0 -l < patch.patch
теперь у нас есть пропатченные исходники.

Компиляция
Первое
Код:
autoreconf -fvi && mkdir objdir && cd objdir
Конфигурация мангоса. Меняем /opt/mangos на удобную нам папку

Код:
../configure CC=/usr/bin/gcc44 CXX=/usr/bin/g++44 --prefix=/opt/mangos --sysconfdir=/opt/mangos/etc --enable-cli --enable-ra --datadir=/opt/mangos
После конфигурации компилируем

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

Код:
make install -j n
и инсталируем
(где n - число ядер процессора + 1, для 4 ядерного цп используйте -j 5. Если ядро одно, используйте просто 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

КАРТЫ
Код:
su -c 'rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm'
yum install wine
Заходим папка с сорцами/contrib/extractor
копируем файлы ad.exe в папку с WoW
Запускаем при помощи wine. ждем окончания.
копируем папки dbc maps в нужные папки в сервере

Заходим папка с сорцами/contrib/extractor/vmap_extract_assembler_bin
копируем в папку с вов все содержимое папки.
Далее

Код:
cd /папка/c/wow
wineconsole makevmaps_SIMPLE.bat
После экстракта копируем папку vmaps туда же.

Работа с базой данных
Создаем базы

Код:
~# 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
Заполняем базу

Код:
~# 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 и другие.

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

Код:
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

Код:
chmod +x mangos.sh && chmod +x realm.sh
создаем в /путь/до/папки/с/сервером/ файл start
даем ему права на запуск

Код:
chmod +x start
записываем туда

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

Код:
./start
смотрим запущем ли сервер

Код:
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
Я думаю, прямые руки+мозг+желание+небольши изменения помогут вам подогнать этот мануал и под RedHat)) Потому что CentOS это бесплатная реализация редхата.

Последний раз редактировалось Bguser; 10.08.2010 в 17:37. Причина: Ошибки
  Ответить с цитированием
Старый 26.12.2010, 18:55   #2
Localhoster
Гость
 
Сообщений: n/a
По умолчанию

Наверняка при использовании вышеописанного кто нить столкнулся с подобной ошибкой:
при вводе autoreconf -fvi && mkdir objdir && cd objdir выскакивает след. ошибка
Код:
autoreconf: Entering directory `.'
autoreconf: configure.ac: not using Gettext
autoreconf: running: aclocal --force -I m4
configure.ac:22: error: Autoconf version 2.60 or higher is required
configure.ac:22: the top level
autom4te: /usr/bin/m4 failed with exit status: 63
aclocal: autom4te failed with exit status: 63
autoreconf: aclocal failed with exit status: 63
Для решения данной проблемы надо в файле ~/Sources/mangos/dep/ACE_wrappers/configure.as найти строчку:
AC_PREREQ(2.61)
и заменить ее на :
AC_PREREQ(2.58)

Должно все заработать

Последний раз редактировалось Localhoster; 04.01.2011 в 20:37.
  Ответить с цитированием
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Гайд] Компиляция MaNGOS под FreeBSD на примере 8.0-RELEASE metacreo Установка MaNGOS 63 25.10.2018 14:40
[Гайд] Отладка для чайников pdx15 Установка MaNGOS 4 22.10.2014 22:38
[Гайд] Компиляция MaNGOS под ОС Windows Max Установка MaNGOS 35 08.05.2013 18:56
[Гайд] Компиляция MaNGOS под Linux на примере Ubuntu Gen1us2k Установка MaNGOS 98 23.05.2012 21:40
[Гайд] Компиляция под Linux stippi Установка MaNGOS 8 01.04.2011 16:40


Текущее время: 15:31. Часовой пояс GMT +3.


ru-mangos.ru - Русское сообщество MaNGOS
Главная цель проекта MaNGOS - обучающая, поэтому разрешается использовать исходный код и собранную программу только для образовательных целей.
Вы не можете использовать MaNGOS в коммерческих целях, а также не разрешается устанавливать публичные серверы на базе MaNGOS.
Любое копирование материалов, информации в любом виде без указания источника - форума Ru-MaNGOS будет считаться нарушением авторских прав и нарушением Уголовного Кодекса РФ, ст. 146 ст. 147.
Перевод vBulletin: zCarot