This article is part of the Installation Guide. You can read it alone or click on the previous link to easily move between the steps.
Processor with SSE2 support
Boost ≥ 1.58
MySQL ≥ 5.6.0 up to 5.7.x
OpenSSL ≥ 1.0.x
CMake ≥ 3.13.4
Clang ≥ 5 (heavy recommended, especially on master branch) or GCC ≥ 7.1.0
zlib ≥ 1.2.7
Note:
While compiling you may get one error like: "c++: internal compiler error: Killed (program cc1plus)" the reasons of this can be:
Low ram/swap amount: increase ram/swap to a minimum of 2GB of ram and 2GB of swap or decrease the amount of make -j to 1 (more concurrent compile threads = more memory usage). (you can get this using VPS servers)
SELinux/grsecurity/Hardened kernel: Kernels that use ASLR as a security measure tend to mess up GCC's precompiled header implementation. Try using an unhardened kernel (without ASLR), or compiling using clang, or gcc without pch. (you can get this issue when using OVH hosting).
Debian based distributions (heavy recommended debian stable, it's the distribution we use to set minimum requirements)
Recommendation: Use apt-get with stable source list instead of install packages. We recommend the latest stable version of your distribution. Avoid LTS versions since we usually update requirements to the lastest stable Debian version. Mixing stable with experimental packages may break your linux OS.
Debian 10.x (you will need to use su to install the packages)
apt-get update apt-get install git clang cmake make gcc g++ libmariadbclient-dev libssl-dev libbz2-dev libreadline-dev libncurses-dev libboost-all-dev mariadb-server p7zip default-libmysqlclient-dev update-alternatives --install /usr/bin/cc cc /usr/bin/clang 100 update-alternatives --install /usr/bin/c++ c++ /usr/bin/clang 100
Ubuntu 19.10 (you will need to use sudo to install the packages).
apt-get update apt-get install git clang cmake make gcc g++ libmariadbclient-dev libssl-dev libbz2-dev libreadline-dev libncurses-dev libboost-all-dev mariadb-server p7zip libmariadb-client-lgpl-dev-compat update-alternatives --install /usr/bin/cc cc /usr/bin/clang 100 update-alternatives --install /usr/bin/c++ c++ /usr/bin/clang 100
Not supported: Debian 8 or lower. Ubuntu 17.10 or lower.
AVOID UBUNTU LTS versions and CentOS.
Fedora based distributions
Tested on Fedora Server 27/28 (Fedora Workstation 27/28 should also work).
dnf install https://dev.mysql.com/get/mysql57-community-release-fc27-1.noarch.rpm dnf install git clang cmake make gcc gcc-c++ community-mysql-devel compat-openssl10-devel bzip2-devel readline-devel ncurses-devel boost-devel community-mysql-server p7zip rm -f /usr/bin/c++ update-alternatives --install /usr/bin/cc cc /usr/bin/clang 100 update-alternatives --install /usr/bin/c++ c++ /usr/bin/clang 100
Arch Linux based distributions (NOT SUPPORTED)
Tested on 2/19/2020. If you run into any issues with the dependencies don't report it to the TrinityCore team, report it to me on Discord or through email. Discord: Techwizz#5489, email: paulrblack.prb@gmail.com
FOLLOW AT YOUR OWN RISK!
pacman -S git clang cmake make gcc openssl bzip2 readline ncurses boost p7zip rpcsvc-proto mkdir ~/mysql-tmp cd ~/mysql-tmp wget https://aur.archlinux.org/cgit/aur.git/snapshot/mysql57.tar.gz # Note if this no longer exists go here and download the snapshot https://aur.archlinux.org/packages/mysql57/ tar -xf mysql57.tar.gz makepkg sudo pacman -U libmysqlclient57-5.7.29-1-x86_64.pkg.tar.xz mysql-clients57-5.7.29-1-x86_64.pkg.tar.xz mysql57-5.7.29-1-x86_64.pkg.tar.xz cd ~ rm -rf ./mysql-tmp
Or if you have yay installed, you can follow this instead
pacman -S git clang cmake make gcc openssl bzip2 readline ncurses boost p7zip rpcsvc-proto yay -S mysql57
If you still have any problem, check:Help
This article is part of the Installation Guide. You can read it alone or click on the previous link to easily move between the steps.