In this guide we’ll walk through the basic steps of extracting the QC:DE Linux package and installing missing dependencies.
First of all, we need to grab the correct build, so head on over to the QC:DE website and download the package.
Please follow the steps in their numbered order and do not skip forward.
While the steps in this chapter can be performed using your distribution’s GUI, we will focus on the command line for this guide.
Assuming you have downloaded the QC:DE tarball to your Downloads directory, open a terminal window.
Create a new directory for the game and enter it:
mkdir -p ~/qcde && cd ~/qcde
Then extract the archive located in your Downloads:
tar -xzf ~/Downloads/QCDE_v3.0.tar.gz
In case of trying to run any of the scripts in your QC:DE directory, you get a permission denied
error message, execute the following command:
chmod +x *.sh
If you attempt to run the game in single-player mode now, you may encounter an error message similar to this:
./q-zandronum: error while loading shared libraries: libgtk-x11-2.0.so.0: cannot open shared object file: No such file or directory
This indicates that the necessary software to run the game is not yet installed on your system. Fortunately, resolving this issue is usually straightforward. First, we need to make sure that the system’s package database is up to date, then install the required packages.
sudo apt update
sudo apt install libbz2-1.0 libgl1 libglib2.0-0 libglu1-mesa libgtk2.0-0 libmpg123-0 libopenal1 libsdl1.2-compat-shim libsndfile1 libssl3 zlib1g libqt5widgets5 libqt5multimedia5 libqt5xml5
sudo pacman -y
sudo pacman -S sdl12-compat gtk2 sndio qt5-multimedia
In case you are not able to install packages via
pacman
, read the following guide on how to first enable installing Arch packages on Steam Deck, then install the Arch dependencies.
Read the article carefully and proceed with caution!
sudo zypper ref
sudo zypper in libSDL-1_2-0 libGLU1 libQt5Multimedia5 libQt5Xml5
Unfortunately, at the time of writing this guide, Fedora’s repositories lack an sndio7
package, thus, getting QC:DE to work on this system requires a bit more tinkering, which is out of the scope of this guide. Please ask for further assistance on the QC:DE Discord server.
The package includes optional, but highly recommended application launcher entries to make running the game super easy.
To install the menu entries, run the following script:
./Create_Menu_Icons.sh
To remove them, run:
./Remove_Menu_Icons.sh
NOTE: It is normal on some desktop environments, that the application icon doesn’t appear next to the menu entries. This will correct itself next time you log in to your desktop.
With so many Linux distributions out in the world, we can’t possibly try and test all of them to make sure the dependency list provided in this guide will cover each and every one. If after installing dependency packages in step 2, the game is still missing libraries, here’s how to deal with the problem.
First, we’ll need to find out, what package contains the library we are missing. To do a search, issue the following commands:
# update the local pacman database (doing this once is enough)
sudo pacman -Fy
# do the search
pacman -F libgtk-x11-2.0.so.0
The search will return the gtk2
package, which can be installed with the following:
sudo pacman -S gtk2
If you try to run the game again, it will most likely still be missig more dependencies, so repeat the process detailed above until the game starts.
To search in the repositories, we’ll need a utility named apt-file
. It might not come pre-installed on your OS, so if that’s the case, install it.
sudo apt install apt-file
# then download the search database
apt-file update
# lastly, we can now search for the missing dependency
apt-file search libSDL-1.2.so.0
# which will point us to the package to install
sudo apt install libsdl1.2-compat
You can also get a list of all missing libraries and do your searches / installation in batch. The process is virtually similar in any package manager, so for this example, we’ll use pacman
.
[user@EndeavourVM qcde]$ ldd Q-Zandronum/q-zandronum | grep "not found"
libgtk-x11-2.0.so.0 => not found
libSDL-1.2.so.0 => not found
[user@EndeavourVM qcde]$ ldd Doomseeker/doomseeker | grep "not found"
libQt5Multimedia.so.5 => not found
libwadseeker.so.2 => not found
ldd
will sometimes not find every dependency, like on my test system, it didn’t detectlibsndio.so.7
.
Now we can search:
pacman -F libSDL-1.2.so.0 libgtk-x11-2.0.so.0 libsndio.so.7 libQt5Multimedia.so.5
And install in batch:
sudo pacman -S sdl12-compat gtk2 sndio qt5-multimedia
If you’d like to, you can install Doomseeker from the DRDTeam repository on Debian or a Debian based system.
To add the repository to your sources list, run the following commands:
sudo wget -O /etc/apt/trusted.gpg.d/drdteam.gpg https://debian.drdteam.org/drdteam.gpg
sudo apt-add-repository 'deb https://debian.drdteam.org/ stable multiverse'
Then install Doomseeker for Q-Zandronum:
sudo apt install doomseeker-zandronumq
It is possible to install both Q-Zandronum and Doomseeker from the Arch User Repository on Arch or an Arch based system.
If you are not familiar with AUR, read the Introduction manual and in case you need one, choose a helper that suits your needs.
In this example, we are using Manjaro to install an AUR helper, named Yay and then install Doomseeker from AUR.
Yay will take care of downloading the source, building the package and installing it.
Note: Compiling an application might take several minutes.
# refresh package database
sudo pacman -y
# install Yay
sudo pacman -S yay
# then using Yay, install Doomseeker
yay -S doomseeker