• Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: Dimitro  
[Мануал] Установка TrinityCore на Debian 8.1
Malezha
Армия спасения
Целевая аудитория гайда: новички, захотевшие поднять тестовый сервер на Debian'е.
Необходимые знания: умение компилировать сервер под ОС Windows.

Установка необходимых пакетов, обновление до последней версии

Проверяем что стоит именно 8.1
Код
cat /etc/debian_version
Если у вас стоит дистрибутив 7 версии или более ранней, почитайте про обновление в гугле (тема слишком объёмная и не входит в данную инструкцию).
Обновляем систему.
Код
apt-get update
apt-get upgrade

Устанавливаем необходимые пакеты для компиляции эмулятора. Включая АСЕ и OpenSSL. Зависимость от АСЕ убрали, теперь нужен Boost. OpenSSL все еще нужен.
Код
apt-get install build-essential autoconf libtool gcc g++ make cmake git-core wget p7zip-full libncurses5-dev zlib1g-dev libbz2-dev openssl libssl-dev libreadline6-dev libboost-dev libboost-thread-dev libboost-system-dev libboost-filesystem-dev libboost-program-options-dev libboost-iostreams-dev screen -y

Для ветки 6.х нужен ZeroMQ.
Код
apt-get install libzmq-dev

Устанавливаем mysql:
Код
apt-get install mysql-server mysql-client libmysqlclient-dev libmysql++-dev -y

Так как сидеть постоянно из под рута не безопасно, создадим отдельного пользователя для запуска эмулятора.
Код
adduser <username>
где <username> - имя создаваемого пользователя.
Задаем ему пароль и дополнительные данные (не обязательно).

Скачивание исходников и компиляция эмулятора.

Код
# Переключаемся на созданого пользователя
su <username>
cd ~
# Создадим папку в корне домашней директории пользователя для исходников и выкачаем их.
mkdir source
cd source
git clone git://github.com/TrinityCore/TrinityCore.git
cd TrinityCore

По умолчанию скачивается ветка 6.х.
Для смены на 3.3.5а:
Код
git checkout -b 3.3.5 origin/3.3.5
Продолжаем:
Код
mkdir build
cd build

Дальше начинается настройка путей установки сервера и дополнительных параметров для компиляции.
Приведу только самые важные флаги:
Код
-DCMAKE_INSTALL_PREFIX - путь, куда будет установлен скомпилированный эмулятор, обязательный параметр;
-DLIBSDIR - путь, куда будут положены библиотеки (необязательный параметр);
-DCONF_DIR - папка, где будут находиться конфигурация (необязательный параметр);
-DCMAKE_BUILD_TYPE - тип собираемого проекта (необязательный параметр), может принимать 4 значения: Debug, Release, MinSizeRel, RelWithDebInfo. По умолчанию стоит значение Release;
-DWITH_WARNINGS - показывать все предупреждения при компиляции, по умолчанию отключен;
-DWITH_COREDEBUG - компиляция с отладочной информацией для последующей отладки, не рекомендуется для рабочего сервера, так как при этом используется больше ресурсов, по умолчанию отключен;
-DTOOLS - собирает так же экстракторы, но оно вам нужно? Или у вас на сервере находиться 20-гиговый клиент. По умолчанию отключен;
-DSCRIPTS - собирать ли проект вместе со скриптами, то есть будут ли включены все скрипты боссов, квестов, эвентов и прочее. По умолчанию включено;
-DCMAKE_C_FLAGS и -DCMAKE_CXX_FLAGS - флаги, в которых содержаться дополнительные параметры, передаваемые компилятору. Новичку даже не стоит пробовать что либо понимать, так как за все необходимые флаги выставит autoconf.

Для сборки в эмулятора для production-среды достаточно указать только флаг путей установки.
Код
cmake ../ -DCMAKE_INSTALL_PREFIX=/home/<username>/server
Если хотим ловить краши, необходимо собрать в дебаге:
Код
cmake ../ -DCMAKE_INSTALL_PREFIX=/home/<username>/server -DWITH_COREDEBUG=1 -DCMAKE_BUILD_TYPE=Debug

Проект конфигурируется и его можно начать компилировать:
Код
make -j <количество ядер>
make install


Настройка конфигов и пробный запуск проекта.

