Linux Distribution Field Report

From Armagetron
Revision as of 16:51, 23 August 2021 by Cadillac (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

This page is intended to describe installation experiences with various Linux distributions. It covers installing the dependencies and installing the game itself. The distributions are always mentioned in the version that was actually used for testing; the procedure for later versions or derivate distributions is likely to be similar enough. The instructions assume you start from a default installation; if you deleted packages, you may also have deleted dependencies the instructions assume are already installed. You're on your own then.

Unless stated otherwise, all commands have to be executed as the superuser root on the command line. You'll need to know how to open a root terminal/console.

Peculiarities of Distributions

Ubuntu

Ubuntu does not install a root account like other distributions; instead, you are supposed to use the "sudo" command to gain temporary root rights. So, whatever the instructions below say you should do at the console, prepend a "sudo " and give it YOUR password whenever it is asked for. Also, the password you need to give to the Autopackage installation, should you forget the sudo, is YOUR password.

Installing the Dependencies

Before you think about installing Armagetron Advanced, you have to prepare your system for it. Don't worry, not much is missing from most distributions.

The complete list of requirements of current stable versions is libstdc++5, libSDL, libSDL_Image, libpng, libxml2 (version 2.6.12 or above) and of course OpenGL and GLU. Depending on what you want to install, you can scratch some of that: If you install from source, you don't need libstdc++5, the libstdc++ that comes with GCC will be used, but you will need development versions of all dependencies and the build tools GCC and GNU Make. If you install a server, you only need libstdc++5 and libxml2. If you install from a .package, libxml2 is included and you don't need it installed.

All modern distributions already come with libSDL, libxml2, OpenGL and GLU installed, so usually, you don't need to worry about those.

The trickiest part is libstdc++5; we're compiling the binary distributions against it for compatibility with older installations, but modern distributions have moved on and provide the version we need only in legacy packages.

Debian 3.1 "Sarge" and Ubuntu 5.10 "Breezy Badger"

Do

apt-get update
apt-get install libstdc++5 libsdl-image1.2

It has been found that this step is essential on Ubuntu 6.06 "Drapper Drake". If you let autopackage install sdl-image for you (it can do that), the resulting installation does not work for everyone. Starting the game crashes immediately with an "illegal instruction" error. If you already have a non-working installation, remove the autopackage sdl-image with

package remove sdl_image

and follow the steps above to get a working installation.

Fedora Core 4

To get SDL_Image, do

yum update
yum install SDL_image

libstdc++ is tricker, the author did not find a good way. Improvements wanted :)

libstdc++ is available as a RPM on the FC4 dvd, in the path Fedora/RPMS. If you only have CDs, good luck finding the right one. To install it, mount the DVD/right CD and do

rpm -i <path-to-dvd>/Fedora/PRMS/compat-libstdc++-33-3.2.3-47.fc4.i386.rpm

The detailed filename is likely to vary on FC5+ or derivate distributions, but the important part is the libstdc++-33 here, because it's the compatibility library for GCC 3.3 compilates. On FCC 8 at least, you can easily add the library by going to the Applications menu, selecting "Add/Remove Software", searching for "libstdc++-33", and installing the (hopefully) only package this finds.

SuSE 9.1 Personal

To install SDL_Image, you need to start yast2, go to the "Software" menu and the "Install and Remove Software" submenu. Hit "Search" and seach for SDL. Select SDL_image from the list and let it be installed.

SuSE 9.1 comes with a version of libxml2 that is too old for our purposes; installing from RPM will not work. The .package comes with the parts of libxml2 we need, so you can use that. Later versions should not have this problem, and you can use the same method as above, only seaching for "libxml" and picking "libxml2", to install libxml2.

Installing Armagetron Advanced

On the command lines here, the (-dedicated) part needs to be left out if you install the client and replaced by -dedicated if you install the server. Things in angle brackets <> need to be replaced with whatever you downloaded.

