Questo tutorial spiega come impostare un server Counter-Strike: Global Offensive su Arch Linux.
Questo tutorial presuppone che tu abbia effettuato l'accesso con un account utente standard e disponga dei privilegi di sudo. Utilizzeremo un normale account utente perché la creazione di pacchetti con AUR non dovrebbe essere eseguita dall'account root.
Prima di iniziare
Se si utilizza una versione a 64 bit di Arch Linux, è molto importante avere il multilib
repository abilitato. Se non è abilitato, SteamCMD non può scaricare o eseguire i file del server di gioco. Per abilitare multilib, decommenta semplicemente le seguenti righe in /etc/pacman.conf
.
[multilib]
Include = /etc/pacman.d/mirrorlist
Questo non si applica ai sistemi Arch Linux a 32 bit.
Installa SteamCMD
Esiste un pacchetto AUR per SteamCMD. È forse il modo più semplice per installare SteamCMD su Arch. Ci sono alcune cose da notare al riguardo:
- Tutti i percorsi relativi sono relativi a
/usr/share/steamcmd
.
- Per aggiornare SteamCMD stesso, devi essere sull'account di root.
Se ci si trova su un server a 64 bit, è necessario installare il pacchetto lib32-gcc-libs
.
sudo pacman -Sy lib32-gcc-libs
Ora dobbiamo compilare il pacchetto. Usando l'arricciatura, scarica il tarball per il pacchetto.
curl -O https://aur.archlinux.org/packages/st/steamcmd/steamcmd.tar.gz
Al termine del download, estrarre e passare alla directory creata.
tar -xvzf steamcmd.tar.gz
cd steamcmd
Ora, usando makepkg, costruisci il pacchetto.
makepkg -ci
Se non hai passato il -i
flag al comando makepkg, usa il seguente comando per installarlo.
sudo pacman -U *.pkg.tar.xz
Ora SteamCMD è installato e pronto per scaricare Counter-Strike: server offensivo globale.
Installa Counter-Strike: Global Offensive Server
Questa guida utilizza un utente separato per eseguire il server, quindi creeremo un nuovo utente e gruppo csgo con la sua cartella home in /var/lib
.
sudo groupadd csgo
sudo mkdir /var/lib/csgo
sudo useradd -d /var/lib/csgo -g csgo -s /bin/bash csgo
sudo chown csgo.csgo -R /var/lib/csgo
Ora per installare il server.
sudo -u csgo steamcmd +login anonymous +force_install_dir ~csgo/server +app_update 740 validate +quit
Al termine del download, il server è installato.
Configurazione
Sebbene sia possibile eseguire il server, è necessario eseguire alcune configurazioni in modo che il server non sia troppo generico. Il file principale in cui inseriamo le impostazioni è il server.cfg
file. Di seguito è riportato un server.cfg
file molto semplice .
Per aprire / creare il file, utilizzare l'editor preferito. Uso vim in questo esempio.
sudo -u csgo vim ~csgo/server/csgo/cfg/server.cfg
Aggiungi quanto segue. Altre impostazioni sono disponibili nel Wiki per sviluppatori Valve. Assicurati di modificare alcune impostazioni in base alle tue esigenze.
hostname "Server Name"
rcon_password "password"
sv_password ""
sv_contact "[email protected]"
sv_tags ""
sv_region "255"
sv_lan "0"
exec banned_user.cfg
exec banned_ip.cfg
writeid
writeip
Esecuzione del server
Per eseguire il tuo server incustodito, avrai bisogno di un multiplexer come GNU Screen o tmux . In questo articolo userò tmux per eseguire il server, ma se preferisci e sai come usare lo schermo, sentiti libero di usarlo.
Installa tmux usando pacman.
sudo pacman -Sy tmux
È possibile avviare il server con il seguente comando. Se lo desideri, puoi cambiare la mappa. Leggere le "Note finali" per ulteriori informazioni sui valori game_type
e game_mode
. Questo esempio è per un server casual classico.
sudo -u csgo tmux new-session -d -s csgo-console -d 'cd /var/lib/csgo/server/; ./srcds_run -console -game csgo -usercon +game_type 0 +game_mode 0 +mapgroup mg_active +map de_dust2'
Se è necessario collegarsi alla console, eseguire quanto segue.
sudo -u csgo tmux attach -t csgo-console
È possibile lasciare la console server digitando CTRL + B poi rilasciando quelle chiavi e quindi premendo D .
In esecuzione con systemd
L'esecuzione del server con systemd è conveniente per molte ragioni. Il principale è che puoi avviarlo all'avvio del VPS. Ciò richiede uno script e un'unità systemd da scrivere. Anche se questa è una buona idea, è facoltativa .
La prima cosa da scrivere è lo script iniziale. Per creare lo script, usa il tuo editor preferito. Qui viene utilizzato vim, ma è possibile utilizzare qualsiasi editor di testo come nano.
sudo -u csgo vim ~csgo/server/csgo.sh
Aggiungi quanto segue e assicurati di guardare la linea con il comando di avvio in quanto ha la modalità e il tipo di gioco.
#!/bin/sh
USER=$2
if [ -z $2 ]; then
USER="csgo"
fi
case "$1" in
start)
sudo -u $ tmux new-session -d -s csgo-console -d 'cd /var/lib/csgo/server/; /var/lib/csgo/server/srcds_run -console -game csgo -usercon +game_type 0 +game_mode 0 +mapgroup mg_active +map de_dust2'
;;
stop)
sudo -u $ tmux send-keys -t csgo-console 'say Server shutting down in 10 seconds!' C-m
sleep 10
sudo -u $ tmux send-keys -t csgo-console 'quit' C-m
sleep 5
;;
*)
echo "Usage: $0 user"
esac
exit 0
Ora devi creare l'unità systemd.
sudo vim /usr/lib/systemd/system/csgo.service
Aggiungi quanto segue.
[Unit]
Description=Counter-Strike: Global Offensive Server (SRCDS)
After=local-fs.target network.target
[Service]
ExecStart=/var/lib/csgo/server/csgo.sh start
ExecStop=/var/lib/csgo/server/csgo.sh stop
Type=forking
[Install]
WantedBy=multi-user.target
Ora assicurati che il csgo.sh
file sia eseguibile.
sudo chmod +x ~csgo/server/csgo.sh
Dopo tutto ciò, è possibile utilizzare systemctl
per avviare e arrestare il server. Inoltre puoi usarlo per avviarlo all'avvio.
Iniziare:
sudo systemctl start csgo.service
Fermare:
sudo systemctl stop csgo.service
Ricominciare:
sudo systemctl restart csgo.service
Per abilitare all'avvio:
sudo systemctl enable csgo.service
Per disabilitare all'avvio:
sudo systemctl disable csgo.service
Anche se systemd gestisce l'avvio e l'arresto del server, è possibile accedere alla console con il comando seguente.
sudo -u csgo tmux attach -t csgo-console
Note finali
SteamCMD è installato in un'area in cui solo i root possono cambiare file (vedi nota nella sezione "Installa SteamCMD"). Se hai mai bisogno di aggiornare SteamCMD stesso, eseguilo come root.
sudo steamcmd +quit
Se è necessario aggiornare il server. Prima arrestare il server e quindi utilizzare SteamCMD per l'aggiornamento (utilizzando lo stesso comando per l'installazione).
sudo systemctl stop csgo.service
sudo -u csgo steamcmd +login anonymous +force_install_dir ~csgo/server +app_update 740 validate +quit
sudo systemctl start csgo.service
La modalità di gioco e il tipo di gioco nel comando di avvio sono importanti a seconda del tipo di server desiderato. Ecco una breve tabella dei possibili valori.
Game Mode | game_type | game_mode
Classic Casual | 0 | 0
Classic Competitive | 0 | 1
Arms Race | 1 | 0
Demolition | 1 | 1
Deathmatch | 1 | 2
Ci sono molti più argomenti di configurazione non trattati in questo tutorial. Per ulteriori informazioni, consultare il Wiki per sviluppatori di valvole.