Устанавливаем необходимые дистрибутивы:
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.