Installing from Autopackage (.package)

Autopackage aims to be an as-generic-as-possible third party software installation system. The Autopackage guys know far better than the AA developers how you can work around the various distributions' quirks, so installing from Autopackage is the recommended over the other binary formats unless there is a package that exactly matches your distribution.

Installing from autopackage is easy: download it, open up a console/terminal (does not need to be root) and do

bash ./armagetronad(-dedicated)-<VERSION>.<SYSTEM>.package -t

and follow the instructions. The -t is important, it will disable the graphical frontend. Unfortunately, that one crashes almost everywhere. If you don't have bash, try sh instead.

The .package is really just a shell script. If this is your first .package installation, you'll be prompted to download and install some support code; accept that, this will only be required once. If you know your system's root password, you should give it here. After the installation of the support code, the main installation will start. If you don't give the root password here, Armagetron Advanced will be installed for your current user only without endangering the system. I'd recommend doing that (that means, DONT give the password) unless you really want a systemwide install. You may have to log out and log in again to see the installed start menu entries.

Autopackage has means to find and install missing dependencies; nevertheless, it is better if you, before installing it, try to install all dependencies using your distribution's native package system. If a later operation with your native package manager pulls the dependencies in, you'll have them installed twice in possibly conflicting locations. That is another reason why not giving the root password on installation is recommended; dependencies will then be installed for your user only, too, and won't cause conflicts.

Autopackage Experiences

Fedora Core 4 using Gnome

AA 0.2.8.1 x86_32: Works. The start menu entries' icons are missing.

SuSE 9.1 Personal using KDE

AA 0.2.8.1 x86_32: Works. The start menu entries are installed twice.

Debian 3.1 "Sarge" and Ubuntu 5.10 "Breezy Badger" using Gnome

AA 0.2.8.1 x86_32: Work without problems.

Kubuntu Breezy

AA 0.2.8.1 x86_32: Shouldn't be different than Ubuntu "Breezy Badget". It wasn't. Worked fine. Graphical installer worked fine as well.

Kanotix Live CD

AA 0.2.8.1 x86_32: Does not work. The autopackage support code tries to install itself into the read-only parts of the file system. The default user seems to be automatically promoted to have root rights, or at least autopackage seems to think that.

Installing from RPM

To install the RPM, download it and do

rpm -i armagetronad(-dedicated)-<VERSION>.<SYSTEM>.rpm

RPM Experiences

Fedora Core 4 using Gnome

AA 0.2.8.1 x86_32: Works, but you may be left without start menu entries and have to run the game with

armagetronad(-dedicated)

from a console/terminal.

SuSE 9.1

AA 0.2.8.1 x86_32: Doesn't work because libxml2 is too old. Choose the .package installation instead.

Uninstalling

On upcoming versions, you just have to do

armagetronad(-dedicated)-uninstall

to get rid of everything, no matter how it was installed.

On 0.2.8.1 or earlier, this only works if you installed from source.

if you installed from rpm, do

rpm -e armagetronad(-dedicated)

If your source was a .package, do

package remove armagetronad(-dedicated)

Authors' Recommendations

Personal opinions follow.

Z-Man

If you're new to Linux and are looking for a distribution where fresh versions of Armagetron Advanced are easy to install (which by no means should be your main criterion), Debian and Ubuntu are clear winners among the listed distributions. Of those, Ubuntu is said to have a better system installation, but I can't say anything about that. Even thogh I've grown up with SuSE and RPM, getting the dependencies installed was way easier the apt-get way.

Lucifer

One thing you can do for most distributions is go ahead and install the Armagetron package they ship. That will let their dependency resolution program install all the binary dependencies you need. Then uninstall only the Armagetron package (it's usually out of date). After that, you only need to make sure a new enough libxml2 is installed, and 0.2.8.x should slide right in. If you do this in Gentoo or another source-based distribution, you'll be able to build a source release.