Ru-MaNGOS

Ru-MaNGOS (http://mangos.ytdb.ru/index.php)
-   Установка MaNGOS (http://mangos.ytdb.ru/forumdisplay.php?f=25)
-   -   [Гайд] Компиляция под Linux (http://mangos.ytdb.ru/showthread.php?t=88)

stippi 07.03.2010 15:39

[Гайд] Компиляция под Linux
 
Вольная интерпретация документации http://getmangos.com/wiki/Compile_MaNGOS_On_Linux
Документация включает в себя получение исходников, их конфигурацию и компиляцию.


1. Установка необходимых пакетов

Сначала мы должны установить следующие пакеты:
# GCC 4.1.X ( gcc / g++ / cpp / fort77 / g77 / gpp)
# automake
# autoconf
# glibc & glibc-dev(glibc headers) [ libc6 ]
# make
# mysql-server 4.1 or mysql-server 5.0 && libmysql++-dev
# libtool
# OpenSSL (libssl-dev)
# subversion and patch
# git
# zlibc

Код:

apt-get install gcc g++ automake autoconf make libmysql++-dev libtool libssl-dev subversion patch zlibc libc6 git git-core pkg-config
2. Получаем исходники

скачиваем исходники мангос
Код:

git clone git://github.com/mangos/mangos.git mangos

переходим в каталог мангос
Код:

cd ./mangos
для расширения возможностей, скачиваем СкриптДев2 находящийся по адресу
https://scriptdev2.svn.sourceforge.n...oot/scriptdev2 с помошью любой програмы
работающей с svn-репозитариями в папку ./src/bindings/ScriptDev2/

накладываем патч ScriptDev2 на сорцы MaNGOS
Код:

git apply ./src/bindings/ScriptDev2/patches/MaNGOS-XXXX-ScriptDev2.patch
ЗЫ. если нужно наложить другие патчи, то кладем в каталог mangos нужный патч patchname.patch и применяем его
Код:

git apply patchname.patch
3. Конфигурация и компиляция

Сразу оговоримся, что сервер у нас будет будет лежать в каталоге /srv/mangos/ , впрочем вы вправе указать свой собственный путь.

И так, для начала нам надо обновить все конфигурационные скрипты проекта, это делается командой
Код:

autoreconf -fvi
создаем каталог objdir
Код:

mkdir objdir
и переходим в него
Код:

cd ./objdir
конфигурируем наш будущий сервер
Код:

../configure --prefix=/srv/mangos --sysconfdir=/srv/mangos/etc --datadir=/srv/mangos
Запускаем компиляцию
Код:

make
и установку
Код:

make install
очищаем проект
Код:

make clean
выходим на уровень вверх
Код:

cd ..
удаляем каталог objdir
Код:

rm -r objdir

Artkeep 08.03.2010 07:55

Вложений: 1
Скрипт сборки ядра.
Автор: Alex Blade
Изменено: Заменена поддержка Scriptdev2 SVN на Git
Параметры ../configure и make подстраивайте под свою машину.

Сам лично использую такие:
Код:

../configure --prefix=/server/$BINARYDIR/$THISBINARYDIR --sysconfdir=/server/$BINARYDIR/config --datadir=/server/$BINARYDIR/sql --disable-builtin-ace --with-python --with-debug-info --enable-cli CFLAGS="-march=athlon64 -m64 -O2 -msse3 -pipe -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -frename-registers -fno-strict-aliasing -fno-strength-reduce -fno-delete-null-pointer-checks" CXXFLAGS="-march=athlon64 -m64 -O2 -msse3 -pipe -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -frename-registers -fno-strict-aliasing -fno-strength-reduce -fno-delete-null-pointer-checks"
Код:

make -j3 && make -j3 install
Для тех кто использует не встроеный ACE добавить строчку для создания папки Lib
Код:

else
    echo "Папка для размещения текущей ревизии - $THISBINARYDIR - существует"
fi

if [[ -z "$(ls | grep $LIB)" ]]; then
    echo "Создаем папку Lib для размещения библиотеки ACE"
    mkdir $LIB
else
    echo "Папка Lib для библиотеки ACE - существует"
fi

cd /server/$MAINSRCDIR/$COMPILEDIR/$THISCOMPDIR


LLIbIcpEP 11.03.2010 03:26

march удобно смотреть тут (интель, амд).
И мне кажется, лучше использовать -О3, не?
-msse3 лучше смотреть по выводу cat /proc/cpuinfo
И в чем суть --with-python?

CruncH 11.03.2010 22:38

Цитата:

Сообщение от LLIbIcpEP (Сообщение 1262)
И в чем суть --with-python?

Ходят поверия о том что прадеды....
кхм, это ненужная опция идет еще с древних времен написания 1 мануала под компиляцию, видно тогда хотели прикрутить питон к мангосу.

added: --with-debug-info желательно не использовать на рабочем сервере, так как ядро толстеет от отладочной информации. и есть еще несколько нюансов которые могут повлиять на качество работы.

всякие опции оптимизации желательно не использовать без знания дела, иначе опять таки будет проигрыш в стабильности и производительности

Vatson 19.03.2010 15:51

Решил посмотреть что такое mangos на linuxe
сделал сервер по выше указанному методу попытался заселить его базой YTDB
и получилось что все русские квесты и итемы в клиентах отображаются в перекореженной кодировке Пример
обычно это решается прописыванием перед запросом "set names cp1251" или опцией в клиенте
default-character-set = cp1251
вопрос можно это как-нибудь прописать в mangos не меняя исходников ?

tempura 19.03.2010 16:58

Vatson
мягко намекну: ytdb.ru

JafarGH 31.03.2011 01:27

Уважаемые!
С ревизии 11127 MaNGOS сделал поддержку CMAKE
поделитесь знаниями в этой области [гайд]ом

rsa 31.03.2011 15:41

www.cmake.org

Hantet 01.04.2011 16:40

Собирается на ура. Спасибо разработчикам!

Код:

apt-get install cmake
cd sources
mkdir ../objdir && cd ../objdir
cmake ../sources
make
make install

sources - папка с исходниками


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

ru-mangos.ru - Русское сообщество MaNGOS