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.
sudo privileges.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
Install the core development packages needed to build AzerothCore:
sudo pacman -Syu --needed base-devel git cmake clang boost
AzerothCore requires Oracle MySQL. Oracle MySQL is not available from the official Arch repositories, so this guide installs it from the AUR.
Warning: Trusting keys is always up to the user to verify that the key being trusted should be. If you have any doubts or concerns, stop here and use a different installation method.
Import the MySQL signing key:
gpg --recv-keys B7B3B788A8D3785C
Build and install the MySQL AUR package:
Note: This package builds MySQL from source. You will likely need at least 4 gigabytes of memory for the compile to succeed.
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
Once your database server is installed and running, continue with the Linux Classic Installation guide to compile AzerothCore and finish configuration.
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.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:
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
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
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.
Note: Ctrl+C will _not_ shut your server down!
Warning: This AUR package is not to be used with PlayerBots module. There is another fork of the core for that module and it is unsupported by this package.
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:
Warning: If your module has a config file or settings that need to be added to existing configuration files, you must do this manually! Once updated, restart the world service.
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.