Создадим базы и пользователя для эмулятора:
Код
mysql -uroot -p < /home/<username>/source/TrinityCore/sql/create/create_mysql.sql
Это создаст базы auth, characters, world, пользователя с логином и паролем trinity с доступом только с локалхоста и с правами только к созданным базам.
Дальше нужно залить в созданные базы таблицы и апдейты, думаю тут все просто и не у кого вопросов возникнуть не должно, а если возникнет - на форуме есть пару мануалов.
По умолчанию, конфиги эмулятора находятся по адресу:
Код
/home/<username>/server/etc/
Советую убрать расширение .dist, что бы потом ваш конфиг не был переписан при сборки более новой версии эмулятора.
Так же советую при настройке конфигов эмулятора использовать сокет mysql, а не сетевое подключение.

После всей настройки стоит попробовать запустить сервер. Для удобства я использую полноэкранный оконный менеджер screen. Не буду описывать все его флаги, просто дам готовые команды.
Не забываем что для управления эмулятором у нас есть свой юзер, так что логинимся на <username>.

Запустить authserver:
Код
screen -AmdUS authserver /home/<username>/server/bin/authserver -c /home/<username>/server/etc/authserver.conf
Запустить worldserver:
Код
screen -AmdUS worldserver /home/<username>/server/bin/worldserver -c /home/<username>/server/etc/worldserver.conf
Перейти в окно authserver:
Код
screen -dr authserver
Перейти в окно worldserver:
Код
screen -dr worldserver
Выйди из текущего окна:
Код
Ctrl+A+d
Закрыть текущее окно:
Код
Ctrl+A+k и нажать y


