Компиляция Trinity Core на Ubuntu Server

Устанавливаем необходимые дистрибутивы:
sudo apt-get install build-essential autoconf libtool gcc g++ make cmake git-core patch wget links zip unzip unrar libncurses5-dev
sudo apt-get install openssl libssl-dev mysql-server mysql-client libmysqlclient15-dev libmysql++-dev libreadline6-dev zlib1g-dev libbz2-dev
sudo apt-get install libboost-dev libboost-thread-dev libboost-system-dev libboost-program-options-dev

Добавляем пользователя в системе от имени которого будет запускаться сервер:
sudo adduser trinity

По сути ACE и OpenSSL устанавливаются командами выше, но в случае проблем их можно скомпилировать вручную как указано ниже. Тогда желательно удалить их перед компилированием из системы к примеру такой командой apt-get autoremove libace-dev. Командой apt-cache search ace можно посмотреть какие файлы есть в репозитории Ubuntu и также версию ACE.

Устанавливаем ACE:
wget http://download.dre.vanderbilt.edu/previous_versions/ACE-6.0.3.tar.gz
(другие версии: http://download.dre.vanderbilt.edu/previous_versions/)

Распаковываем скачанный архив и открываем директорию:
tar xvzf ACE-6.0.3.tar.gz
cd ACE_wrappers
Создаем каталог для компиляции и открываем его:
mkdir build && cd build
Конфигурируем и устанавливаем:
../configure —prefix=/home/<папка пользователя>/.sys/
make
make install
Возвращаемся обратно в директорию пользователя:
cd ~
Устанавливаем OpenSSL:
Скачиваем последнюю версию с http://openssl.org/source/:
wget http://openssl.org/source/openssl-0.9.8o.tar.gz
Распаковываем скачанный архив и открываем директорию:
tar -xvf openssl-0.9.8o.tar.gz
cd openssl-0.9.8o
Конфигурируем и устанавливаем:
./config —prefix=/home/<папка пользователя>/.sys shared
make
make install
Возвращаемся обратно в директорию пользователя:
cd ~

Загружаем исходники Trinity:
git clone git://github.com/TrinityCore/TrinityCore.git
Для применения своих патчей необходимо до компиляции поместить патч в директорию с исходниками и выполнить команду:
patch -p1 < имя_патча.patch
Открываем директорию с исходниками, создаем каталог для компиляции и открываем его:
cd TrinityCore-master && mkdir build && cd build
Конфигурируем на свое усмотрение (это всего лишь пример):
cmake ../ -DPREFIX=/home/<папка пользователя>/server -DTOOLS=1
или так
cmake ../ -DPREFIX=/home/<папка пользователя>/server -DTOOLS=1-DCMAKE_C_FLAGS=»-O3 -pipe» -DCMAKE_CXX_FLAGS=»${CMAKE_C_FLAGS}» -DDO_RA=1 -DLARGE_CELL=1 -DACE_LIBRARY=/home/<папка пользователя>/.sys/lib/libACE.so -DACE_INCLUDE_DIR=/home/<папка пользователя>/.sys/include/ -DSSLLIB=/home/<папка пользователя>/.sys/lib/libssl.so
Если нужно указываем путь к gcc: -DCMAKE_C_COMPILER=/usr/bin/gcc-4.6
Если нужно указываем путь к g++: -DCMAKE_CXX_COMPILER=/usr/bin/g++-4.6

Параметры которые можно указать при конфигурации:
-DACE_LIBRARY=<путь к библиотеке ACE > (полный путь к библиотеке libACE.so, если ACE установлено «глобально», то данный флаг не применяется )
-DACE_INCLUDE_DIR=<путь к каталогу includes/headers, вашей библиотеки ACE> (полный путь к include директории ACE, если ACE установлено «глобально», то данный флаг не применяется )
-DOPENSSL_LIBRARIES=<путь к библиотеке OpenSSL> (путь к библиотеке OpenSSL library, если OpenSSL установлено «глобально», то данный флаг не применяется )
-DOPENSSL_INCLUDE_DIR=<путь к каталогу include, вашей библиотеки OpenSSL > (путь к каталогу include, вашей библиотеки OpenSSL, если OpenSSL установлено «глобально», то данный флаг не применяется)
-DSCRIPTS Сборка сервера и скриптов.
-DTOOLS Собрать так же и экстракторы карта/коллизии/дбц.
-DUSE_SFMT Использовать SFMT как случайный генератор чисел.
-DWITH_WARNINGS Показывать предупреждения.
-DWITH_COREDEBUG «собрать в дебаге».
-DWITH_SQL Скопировать SQL-файлы в каталог с установленным сервером.
-DPREFIX Задать каталог установки.

Компилируем:
make -j (число ядер процессора + 1) //пример для четырех ядерного процессора: make -j 5
make install
Настраиваем конфиги и переименовываем их:
mv /home/<папка пользователя>/server/etc/worldserver.conf.dist /home/<папка пользователя>/server/etc/worldserver.conf
mv /home/<папка пользователя>/server/etc/authserver.conf.dist /home/<папка пользователя>/server/etc/authserver.conf
Извлечение карт:
После компиляции ядра с использованием флага -DTOOLS=1 в папку bin должны скомпилироваться такие фалы как: mapextractor, vmap3extractor, vmap3assembler. Копируем их в директорию с World of Warcraft и запускаем их по очереди:
./mapextractor
./vmap4extractor
mkdir vmaps
./vmap4assembler Buildings vmaps
После создаем в папке с сервером папку к примеру «data» перемещаем в нее созданные экстракторами карт директории. Прописываем в worldserver.conf путь к данной папке.

Запуск:
auth.sh (путь к данному простому скрипту, в случае правильного запуска, можно сразу поместить в /etc/rc.local для автоматического запуска при старте системы)
#!/bin/bash
while :; do
/home/папкапользователя/server/bin/authserver -c /home/папкапользователя/server/etc/authserver.conf
sleep 10
done

world.sh
#!/bin/sh
while :; do
servlog=’/home/папкапользователя/server/logs/server.log’;
outpatch=’/home/папкапользователя/server/logs/crash/’;
date=`date «+%Y-%m-%d_%H:%M:%S»`;
echo «Server CRASHED !!! Start Bugreport System.» >> $outpatch$date.txt;
echo «Server.log Log FILE Last 30 Lines:» >> $outpatch$date.txt;
cat $servlog | tail -n 30 >> $outpatch$date.txt;
echo «» >> $outpatch$date.txt;
echo «END bugtracker system.» >> $outpatch$date.txt;
/home/папкапользователя/server/bin/worldserver -c /home/папкапользователя/server/etc/worldserver.conf
sleep 20
done
Загрузка баз данных:
Необходимо скачать последнюю официальную компиляцию базы данных с [url=https://github.com/TrinityCore/TrinityCore/downloads]TrinityCore Github Downloads[/url]
Либо YTDB базу подогнанную под TrinityCore http://ytdb.ru/showthread.php?t=5227 (http://svn2.assembla.com/svn/ytdbase/) (http://trinity-core.ru/threads/ytdb-for-trinity-%D1%80%D0%B5%D0%BB%D0%B8%D0%B7%D1%8B.1339/page-5)
Также необходимо скачать все патчи опубликованные после полной версии и залить по очереди. Для YTDB если в архиве больше одного файла, то сначала заливать апдейты от ядра, потом от базы. Для официальной базы они находятся в скачанной ранее директории с исходниками ядра /sql/updates.

Добавить комментарий