Mielőtt elkezded
Telepítse a SteamCMD-t
Telepítse a Team Fortress 2 szervert
Konfigurálás
A szerver futtatása
Futás systemd-vel
Végső megjegyzések
Ez az oktatóanyag elmagyarázza, hogyan állíthat be egy Team Fortress 2 szervert Arch Linux rendszeren. Feltételezem, hogy nem root felhasználói fiókkal van bejelentkezve, amely sudo hozzáféréssel rendelkezik. Ez az oktatóanyag AUR-t használ a csomagok felépítéséhez, és ezt a műveletet nem szabad a root fiókból végrehajtani.
Mielőtt elkezded
Nagyon fontos, hogy a multilibtárat akkor és csak akkor engedélyezze, ha 64 bites (amd64) kiszolgálón van. Ha nincs engedélyezve, akkor a SteamCMD nem fut, és még a szerver fájljait sem tudja letölteni. Ehhez törölnie kell a következő sorok megjegyzéseit a következőben /etc/pacman.conf.
[multilib]
Include = /etc/pacman.d/mirrorlist
Ha 32 bites (i686) Arch-ot használ, ezt nyugodtan figyelmen kívül hagyhatja.
Telepítse a SteamCMD-t
Van egy AUR csomag a SteamCMD-hez, és ez az egyik legegyszerűbb módja a SteamCMD telepítésének az Archra. Van azonban egy-két furcsaság ezzel kapcsolatban:
- Minden relatív elérési út relatív
/usr/share/steamcmd.
- Magának a SteamCMD-nek a frissítéséhez root felhasználónak kell lennie.
Ha 64 bites szervert használ, telepítenie kell a csomagot lib32-gcc-libs.
sudo pacman -Sy lib32-gcc-libs
Most meg kell építenünk a csomagot. A curl használatával töltse le a csomag tarballját.
curl -O http://media.steampowered.com/installer/steamcmd_linux.tar.gz
Miután a letöltés befejeződött, csomagolja ki és váltson át a létrehozott könyvtárba.
tar -xvzf steamcmd.tar.gz
cd steamcmd
Most makepkg segítségével készítse el a csomagot.
makepkg -ci
Ha nem adtad át a -iflaget a makepkg parancsnak, telepítsd a pacman segítségével.
sudo pacman -U *.pkg.tar.xz
Most már telepítve van a SteamCMD, és készen áll a Team Fortress 2 szerver letöltésére.
Telepítse a Team Fortress 2 szervert
Ez az útmutató egy külön felhasználót használ a kiszolgáló futtatásához, ezért létrehozunk egy új tf2 felhasználót és csoportot a saját home mappájával a /var/lib.
sudo groupadd tf2
sudo mkdir /var/lib/tf2
sudo useradd -d /var/lib/tf2 -g tf2 -s /bin/bash tf2
sudo chown tf2.tf2 -R /var/lib/tf2
Most telepítse a szervert.
sudo -u tf2 steamcmd +login anonymous +force_install_dir ~tf2/server +app_update 232250 validate +quit
A letöltés befejeztével a szerver telepítve van.
Konfigurálás
Bár futtathatja a szervert, bizonyos beállításokat el kell végezni, hogy a szerver ne legyen túl általános. A fő fájl, amelybe a beállításokat megadjuk, a server.cfgfájl. Az alábbiakban egy nagyon egyszerű server.cfgfájl található.
A fájl megnyitásához/létrehozásához használja kedvenc szerkesztőjét. Itt a vim-et használják, de bármilyen szövegszerkesztőt használhat, például a nano-t.
sudo -u tf2 vim ~tf2/server/tf/cfg/server.cfg
Adja hozzá a következőket. További beállítások a Team Fortress 2 wiki és a Valve fejlesztői oldalán találhatók. Ügyeljen arra, hogy az Ön igényei szerint módosítson néhány beállítást.
hostname "Server Name"
rcon_password "password"
sv_password ""
sv_contact "email@example.com"
sv_tags ""
sv_region "255"
sv_lan "0"
exec banned_user.cfg
exec banned_ip.cfg
writeid
writeip
A szerver futtatása
Ismeretes, hogy szükség van egy multiplexerre, mint a GNU Screen vagy a tmux, hogy felügyelet nélkül fusson a szerver. Itt a tmux-ot fogjuk használni a szerver futtatásához, de ha jobban szereti és tudja, hogyan kell használni a képernyőt, akkor nyugodtan használja.
Telepítse a tmux-ot a pacman segítségével.
sudo pacman -Sy tmux
A szervert a következő paranccsal indíthatja el. Kívánság szerint megváltoztathatja a térképet és a maxplayert.
sudo -u tf2 tmux new-session -d -s tf2-console -d '~tf2/server/srcds_run -console -game tf +map cp_dustbowl +maxplayers 24'
Ha valaha is csatlakoznia kell a konzolhoz, futtassa a következőt.
sudo -u tf2 tmux attach -t tf2-console
Kiléphet a szerverkonzolból a CTRL + B billentyűkombináció lenyomásával, majd a billentyűk felengedésével, majd a D megnyomásával .
Futás systemd-vel
A kiszolgálót a systemd-vel futtatni több okból is kényelmes. A legfontosabb az, hogy a VPS indulásakor elindíthatja. Ehhez meg kell írni egy szkriptet és egy rendszeregységet. Bár ez jó ötlet, nem kötelező .
Az első dolog, amit meg kell írni, az a kezdőszkript. A szkript létrehozásához használja kedvenc szerkesztőjét. Itt a vim-et használják, de bármilyen szövegszerkesztőt használhat, például a nano-t.
sudo -u tf2 vim ~tf2/server/tf2.sh
Adja hozzá a következőket.
#!/bin/sh
USER=$2
if [ -z $2 ]; then
USER="tf2"
fi
case "$1" in
start)
sudo -u $ tmux new-session -d -s tf2-console -d '/var/lib/tf2/server/srcds_run -console -game tf +map cp_dustbowl +maxplayers 24'
;;
stop)
sudo -u $ tmux send-keys -t tf2-console 'say Server shutting down in 10 seconds!' C-m
sleep 10
sudo -u $ tmux send-keys -t tf2-console 'quit' C-m
sleep 5
;;
*)
echo "Usage: $0 user"
esac
exit 0
Now you need to make the systemd unit. To create the unit, use your favorite editor. Here vim is used, but you can use any text editor like nano.
sudo vim /usr/lib/systemd/system/tf2.service
Add the following.
[Unit]
Description=Team Fortress 2 Server (SRCDS)
After=local-fs.target network.target
[Service]
ExecStart=/var/lib/tf2/server/tf2.sh start
ExecStop=/var/lib/tf2/server/tf2.sh stop
Type=forking
[Install]
WantedBy=multi-user.target
Now make sure the tf2.sh file is executable.
sudo chmod +x ~tf2/server/tf2.sh
After all that, you can use systemctl to start and stop the server. Also you can use it to make it start on boot.
To start:
sudo systemctl start tf2.service
To stop:
sudo systemctl stop tf2.service
To restart:
sudo systemctl restart tf2.service
To enable at boot:
sudo systemctl enable tf2.service
To disable at boot:
sudo systemctl disable tf2.service
Even though systemd is handling starting and stopping the server, you can still access the console with the following command:
sudo -u tf2 tmux attach -t tf2-console
Final Notes
SteamCMD is installed in an area where only root can change files (see note in "Install SteamCMD"). If you ever need to upgrade SteamCMD itself, just run it as root.
sudo steamcmd +quit
If you need to update the server. First stop the server and then use SteamCMD to update (using the same command to install).
sudo systemctl stop tf2.service
sudo -u tf2 steamcmd +login anonymous +force_install_dir ~tf2/server +app_update 232250 validate +quit
sudo systemctl start tf2.service
There are a lot more configuration topics that are not covered in this tutorial. If you need more information, please refer to the Team Fortress 2 Wiki and the Valve Developer Wiki.