Использованные материалы:
  • Требования
  • Установка под Linux
  • Установка базы данных
  • Собственный опыт

    В качестве окружения для тестирования использовался vagrant (провайдер virtualbox) с ящиком debian/jessie64 (репозитории по умолчанию).

    P.S. Прошу озвучивать адекватную критику, а не вбросы то типу: "ничего не понятно, автор м*дак!", "почему не расписано значение каждого пакета в установке?!", "дебиан для ниасиливших генту школоло" и т.п.
  • Сообщение # 1 отредактировано Malezha - Понедельник, 22.06.2015, 20:23
    alexeyko123
    Рыцарь
    А где пункты ACE_wrappers, OpenSSL?
    Опыт - есть истинный учитель(Леонардо Да Винчи)
    Знать что нужно сделать, и не делать этого - худшая трусость(Конфуций)
    Сообщение # 2 написано 22.02.2014 в 10:21
    Paralitik
    Чемпион
    alexeyko123, дык в самом же начале smile
    Цитата
    Устанавливаем необходимые пакеты для компиляции эмулятора.
    Сообщение # 3 написано 22.02.2014 в 11:09
    mailby
    Скаут
    А можно подробнее запуск описать?
    Сообщение # 4 написано 09.05.2014 в 22:05
    Malezha
    Армия спасения
    Цитата mailby ()
    А можно подробнее запуск описать?

    Что именно не понятно?
    Сообщение # 5 написано 22.05.2014 в 18:41
    Shkrest
    Сержант
    sudo screen -y что это? Вы то сами пробовали на 7 собрать сервер?

    Добавлено (27.05.2014, 18:56)
    ---------------------------------------------
    По моему лучше юзать старый проверенный 6.0.9 И все будет гуд.

    Сообщение # 6 написано 27.05.2014 в 18:56
    aveolona
    Капрал
    Огромное спасибо! Очень полезная информация!
    Сообщение # 7 написано 21.07.2014 в 00:37
    morra
    Центурион
    не ок, мало что расписал, точнее много чего не написал
    Сообщение # 8 написано 14.08.2014 в 10:04
    Malezha
    Армия спасения
    Цитата Shkrest ()
    sudo screen -y что это? Вы то сами пробовали на 7 собрать сервер?

    Установка пакетов sudo и screen без вопроса "точно установить?".
    Да, собирал и не раз.
    Цитата Shkrest ()
    По моему лучше юзать старый проверенный 6.0.9 И все будет гуд.

    Можно собрать хоть под lenny, но будет гемор с пакетами, так как последние версии тринити требуют gcc 4.7
    Цитата morra ()
    не ок, мало что расписал, точнее много чего не написал

    А что еще нужно? Если вы хотите описание каждой команды, то зашли не на тот ресурс.

    Сегодня обновлю мануал.
    Сообщение # 9 отредактировано Malezha - Вторник, 26.08.2014, 14:40
    ThisBetter
    Скаут
    Malezha, А ничего такого что ныне используется BOOST а не айс ... копипастер ... Вот написал бы ты от себя как поставить триню на Арч или генту,другое дело.А дибилиан осилит любой подросток 12 лет
    Сообщение # 10 отредактировано ThisBetter - Вторник, 26.08.2014, 15:56
    Malezha
    Армия спасения
    Цитата ThisBetter ()
    Malezha, А ничего такого что ныне используется BOOST а не айс ... копипастер ... Вот написал бы ты от себя как поставить триню на Арч или генту,другое дело.А дибилиан осилит любой подросток 12 лет

    Верно, давно не следил за обновлениями тринити, как выше написал - обновлю сегодня (сейчас пересобираю все по мануалу, что бы протестировать его). Я вообще то и не скрывал, что большую часть мануала взял на официальной вики и просто перевел (читай первый абзац).
    Когда будет спрос на инструкцию установки на Arch и Gentoo, тогда и будет написан мануал, но я за все свой время прибывания на форуме что то не заметил таких, но зато заметил огромное количество вопросов по поводу установки на Dedian/Ubuntu.
    Так что простота дистра - понятие относительно.
    Да и я сильно сомневаюсь, что те, кто админит арч и тем более генту, будут просить мануал.
    Сообщение # 11 отредактировано Malezha - Вторник, 26.08.2014, 16:34
    morra
    Центурион
    ну что там? собрать получилось? с таким набором библиотек
    Сообщение # 12 написано 02.09.2014 в 02:23
    Wolqer
    Скаут
    Malezha, спасибо инфа полезная ошибок при компилляции незамечено, но имхо если
    Цитата Malezha ()
    Целевая аудитория гайда: новички, захотевшие поднять тестовый сервер на Debian'е

    могли бы и указать как заливать в базы таблицы и апдейты smile
    еще есть вопрос такого плана
    Цитата Malezha ()
    make -j <количество ядер>

    во многих гайдах пишут что команда должна выглядеть так make -j <количество ядер +1> как всётаки правильно?
    Сообщение # 13 отредактировано Wolqer - Вторник, 02.09.2014, 16:38
    Paralitik
    Чемпион
    Цитата Wolqer ()
    как всётаки правильно?

    Верны оба варианта. Параметр J отвечает за количество одновременных процессов сборки(мейк умеет параллелить свою работу)
    Каждый поток будет обрабатываться отдельным ядром в случае, когда количество потоков равно количеству ядер. Но если выставить на 1 поток больше, то хуже от этого не станет, будет небольшой оверхэд. Не думаю, что при сборке легкого вовсервера это хоть как то повлияет на скорость сборки. Можно прсото опытным путем проверить сколько занимает времени сборка при разных потоках.
    Сообщение # 14 написано 02.09.2014 в 18:12
    Wolqer
    Скаут
    Paralitik, спасибо за объяснение smile

    Добавлено (17.09.2014, 15:48)
    ---------------------------------------------
    кому несложно опишите процесс заливки баз/таблиц в консольке плиз smile искал инфу на форуме чтото ненашел

    Добавлено (22.09.2014, 13:08)
    ---------------------------------------------
    ап

    Сообщение # 15 написано 22.09.2014 в 13:08
    Scriptolog
    Цитата Wolqer ()
    искал инфу на форуме чтото ненашел

    http://wowjp.net/forum/120-179365-1
    Сообщение # 16 написано 22.09.2014 в 13:29
    Holgrid
    Скаут
    Этот гайд подходит для установки на Ubuntu 13.10 amd64 под LAMP server
    На Debian 7.6 amd64 тоже всё отлично работает!
    Не много помучился с заливкой БД.
    Вот тут мои рабочие заливки для баз без персов и аккаунтов если кому нужно.
    И на всякий случай извлеченные карты
    Большое спасибо автору!
    Сообщение # 17 отредактировано Holgrid - Среда, 19.11.2014, 22:42
    Malezha
    Армия спасения
    Немного обновил мануал.
    Сообщение # 18 написано 03.12.2014 в 15:04
    sommov
    Скаут
    почему у меня такая фигня вылетает?



    Делаю через root не заморачиваюсь пока что с юзерами, но все же, make не пашет
    Сообщение # 19 отредактировано sommov - Пятница, 05.12.2014, 00:20
    Malezha
    Армия спасения
    sommov, не поставили
    Код
    libmysqlclient-dev libmysql++-dev
    Сообщение # 20 написано 07.12.2014 в 18:13
    Lodarkness
    Рыцарь
    И вправду для новичков очень хороший мануал.Ставлю +
    Сообщение # 21 написано 08.12.2014 в 15:59
    sommov
    Скаут
    в чем может быть причина?

    Сообщение # 22 написано 09.12.2014 в 00:46
    Dinoza
    para bellum
    Цитата sommov ()
    в чем может быть причина?

    Может бы ошибку скинул, хотя бы.
    Сообщение # 23 написано 09.12.2014 в 01:55
    sommov
    Скаут
    во
    Сообщение # 24 написано 10.12.2014 в 17:55
    Malezha
    Армия спасения
    Сообщение # 25 отредактировано Malezha - Четверг, 11.12.2014, 14:48
    Holgrid
    Скаут
    Проверил обновленный мануал на Debian 8 testing
    Всё ОК!
    Сообщение # 26 написано 29.01.2015 в 21:35
    vovalu
    Скаут
    Спасибо за мнуал, все просто и понятно, многое даже разжевано. Есть вопросы развивающие тему.
    1. Идейно make install не есть debian-way, как можно модифицировать данную инструкцию для создания *.deb пакета?
    2. Есть ли опыт использования вместо mysql его форков или postgres, и какие были результаты?
    3. Попадались ли кому-то репозитории с готовым TrinityCore/Mangos?
    Сообщение # 27 написано 17.03.2015 в 20:42
    Malezha
    Армия спасения
    Цитата vovalu ()
    1. Идейно make install не есть debian-way, как можно модифицировать данную инструкцию для создания *.deb пакета?
    Разницы между сборкой TrinityCore и другого приложения нет, так собрать свой пакет не составляет проблемы. Можете дописать сам сервер для работы в режиме демона и будет вам счастье без всяких screen.
    Цитата vovalu ()
    2. Есть ли опыт использования вместо mysql его форков или postgres, и какие были результаты?
    Постгре точно не работает, так как TrinityCore жестко привязан к mysql, но вот mariaDB должна заработать без проблем. Вот только даст ли это прирост производительности?
    Цитата vovalu ()
    3. Попадались ли кому-то репозитории с готовым TrinityCore/Mangos?
    Они не нужны. Совсем недавно ветка 3.3.5 стала стабильной, но действительно рабочей её не назовешь.
    Остальные ветки и подавно находятся в состоянии глубокой альфы и каждый день обновляются.
    Создание ежедневных ночных сборок конечно бы могло иметь место, но если этого все еще нет, значит это никому не нужно.
    Сообщение # 28 написано 18.03.2015 в 15:04
    Holgrid
    Скаут
    Цитата Malezha ()
    -DPREFIX - путь, куда будет установлен скомпилированный эмулятор, обязательный параметр;
    -DLIBSDIR - путь, куда будут положены библиотеки. Необязательный параметр.;
    -DCONF_DIR - папка, где будут находиться
    -DCMAKE_BUILD_TYPE - тип собираемого проекта, может принимать 4 значения: Debug, Release, MinSizeRel, RelWithDebInfo. По умолчанию стоит значение Release;
    -DWITH_WARNINGS - показывать все предупреждения при компиляции. По умолчанию отключен;
    -DWITH_COREDEBUG - компиляция с отладочной информацией для последующей отладки, не рекомендуется для рабочего сервера, так как при этом используется больше ресурсов. По умолчанию отключен;
    -DTOOLS - собирает так же экстракторы, но оно вам нужно? Или у вас на сервере находиться 20-гиговый клиент. По умолчанию отключен;
    -DSCRIPTS - собирать ли проект вместе со скриптами, то есть будут ли включены все скрипты боссов, квестов, эвентов и прочее. По умолчанию включено;
    -DCMAKE_C_FLAGS и -DCMAKE_CXX_FLAGS - флаги, в которых содержаться дополнительные параметры, передаваемые компилятору. Новичку даже не стоит пробовать что либо понимать, так как за все необходимые флаги выставит autoconf.

    Привет Malezha
    Пора обновить гайд, префиксы изменились !
    Сообщение # 29 написано 16.06.2015 в 14:52
    Malezha
    Армия спасения
    Holgrid, спасибо. К выходным обновлю.

    Добавлено (22.06.2015, 20:27)
    ---------------------------------------------
    Обновил.

    Сообщение # 30 написано 22.06.2015 в 20:27
    • Страница 1 из 2
    • 1
    • 2
    • »
    Поиск: