Setting up a server/Debian/de
Einen Server aufsetzen: Debian
Diese Anweisungen wurden mit Debian Jessie getestet (“Testing”, Stand Januar 2015), das ein minetest-server
-Paket enthält.
Ein einfacher Minetest-Server kann in jedem Debian (Ubuntu, Linux Mint oder davon abgeleiteten Distributionen) gestartet werden, der das Paket minetest
hat, indem Sie auf den Reiter “Server” gehen. Allerdings bleibt ein solches Spiel nur für die Dauer der Spielsitzung auf dem Rechner verfügbar,
Diese Anleitung zielt auf die Bereitstellung einer permanenten mimimalen Server-Umgebung ohne grafische Desktop-Umgebung.
Installation und anfängliche Vorbereitung
Befehle, denen ein $ vorangestellt ist, werden mit eingeschränkten Privilegien ausgeführt, während Befehle, denen ein # vorangestellt ist, mit Administratorrechten (üblicherweise mittels sudo
) ausgeführt werden.
Eine virtuelle Maschine mit Debian 7 vorbereiten (optional)
Falls Sie Minetest in einer speziell dafür vorgesehenen Umgebung installieren wollen, ist eine interessante Option, dies auf einem KVM-Host in Form einer fest zugehörigen virtuellen Maschine zu tun.
Dies erfordert eine vorhergehende Installation und Konfiguration von KVM und des Pakets virtinst auf Ihren Host-System. Sie können auch eine Netzwerkbrücke konfigurieren, so dass Ihr LAN direkten Zugriff auf den Server im selben Subnetz hat.
Der folgende Befehl wird eine virtuelle Maschine namens “dungeon” auf einem bestehenden KVM-Host vorbereiten:
sudo virt-install -n dungeon -r 1024 --disk path=/var/lib/libvirt/images/dungeon.img,bus=virtio,size=10 -l http://ftp.ca.debian.org/debian/dists/wheezy/main/installer-i386/ --accelerate -b br0,model=virtio --connect=qemu:///system --vnc --noautoconsole -v
Sobald es installiert ist, können Sie über VNC auf die Konsole zugreifen.
Das Minetest-Serverprogramm installieren
Installieren Sie das Paket minetest-server
:
# apt-get install minetest-server
Das aktuelle Debian-Paket in Jessie richtet den Minetest-Server nicht so ein, dass er automatisch als Dienst startet. Er kann unter dem Benutzer root
laufen, allerdings sollten Sie vorzugsweise einen Benutzer anlegen, um ihn auszuführen:
# adduser minetest
Seit Version 0.4.10+repack-3 ist keine manuelle Konfiguration von Debians Paket “minetest-server” mehr erforderlich. Bitte lesen Sie den Abschnitt über Systemd und SysVinit.
Bevor Sie ein automatisches Starten beim Hochfahren einrichten, sollten Sie in Betracht ziehen, den Server manuell zu starten, um die besten Befehlszeilenoptionen zu bestimmen.
Der Server manuell starten
Der Server kann manuell durch den Aufruf dieses Befehls gestartet werden:
$ minetestserver --info
Die letzten paar Zeilen der Terminal-Ausgabe sollte etwa so aussehen:
03:33:25: INFO[main]: Server: Loading environment metadata 03:33:25: INFO[main]: Server: Loading players 03:33:25: INFO[main]: Starting server on port 30000... 03:33:25: ACTION[main]: .__ __ __ 03:33:25: ACTION[main]: _____ |__| ____ _____/ |_ ____ _______/ |_ 03:33:25: ACTION[main]: / \| |/ \_/ __ \ __\/ __ \ / ___/\ __\ 03:33:25: ACTION[main]: | Y Y \ | | \ ___/| | \ ___/ \___ \ | | 03:33:25: ACTION[main]: |__|_| /__|___| /\___ >__| \___ >____ > |__| 03:33:25: ACTION[main]: \/ \/ \/ \/ \/ 03:33:25: ACTION[main]: World at [/home/minetest/.minetest/worlds/world] 03:33:25: ACTION[main]: Server for gameid="minetest" listening on port 30000. 03:33:25: INFO[ServerThread]: Server creating detached inventory "creative" 03:33:28: INFO[ServerThread]: ServerMap: SQLite3 database opened
Den Server manuell stoppen
Um den Server zu stoppen drücken Sie Ctrl + C. Verhindern Sie ihn zu killen, solange dies nicht nötig ist, da dies zur Beschädigung der Welt führen kann.
Die letzten paar Zeilen der Terminal-Ausgabe sollte etwa so aussehen:
03:34:52: INFO: sigint_handler(): Ctrl-C pressed, shutting down. 03:34:52: INFO[main]: Dedicated server quitting 03:34:52: INFO[main]: Server destructing 03:34:52: INFO[main]: Server: Saving players 03:34:52: INFO[main]: Server: Saving environment metadata 03:34:52: INFO[main]: Server: Stopping and waiting threads 03:34:52: INFO[main]: Server: Threads stopped 03:34:52: INFO[main]: ServerMap: Saved map to /home/minetest/.minetest/worlds/world 03:34:52: INFO[main]: RollbackManager::~RollbackManager() 03:34:52: INFO[main]: RollbackManager::flush() 03:34:52: INFO[main]: BanManager: saving to /home/minetest/.minetest/worlds/world/ipban.txt 03:34:52: INFO[main]: Server: Deinitializing scripting
Automatisches Starten beim Hochfahren einrichten
Mit einem beim Hochfahren geplanten Befehl (nur für Version 0.4.10+repack-3 und darunter benötigt)
WICHTIG: Diese manuelle Einrichtung des automatischen Starts des Minetest-Servers beim Hochfahren ist seit 0.4.10+repack-3 nicht mehr nötig. Diese Verbesserung ist verfügbar, wenn das Paket von Debian-Experimental installiert wird (zur Zeit, als dieses Handbuch verfasst wurde).
Sobald Sie mit den Befehlszeilenargumenten zufrieden sind und getestet haben, ob Ihr Server funktioniert, können Sie ihn automatisch beim Hochfahren starten:
- Melden Sie sich als ein Benutzer an, den Sie vorher erstellt haben. Dies kann ein unprivilegierter Nutzer sein.
- Fügen Sie der
crontab
den Befehlminetestserver
so hinzu, wie Sie ihn durch manuelles Testen der Serverstarts festgelegt haben.- Rufen Sie dazu den
crontab
-Editor auf:$ crontab -e
- Hängen Sie den Befehl, der beim Hochfahren ausgeführt werden soll, ganz an das Ende der Datei, zum Beispiel
@reboot /usr/games/minetestserver --info --worldname MeineWelt
- Rufen Sie dazu den
- Speichern Sie die Datei (Strg+X, falls Sie den Editor
nano
benutzen).
Führen Sie den Minetest-Server als Systemd-Dienst oder als SysVinit-Daemon aus
Seit Version 0.4.10+repack-3 erzeugt das Debian-Paket “minetest-server” automatisch einen systemweiten unprivilegierten Benutzer namens Debian-minetest. Das Home-Verzeichnis dieses Benutzers ist /var/games/minetest-server. Sie können die vollständige Konfiguration in /etc/minetest/minetest.conf erledigen. Alle Protokolldateien werden in /var/log/minetest geschrieben.
Systemd
Starten Sie den Server mit
# systemctl start minetest-server
Stoppen Sie den Server mit
# systemctl stop minetest-server
Sie können das Starten des Servers beim Hochfahren deaktivieren mit
# systemctl disable minetest-server
Sie können mehrere Server mit unterschiedlichen Konfigurationen mittels der Schablonen-Unit-Funktionalität von Systemd starten.
# systemctl start minetest-server@pvp.service
Sofern Sie die Konfigurationsdatei für diesen Server auch in /etc/minetest/pvp.conf
gespeichert haben, wird der Server nun diese zweite Konfiguration benutzen und alles in /var/log/minetest/pvp.log
protokollieren. Ersetzten Sie pvp
nach dem @ einfach durch den von Ihnen gewünschten Namen.
SysVinit
Falls Systemd nicht Ihr Standard-Initsystem ist und Sie noch die Konfiguration im alten SysVinit-Stil bevorzugen, können Sie den Befehl “service” zum Starten und Stoppen Ihres Servers benutzen.
# service minetest-server start
oder
#service minetest-server stop
Weitere Informationen
- Eine umfassende Erklärung der Serverkonfigurationsdatei finden Sie auf der Seite minetest.conf.
- Sie können verschiedene Datenbanken für Ihre Welt verwenden.
- Online-Skript zum Installieren und Kompilieren von Mintest von Git für Debian, Ubuntu und Mint
- Englischsprachige Anleitung zum Erstellen eines schnellen Minetest-Servers unter Debian
- Die Seite Serverbefehle enthält eine Liste nützlicher Befehle.
- Technische Bezeichner die mit den Befehlen
/give
und/giveme
benutzt werden. - Umfassende Informationen über das Privilegiensystem finden Sie hier.
Ein paar Tipps
- Das Verzeichnis
.minetest
enthält die Spieldaten (worlds, config, debug.txt
). - Die Verzeichnisstruktur von Minetest, nachdem es als Client und Server lief, mit den Positionen (…) von benutzerdefiniertem Inhalt wird etwa so aussehen:
minetest/ ├── bin/ ├── builtin/ ├── cache/ │ ├── media/ │ └── tmp/ ├── client/ │ ├── serverlist/ │ └── shaders/ │ ├── … ├── doc/ ├── fonts/ ├── games/ │ ├── minetest_game/ │ ├── minimal/ │ └── … (zusätzlich installierte Spiele) ├── locale/ (viele Sprachverzeichnisse) ├── mods/ │ └── … (zusätzlich installierte Modifikationen und Modifikationenpakete) ├── textures/ │ ├── base/ │ │ └── pack/ │ └── … (zusätzlich installiere Texturenpakete) └── worlds/ └── … (gespeicherte Welten, einige mit exklusiven Weltmodifikationen)