AzerothCore
Pages :

Arch Linux Install

This page covers Arch Linux-specific dependency setup for AzerothCore. It is intended to be used together with the Linux Classic Installation guide.

There are two ways to install AzerothCore: manual installation or the experimental AUR package.

Manual Core Installation

Before you begin

  • This guide does not explain how to install Arch Linux itself.
  • Make sure your system is up to date and you have a normal user with sudo privileges.
  • The Arch Wiki is the best source for general Arch installation and package management.

Make sure your system is fully up to date, and if you update the kernel, please reboot into the new kernel before continuing.

sudo pacman -Syu

Required packages

Install the core development packages needed to build AzerothCore:

sudo pacman -Syu --needed base-devel git cmake clang boost

MySQL on Arch Linux

AzerothCore requires Oracle MySQL. Oracle MySQL is not available from the official Arch repositories, so this guide installs it from the AUR.

Import the MySQL signing key:

gpg --recv-keys B7B3B788A8D3785C

Build and install the MySQL AUR package:

mkdir -p ~/AUR
cd ~/AUR
git clone https://aur.archlinux.org/mysql.git
cd mysql
makepkg -si

After installation, enable and start MySQL:

sudo systemctl enable --now mysql.service

Next steps

Once your database server is installed and running, continue with the Linux Classic Installation guide to compile AzerothCore and finish configuration.

AUR Install (Experimental)

Special care must be taken so that Arch does not try to install MariaDB as a substitute for MySQL.

The examples below use yay to install these dependencies, but you can use another AUR helper. These instructions are intended to work with either approach.

Please note that acore.sh is not distributed with this installation method since many of the things it manages are handled differently.

The following executables are installed that can manage parts of the install:

  • acore_setup: Initializes AzerothCore, sets up a new user, performs the initial database population, and enables remote access to the AC> prompt from the background service. It runs on localhost by default.
  • acore_mod: Automatically compiles and deploys modules checked out to a folder or removes them if they no longer exist.
  • attach-world: Starts a remote connection session to the server so you can access the AC> prompt and disconnect while the server stays running.

MySQL installation

Due to package definitions and to allow automatic dependency resolution, we must use the named MySQL 8.4 package instead of the newest 9.

yay -S libmysqlclient84 mysql-clients84 mysql84

From here, initialize MySQL. Feel free to change directories and users as needed.

Please note that this will output a temporary password you must remember or copy down for later.

sudo mysqld --initialize --user=mysql --basedir=/usr --datadir=/var/lib/mysql

Now we need to start the MySQL service:

sudo systemctl enable --now mysqld

From here, we need to setup our first user by running the MySQL initialization scripts:

sudo mysql_secure_installation

In this script you want to:

  1. Change the root password: Set it to whatever you want. The initial password will be the random password output above.
  2. Enforce strict password policy: No (this will interfere with the default credentials AzerothCore will create.)
  3. Remove anonymous users: Yes
  4. Disallow remote login: Yes (this removes remote root accounts only; it does not disable remote access for other users or change the server bind address). Answer Yes by default. If remote database access is needed, configure dedicated non-root users and network access separately.
  5. Remove test database: Yes
  6. Reload privilege table: Yes

Install AzerothCore

The core is split into two packages: the core and the client/map data.

If you want to extract the map data yourself, the clientdata package is not required and you can omit it. However, AzerothCore expects the map data to be in /usr/share/azerothcore/data.

yay -S azerothcore-wotlk-git azerothcore-clientdata

Initialize AzerothCore

There is a helper script that is installed as part of this package, acore_setup.

sudo acore_setup

This will do some configuration setup, ask you for the mysql user, start the server to pre-populate the database, and then you will be asked to make an account once the server is up with:

AC> account create <username> <password>

Note: This account will be given Game Master privileges!

After performing these steps, the server will shut itself down. You can start everything by enabling and starting the services:

sudo systemctl enable --now acore-auth-server acore-world-server

Connecting to the AzerothCore

You can connect to the locally running server by running:

attach-world

Then enter your AzerothCore administrator username and password. You can exit at any time by pressing Ctrl+C.

Module management

To manage modules, clone the repositories to /usr/src/acore-modules.

After they have been cloned and you are ready to deploy them, run:

acore_mod

This will:

  1. Symbolically link the module source to the place where the AzerothCore source is stored
  2. Perform an incremental build to rebuild AzerothCore with the modules
  3. Package the sql files to be reinstalled with the new package and stored in the AzerothCore installation directory
  4. Install the package
  5. Restart the services

Feedback

This is a work in progress and I have not tested many modules with this. If you run into issues, please post them in Discord. Beck is the user maintaining this package.