Este tutorial explica como configurar um servidor Counter-Strike: Global Offensive no Arch Linux.
Este tutorial pressupõe que você tenha feito login com uma conta de usuário padrão e tenha privilégios sudo. Estaremos usando uma conta de usuário normal porque a criação de pacotes com o AUR não deve ser feita a partir da conta raiz.
Antes de você começar
Se você estiver usando uma versão de 64 bits do Arch Linux, é muito importante que você tenha o multilib
repositório ativado. Se não estiver habilitado, o SteamCMD não pode baixar ou executar os arquivos do servidor do jogo. Para ativar o multilib, simplesmente remova o comentário das linhas a seguir /etc/pacman.conf
.
[multilib]
Include = /etc/pacman.d/mirrorlist
Isso não se aplica a sistemas Arch Linux de 32 bits.
Instalar o SteamCMD
Existe um pacote AUR para o SteamCMD. É possivelmente a maneira mais fácil de instalar o SteamCMD no Arch. Há algumas coisas a se notar sobre isso:
- Todos os caminhos relativos são relativos a
/usr/share/steamcmd
. - Para atualizar o próprio SteamCMD, você deve estar na conta root.
Se você estiver em um servidor de 64 bits, deverá instalar o pacote lib32-gcc-libs
.
sudo pacman -Sy lib32-gcc-libs
Agora devemos construir o pacote. Usando curl, baixe o tarball para o pacote.
curl -O https://aur.archlinux.org/packages/st/steamcmd/steamcmd.tar.gz
Quando o download terminar, extraia e mude para o diretório criado.
tar -xvzf steamcmd.tar.gz
cd steamcmd
Agora, usando o makepkg, construa o pacote.
makepkg -ci
Se você não passou o -i
sinalizador para o comando makepkg, use o seguinte comando para instalá-lo.
sudo pacman -U *.pkg.tar.xz
Agora você tem o SteamCMD instalado e pronto para fazer o download do servidor Counter-Strike: Global Offensive.
Instale o Counter-Strike: Global Offensive Server
Este guia usa um usuário separado para executar o servidor, portanto, criaremos um novo usuário e grupo csgo com sua própria pasta inicial /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
Agora para instalar o servidor.
sudo -u csgo steamcmd +login anonymous +force_install_dir ~csgo/server +app_update 740 validate +quit
Uma vez terminado o download, você tem o servidor instalado.
Configurando
Embora você possa executar o servidor, alguma configuração deve ser feita para que o servidor não seja muito genérico. O arquivo principal no qual colocamos as configurações é o server.cfg
arquivo. Abaixo está um server.cfg
arquivo muito básico .
Para abrir / criar o arquivo, use seu editor favorito. Eu uso o vim neste exemplo.
sudo -u csgo vim ~csgo/server/csgo/cfg/server.cfg
Adicione o seguinte. Mais configurações podem ser encontradas no Wiki do Desenvolvedor da Valve. Certifique-se de alterar algumas das configurações para atender às suas necessidades.
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
Executando seu servidor
Para executar seu servidor autônomo, você precisará de um multiplexador como o GNU Screen ou o tmux . Neste artigo, vou usar o tmux para executar o servidor, mas se você preferir e souber como usar a tela, fique à vontade para usá-lo.
Instale o tmux usando o pacman.
sudo pacman -Sy tmux
Você pode iniciar o servidor com o seguinte comando. Você pode alterar o mapa, se desejar. Por favor, leia as “Notas Finais” para mais informações sobre os valores game_type
e game_mode
. Este exemplo é para um servidor casual clássico.
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 você precisar anexar ao console, execute o seguinte.
sudo -u csgo tmux attach -t csgo-console
Você pode deixar o console do servidor, digitando CTRL + B , em seguida, liberando essas chaves e, em seguida, pressionando D .
Rodando com systemd
Executar o servidor com o systemd é conveniente por vários motivos. A principal delas é que você pode começar quando o VPS for iniciado. Isso requer que um script e uma unidade de sistema sejam gravados. Mesmo que seja uma boa ideia, é opcional .
A primeira coisa a escrever é o script de início. Para criar o script, use seu editor favorito. Aqui o vim é usado, mas você pode usar qualquer editor de texto como o nano.
sudo -u csgo vim ~csgo/server/csgo.sh
Adicione o seguinte e certifique-se de olhar para a linha com o comando start, pois tem o modo de jogo e o tipo.
#!/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
Agora você precisa fazer a unidade systemd.
sudo vim /usr/lib/systemd/system/csgo.service
Adicione o seguinte.
[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
Agora, verifique se o csgo.sh
arquivo é executável.
sudo chmod +x ~csgo/server/csgo.sh
Depois de tudo isso, você pode usar systemctl
para iniciar e parar o servidor. Além disso, você pode usá-lo para iniciar a inicialização.
Para iniciar:
sudo systemctl start csgo.service
Parar:
sudo systemctl stop csgo.service
Reiniciar:
sudo systemctl restart csgo.service
Para habilitar no boot:
sudo systemctl enable csgo.service
Para desativar na inicialização:
sudo systemctl disable csgo.service
Mesmo que o systemd manipule iniciar e parar o servidor, você pode acessar o console com o seguinte comando.
sudo -u csgo tmux attach -t csgo-console
Notas Finais
O SteamCMD é instalado em uma área onde somente o root pode alterar arquivos (veja a nota na seção “Instalar o SteamCMD”). Se você precisar atualizar o próprio SteamCMD, basta executá-lo como root.
sudo steamcmd +quit
Se você precisar atualizar o servidor. Primeiro pare o servidor e depois use o SteamCMD para atualizar (usando o mesmo comando para instalar).
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
O modo de jogo e o tipo de jogo no comando de partida são importantes dependendo do tipo de servidor que você deseja. Aqui está uma tabela rápida dos valores possíveis.
Game Mode | game_type | game_mode
Classic Casual | 0 | 0
Classic Competitive | 0 | 1
Arms Race | 1 | 0
Demolition | 1 | 1
Deathmatch | 1 | 2
Há muito mais tópicos de configuração não abordados neste tutorial. Se você precisar de mais informações, por favor consulte o Wiki Valve Developer.