Компиляция 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/user/.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/user/.sys shared
make
make install

Возвращаемся обратно в директорию пользователя:

cd ~

Загружаем исходники Trinity:

git clone git://github.com/TrinityCore/TrinityCore.git

Для применения своих патчей необходимо до компиляции поместить патч в директорию с исходниками и выполнить команду:

patch -p1 < file.patch

Открываем директорию с исходниками, создаем каталог для компиляции и открываем его:

cd TrinityCore-master && mkdir build && cd build

Конфигурируем на свое усмотрение (это всего лишь пример):

cmake ../ -DPREFIX=/home/user/server -DTOOLS=1

или так

cmake ../ -DPREFIX=/home/user/server -DTOOLS=1-DCMAKE_C_FLAGS="-O3 -pipe" -DCMAKE_CXX_FLAGS="${CMAKE_C_FLAGS}" -DDO_RA=1 -DLARGE_CELL=1 -DACE_LIBRARY=/home/user/.sys/lib/libACE.so -DACE_INCLUDE_DIR=/home/user/.sys/include/ -DSSLLIB=/home/user/.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/user/server/bin/authserver -c /home/user/server/etc/authserver.conf
sleep 10
done

world.sh

#!/bin/sh
while :; do
servlog=’/home/user/server/logs/server.log’;
outpatch=’/home/user/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/user/server/bin/worldserver -c /home/user/server/etc/worldserver.conf
sleep 20
done

Загрузка баз данных:
Необходимо скачать последнюю официальную компиляцию базы данных с https://github.com/TrinityCore/TrinityCore/downloads
Либо 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.

Оставьте комментарий

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

Больше на IT Blog

Оформите подписку, чтобы продолжить чтение и получить доступ к полному архиву.

Continue reading