Skip to end of metadata
Go to start of metadata
Guide

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.55
MySQL ≥ 5.1.0 
OpenSSL = 1.0.x
CMake ≥ 3.0.2
GCC ≥ 4.9.3 or Clang  ≥ 3.5 (heavy recommended, specially on master branch)
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 (recommended)

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.

Tested for Debian 8.8.0 and Ubuntu 16.04.

apt-get install git cmake make gcc g++ libmysqlclient-dev libssl-dev libbz2-dev libreadline-dev libncurses-dev libboost-all-dev mysql-server p7zip

Debian 9.0

apt-get install git cmake make gcc g++ libmariadbclient-dev libssl1.0-dev libbz2-dev libreadline-dev libncurses-dev libboost-all-dev mysql-server p7zip
Not supported: Debian 7, Ubuntu 14.04.

Fedora based distributions

Tested on Fedora Server 25 and 26 (Fedora Workstation 25 and 26 should also work).

dnf install git cmake make gcc gcc-c++ mariadb-devel openssl-devel bzip2-devel readline-devel ncurses-devel boost-devel mariadb-server p7zip

Fedora 26 ships with OpenSSL 1.1.x which can't be used for building TrinityCore. Luckilly, OpenSSL 1.0.x branch is shipped in the package named 'compat-openssl10-devel'. To install it, issue command 'dnf install --allowerasing compat-openssl10-devel'. Note that this will remove already installed openssl-devel package.

 Red Hat based distributions (NOT RECOMMENDED)

Red Hat based distributions

yum install epel-release
yum install git cmake3 make clang mariadb-devel openssl-devel bzip2-devel readline-devel ncurses-devel
ln -s /usr/bin/cmake3 /usr/bin/cmake

yum install libquadmath-devel python-devel
curl -L https://dl.bintray.com/boostorg/release/1.64.0/source/boost_1_64_0.tar.gz -o boost_1_64_0.tar.gz
tar -zxvf boost_1_64_0.tar.gz
cd boost_1_64_0
./bootstrap.sh
./b2 install

yum install mariadb-server p7zip 

Note: You will only have to compile the boost library one time, unless you update your kernel or update certain security packages.

Note: Some distribution versions might not match our requirements for CMake. If you can't install the EPEL repository on your build server, use the following instructions to install CMake manually.

curl https://cmake.org/files/v3.6/cmake-3.6.1.tar.gz -o cmake-3.6.1.tar.gz
tar -zxvf cmake-3.6.1.tar.gz
cd cmake-3.6.1
./bootstrap
make
make install


Help

If you still have any problem, check:

Guide

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.

  • No labels

12 Comments

  1. Why are Red Hat based distros not recommended?

    It takes a bit of work, but I was able to successfully compile and run auth/worldserver on CentOS.

    1. Recommended in the sense that the commands above might not be the correct ones. If you can please update the text above for RedHat with updated commands. Thanks :)

      1. I'm going to update them in near future - hope I don't forget them. It's possible that the packages of the default repositories are to out-dated for CentOS / RHEL / Oracle Linux.

        1. I will update as well. The only issue I had was with Boost on CentOS, was that I had to pre-compile specific version libraries, but everything else seemed fine. I have been running auth/worldserver on both CentOS and Ubuntu Server for over 6 years and for some reason CentOS just seems to perform faster. Uses less memory, utilizes all the cores more efficiently, and is extremely stable. Never had the kernel panics issues on CentOS like I do on Ubuntu/Fedora

  2. Don't change requirements randomly, devs are who change minimum versions not users and atm min version of boost for linux is 1.55 and mysql 5.1.0.

    1. 3 separate machines that I have will not compile with Boost 1.55. In fact, It does not compile with 1.56, 1.57, 1.58, 1.59, or 1.60.

      Also, a link from another user: https://community.trinitycore.org/topic/120-compile-or-cmake-problems/?page=103#comment-82315

      You should try to compile using boost 1.55 before commenting that anything less than 1.6 will work!

      1. It compiles fine with Debian 8, the recommended linux and it's the minimum required on cmake. Maybe it's another of the reasons why redhat aren't recommended.

        https://travis-ci.org/TrinityCore/TrinityCore

        1. Most users use Ubuntu. I'm using both OS's. Either the wiki needs to be changed for a separate min requirement for Boost per Linux OS?

          I don't know, but 1.55 just won't work for some people.

        2. This contradicts what the wiki states about "not supported" Ubuntu 14.04. According to the shippet log you posted...

          My argument is... If you place support for a particular version of a Linux OS, then all versions of applications and services should be tested out.

          That's what I have been doing.

          1. Ubuntu 14.04 is not supported because shipping by default gcc under 4.9.3 and people breaking their linux trying to install gcc 4.9.3, it's faster to directly don't support ubuntu 14.04 than having to heard people crying because they broke their os..

            1. Sure I get that.. but, you have to test on newer (supported) versions of Linux OS. Boost 1.55 may work fine for Debian 8. But not everyone is going to use just Debian 8.

              If the user doesn't follow the wiki for min requirements, than let them cry all they want (big grin)

              1. requirements will be updated soon, when Debian 9 is shipped, for now, Debian 8 is still the recommended version.