|
|
Line 1: |
Line 1: |
| {{lang|title=SteamCMD|SteamCMD}}
| | workshop_download_item 431960 3047489690 |
| O '''Console do Cliente Steam''' ou '''SteamCMD''' é uma versão de linha de comando do cliente Steam. Seu principal uso é instalar e atualizar vários servidores dedicados disponíveis no Steam usando uma interface de linha de comando. Funciona com jogos que usam o sistema de conteúdo [[SteamPipe:pt-br|SteamPipe]]. Todos os jogos foram migrados da ferramente obsoleta [[HLDSUpdateTool:pt-br|HLDSUpdateTool]] para o SteamCMD.
| |
| | |
| == Baixando o SteamCMD ==
| |
| === Windows ===
| |
| | |
| 1. Crie uma pasta para o SteamCMD.
| |
| | |
| ''Por exemplo''
| |
| | |
| C:\steamcmd
| |
| | |
| 2. Faça o download do SteamCMD para Windows: https://steamcdn-a.akamaihd.net/client/installer/steamcmd.zip
| |
| | |
| 3. Extraia o conteúdo do zip para a pasta.
| |
| | |
| === Linux ===
| |
| | |
| Crie uma conta de usuário chamada ''steam'' tpara executar o SteamCMD com segurança, isolando-o do resto do sistema operacional. '''Não execute o steamcmd enquanto estiver operando como usuário root''' - isso é um '''risco de segurança'''.
| |
| | |
| 1. Como usuário root, crie o usuário ''steam'':
| |
| | |
| useradd -m steam
| |
| | |
| 2. Vá para sua pasta inicial:
| |
| cd /home/steam
| |
| | |
| ==== Pacote de repositórios ====
| |
| 1. É recomendado instalar o pacote SteamCMD a partir dos seus repositórios de distribuição, se disponível:
| |
| | |
| Ubuntu/Debian
| |
| sudo apt-get install steamcmd
| |
| | |
| RedHat/CentOS
| |
| yum install steamcmd
| |
| | |
| Para o Arch Linux: instale [https://aur.archlinux.org/packages/steamcmd/ steamcmd do AUR].
| |
| | |
| 2. Vincule o executável do '''steamcmd''':
| |
| ln -s /usr/games/steamcmd steamcmd
| |
| | |
| ==== Manualmente ====
| |
| 1. Antes de começar, você deve primeiro instalar as dependências necessárias para executar o SteamCMD:
| |
| | |
| Ubuntu/Debian 64-Bit
| |
| | |
| sudo apt-get install lib32gcc1
| |
| | |
| RedHat/CentOS
| |
| | |
| yum install glibc libstdc++
| |
| | |
| RedHat/CentOS 64-Bit
| |
| | |
| yum install glibc.i686 libstdc++.i686
| |
| | |
| 2. Como usuário root, escalonar para o usuário de ''steam'':
| |
| | |
| su - steam
| |
| | |
| Se você não estiver efetuando login como root e usar <code>sudo</code> a administração para escalonar para o usuário ''steam'' da seguinte maneira:
| |
| | |
| sudo -iu steam
| |
| | |
| 3. Crie um diretório para o SteamCMD e mude para ele.
| |
| | |
| mkdir ~/Steam && cd ~/Steam
| |
| | |
| 4. Faça o download e extraia o SteamCMD para Linux.
| |
| | |
| curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz" | tar zxvf -
| |
| | |
| === OS X ===
| |
| | |
| 1. Abra o Terminal.app e crie um diretório para o SteamCMD.
| |
| | |
| mkdir ~/Steam && cd ~/Steam
| |
| | |
| 2. Faça o download e extraia o SteamCMD para o OS X.
| |
| | |
| curl -sqL "https://steamcdn-a.akamaihd.net/client/installer/steamcmd_osx.tar.gz" | tar zxvf -
| |
| | |
| == Executando o SteamCMD ==
| |
| | |
| ''Na primeira execução, o SteamCMD atualizará automaticamente e entrará em você em um prompt<code>Steam></code>. Digite <code>help</code> para mais informações.''
| |
| | |
| === Windows ===
| |
| Abra um prompt de comando e inicie o SteamCMD.
| |
| | |
| cd C:\steamcmd
| |
| steamcmd
| |
| | |
| === Linux/OS X ===
| |
| Abra um terminal e inicie o SteamCMD.
| |
| | |
| Se você instalou usando o pacote de repositórios:
| |
| | |
| cd ~
| |
| steamcmd
| |
| | |
| Se você instalou manualmente:
| |
| cd ~/Steam
| |
| ./steamcmd.sh
| |
| | |
| == Login no SteamCMD ==
| |
| | |
| === Anônimo ===
| |
| | |
| Para baixar a maioria dos servidores de jogos, você pode fazer o login anonimamente.
| |
| | |
| login anonymous
| |
| | |
| === Com uma conta Steam ===
| |
| | |
| Alguns servidores exigem que você faça o login com uma conta Steam.
| |
| {{Note|Por razões de segurança, é recomendável que você crie uma nova conta Steam apenas para seus servidores dedicados.}}
| |
| {{Note|Um usuário só pode estar logado uma vez a qualquer momento (contando tanto o cliente gráfico como os logins do SteamCMD).).}}
| |
| | |
| login <username>
| |
| | |
| Em seguida, digite sua senha.
| |
| | |
| Se o Steam Guard estiver ativado na conta do usuário, verifique seu e-mail em busca de um código de acesso do Steam Guard e insira-o. Isto é requerido apenas na primeira vez que você efetua login (assim como quando você exclui os arquivos onde o SteamCMD armazena as informações de login).
| |
| | |
| Você deverá ver uma mensagem informando que fez login com sucesso em sua conta.
| |
| | |
| == Baixando um aplicativo ==
| |
| | |
| 1. Inicie o SteamCMD e faça o login.
| |
| | |
| 2. Defina seu diretório de instalação do aplicativo. (Nota: use barras para o Linux / OS X e barras invertidas para o Windows.)
| |
| | |
| force_install_dir <path>
| |
| | |
| por exemplo, um diretório chamado <code>cs_go</code> dentro do diretório atual:
| |
| | |
| force_install_dir ./cs_go/
| |
| | |
| '''Para Windows''': force_install_dir c:\cs_go\
| |
| | |
| 3. Instale ou atualize o aplicativo usando o comando <code>app_update</code> (sfornecendo um [[Steam Application IDs|ID de aplicativo do Steam]]). Por favor, verifique aqui a lista de servidores dedicados: [[Dedicated_Servers_List:pt-br|Lista de servidores dedicados ]]. Para validar também o aplicativo, adicione o comando <code>validate</code>. Para baixar uma branch(ramificação) beta, use a opção <code>-beta <betaname></code> – Por exemplo, a branch(ramificação) beta do HLDS é chamada <code>beta</code> e a branch(ramificação) do SrcDS é chamada de <code>prerelease</code>. Algumas branches(ramificações) são protegidas por senha; para poder fazer o download a partir delas, adicione também a opção <code>-betapassword <password></code>.
| |
| | |
| app_update <app_id> [-beta <betaname>] [-betapassword <senha>] [validate]
| |
| | |
| O HLDS é um caso especial: o ID do aplicativo é sempre 90 e um <code>mod</code> deve ser escolhido primeiro. Isso é feito configurando a opção de configuração do aplicativo modpara o valor solicitado.
| |
| | |
| app_set_config <app_id> <option_name> <option_value>
| |
| | |
| : Exemplo: Instale e valide o servidor dedicado do Counter-Strike: Global Offensive:
| |
| app_update 740 validate
| |
| : Exemplo: Instale e valide o HLDS com o Team Fortress Classic:
| |
| app_set_config 90 mod tfc
| |
| app_update 90 validate
| |
| {{bug|HLDS (appid 90) requer atualmente várias execuções do comando <code>app_update<code> antes que todos os arquivos necessários sejam instalados com sucesso. Basta executar <code>app_update 90 validate</code>várias vezes até que não ocorram mais atualizações.}}
| |
| : Exemplo: Instale e valide a versão beta do HLDS (Half-Life):
| |
| app_update 90 -beta beta validate
| |
| : Exemplo: instale e valide a instalação do servidor dedicado do Counter-Strike: Source:
| |
| app_update 232330 -beta prerelease validate
| |
| : Exemplo: instalar e validar uma versão beta privada do servidor dedicado Natural Selection 2 (nome <code>alpha</code>, senha <code>natsel</code>):
| |
| : [beta name] is the name of the private beta branch
| |
| : [beta code] is the password for the private beta branch
| |
| app_update 4940 -beta alpha -betapassword natsel validate
| |
| | |
| 3. Uma vez terminado, digite <code>quit</code> para fazer logoff corretamente dos servidores Steam.
| |
| | |
| quit
| |
| | |
| === Validar ===
| |
| validate
| |
| Validate é um comando que verificará todos os arquivos do servidor para garantir que correspondam aos arquivos do SteamCMD. Este comando é útil se você acha que os arquivos podem estar ausentes ou corrompidos.
| |
| | |
| {{Note|A validação substituirá todos os arquivos que foram alterados. Isso pode causar problemas com servidores personalizados. Por exemplo, se você personalizar <code>mapcycle.txt</code>, esse arquivo será substituído pelo padrão do servidor. Todos os arquivos que não fazem parte da instalação padrão não serão afetados.}}
| |
| | |
| É recomendado que você use este comando somente na instalação inicial e se houver problemas no servidor.
| |
| | |
| === Servidores Suportados ===
| |
| | |
| Uma lista de servidores conhecidos que usam o SteamCMD para instalar está disponível na página [[Dedicated_Servers_List:pt-br|Lista de servidores dedicados ]]. Note que qualquer comando extra listado precisa ser executado antes da linha app_update.
| |
| | |
| == Automatizando o SteamCMD ==
| |
| | |
| Existem duas maneiras de automatizar o SteamCMD. (Substitua <code>steamcmd</code> por <code>./steamcmd.sh</code> no Linux/OS X.)
| |
| | |
| === Linha de comando ===
| |
| | |
| {{Note|Ao usar a <code>-betaopção</code> na linha de comando, ela deve ser citada de maneira especial, como <code>+app_update "90 -beta beta"</code>.}}
| |
| {{Note|Se isso não funcionar, tente colocá-lo como em seu lugar <code>"+app_update 90 -beta beta"</code>.}}
| |
| | |
| Acrescente os comandos à linha de comando prefixados com mais caracteres, por exemplo:
| |
| steamcmd +login anonymous +force_install_dir ../csgo_ds +app_update 740 +quit
| |
| | |
| Para instalar um mod de jogo específico para HL1, como Counter-Strike: Condition Zero:
| |
| steamcmd +login anonymous +force_install_dir ../czero +app_set_config 90 mod czero +app_update 90 +quit
| |
| | |
| Para um jogo que requer logins, como Killing Floor:
| |
| steamcmd +login <username> <password> +force_install_dir c:\KFServer\ +app_update 215350 +quit
| |
| | |
| === Criando um script ===
| |
| | |
| 1. Coloque seus comandos do SteamCMD em um arquivo de texto. (Você pode adicionar comentários que começam com <code>//</code>.) Exemplo:
| |
| <syntaxhighlight>
| |
| // update_csgo_ds.txt
| |
| //
| |
| @ShutdownOnFailedCommand 1 //definido como 0 se atualizar vários servidores de uma só vez
| |
| @NoPromptForPassword 1
| |
| login <username> <password>
| |
| //para servidores que não precisam de login
| |
| //login anônimo
| |
| force_install_dir ../csgo_ds
| |
| app_update 740 validate
| |
| quit
| |
| </syntaxhighlight>
| |
| | |
| 2. Execute o SteamCMD com a <code>+runscriptopção</code>, referindo-se ao arquivo que você criou anteriormente. Exemplo:
| |
| | |
| steamcmd +runscript csgo_ds.txt
| |
| | |
| == Instalação entre plataformas ==
| |
| | |
| É possível escolher a plataforma para a qual o SteamCMD deve baixar arquivos, mesmo que não seja a plataforma em que está atualmente sendo executada. Isso é feito usando a variavel <code>@sSteamCmdForcePlatformType</code>. (Sim, esses são dois "s" no início do nome da variável.) For example, Por exemplo, para baixar o servidor dedicado do Windows CSGO no Linux, você pode executar o seguinte comando:
| |
| | |
| ./steamcmd.sh +@sSteamCmdForcePlatformType windows +login anonymous +force_install_dir ../csgo_ds +app_update 740 validate +quit
| |
| | |
| ou use o seguinte script:
| |
| | |
| <syntaxhighlight>
| |
| @ShutdownOnFailedCommand 1
| |
| @NoPromptForPassword 1
| |
| @sSteamCmdForcePlatformType windows
| |
| login anonymous
| |
| force_install_dir ../csgo_ds
| |
| app_update 740 validate
| |
| quit
| |
| </syntaxhighlight>
| |
| | |
| Os valores são suportados são <code>windows</code>, <code>macos</code> e <code>linux</code>.
| |
| | |
| == Windows Software/Scripts ==
| |
| | |
| === condenser ===
| |
| | |
| [https://github.com/sympatovit/condenser o condenser] é um bootstrapper para instalar, configurar e iniciar aplicativos de servidor dedicados do Steam.
| |
| === SteamCMD AutoUpdater ===
| |
| Instalar e atualizar automaticamente qualquer servidor de jogo
| |
| | |
| GitHub Repo:
| |
| https://github.com/C0nw0nk/SteamCMD-AutoUpdate-Any-Gameserver
| |
| | |
| === SteamCMD GUI ===
| |
| Esta ferramenta permite ao usuário usar o SteamCMD no Windows sem linhas de comando e / ou arquivos em lote.
| |
| | |
| GitHub Repo:
| |
| https://github.com/DioJoestar/SteamCMD-GUI
| |
| | |
| ===SteamCMD Guardian 1.2===
| |
| Veja e faça o download aqui: http://pastebin.com/BRUbsGQh
| |
| | |
| == Linux Scripts ==
| |
| | |
| ===Linux Game Server Managers===
| |
| [[File:LinuxGSM_Logo_White.png|right|thumb|370px|Linux Game Server Managers]]
| |
| O LinuxGSM é a ferramenta de linha de comando para implementação e gerenciamento rápidos e simples de servidores de jogos dedicados, usando o SteamCMD.
| |
| | |
| ====Recursos====
| |
| * Cópia de segurança
| |
| * Console
| |
| * Detalhes
| |
| * Instalador (SteamCMD)
| |
| * Monitor
| |
| * Alertas (Email, Pushbullet)
| |
| * Atualização (SteamCMD)
| |
| * Iniciar / Parar / Reiniciar servidor
| |
| | |
| ====Servidores Suportados====
| |
| Existem agora mais de 70 servidores de jogos diferentes suportados e em ascensão. Para uma lista completa, visite o site
| |
| | |
| ====Links====
| |
| Website: https://gameservermanagers.com
| |
| | |
| GitHub Repo: https://github.com/GameServerManagers/LinuxGSM
| |
| | |
| ===SteamCMD Guardian 1.2===
| |
| | |
| O seguinte script foi testado no Debian Wheezy.
| |
| | |
| Veja e faça o download aqui:
| |
| http://pastebin.com/hcpMpmaZ
| |
| | |
| | |
| '''Instalação'''
| |
| | |
| Para fazer este script funcionar, precisamos de um local. De preferência você criou um usuário (por exemplo, steam) com seu próprio diretório pessoal (/home/steam) e está logado como via SSH, tty ou usando su.
| |
| | |
| # Faça o arquivo.
| |
| #: <code>nano updateserver.sh</code>
| |
| # Cole o código
| |
| # Modifique o código, adicione '''pelo menos''' 1 jogo as linhas <code>DL_SV*=</code>.
| |
| # Feche o arquivo {{Key|Ctrl|O|}}, seguido por {{Key|enter}} e concluindo com {{Key|Ctrl|X}}.
| |
| # Give the file execute rights for the user
| |
| #: <code>chmod u+x ./updateserver.sh</code>
| |
| # Run the file
| |
| #: <code>./updateserver.sh</code>
| |
| | |
| O arquivo irá baixar automaticamente o SteamCMD, atualizá-lo e instalar todos os jogos escolhidos (até 4). Execute o arquivo novamente para atualizar os jogos.
| |
| | |
| == Problemas Conhecidos ==
| |
| ===ERROR! Failed to install app 'xxxxxx' (No subscription)===
| |
| | |
| ISe você receber o erro 'No subscription',o jogo/servidor que você está tentando baixar requer um login ou que você compre o jogo. Você terá que fazer o login com um nome de usuário e senha Steam - se isso não ajudar, talvez seja necessário adquirir uma cópia do jogo no Steam primeiro Veja [[Dedicated_Servers_List:pt-br|Lista de servidores dedicados ]].
| |
| | |
| {{Note|Por razões de segurança, é recomendável que você crie uma nova conta Steam apenas para seus servidores dedicados.}}
| |
| | |
| Por exemplo
| |
| <syntaxhighlight>
| |
| steamcmd +login <username> <password>
| |
| </syntaxhighlight>
| |
| | |
| === Bibliotecas de 32 bits em sistemas Linux de 64 bits ===
| |
| | |
| Como o SteamCMD é um binário de 32 bits, são necessárias bibliotecas de 32 bits.
| |
| | |
| O seguinte erro pode ocorrer:
| |
| | |
| steamcmd: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
| |
| | |
| A resolução depende da sua distribuição:
| |
| | |
| ==== Distribuições baseadas em Debian (Ubuntu, Mint, etc.) ====
| |
| | |
| sudo apt-get install lib32stdc++6
| |
| | |
| {{Note|<code>ia32-libs</code> não são necessários para instalar o SteamCMD; <code>lib32gcc1</code> basta.}}
| |
| | |
| Com o '''Debian 7 "Wheezy"''' você pode encontrar este erro:
| |
| | |
| The following packages have unmet dependencies: ia32-libs : Depends: ia32-libs-multiarch but it is not installable
| |
| E: Unable to correct problems, you have held broken packages.
| |
| | |
| Para corrigir isso, faça o seguinte:
| |
| <syntaxhighlight>
| |
| dpkg --add-architecture i386
| |
| apt-get update
| |
| apt-get install lib32gcc1
| |
| </syntaxhighlight>
| |
| | |
| ==== Distribuições baseadas no Red Hat (RHEL, Fedora, CentOS, etc.) ====
| |
| | |
| yum install glibc.i686 libstdc++.i686
| |
| | |
| ==== Arch Linux ====
| |
| Não se esqueça de primeiro ativar o [https://wiki.archlinux.org/index.php/Multilibrepositório multilib].
| |
| | |
| pacman -S lib32-gcc-libs
| |
| | |
| === Falha de login: sem conexão ===
| |
| | |
| Em servidores Linux, você pode enfrentar um erro "Falha de logon: sem conexão". Isso está relacionado a falta de regras do iptables. Você vai querer algo ao longo destas linhas:
| |
| <syntaxhighlight>
| |
| iptables -A INPUT -p udp -m udp --sport 27000:27030 --dport 1025:65355 -j ACCEPT
| |
| iptables -A INPUT -p udp -m udp --sport 4380 --dport 1025:65355 -j ACCEPT
| |
| </syntaxhighlight>
| |
| A lista de portas encontra-se aqui: https://support.steampowered.com/kb_article.php?ref=8571-GLVN-8711&l=english
| |
| | |
| Em servidores Windows, você pode experimentar "SteamUpdater: Erro: Falha no download: erro HTTP http" e "SteamUpdater: Erro: o Steam precisa estar online para atualizar. Confirme sua conexão de rede e tente novamente." Isso geralmente é corrigido, verificando "Detectar automaticamente as configurações" no IE (Internet Explorer) através das configurações de lan no menu de opções da Internet.
| |
| | |
| # Abra o Internet Explorer (IE).
| |
| # Clique em ''Ferramentas'' → ''Opções da Internet''
| |
| # Clique na guia ''Conexões''
| |
| # Na parte inferior, você deve ver as configurações da ''rede local (LAN)''.
| |
| # Marque a primeira caixa (''Detectar automaticamente as configurações'')
| |
| # Clique em ''OK'' e em ''Aplicar''. Tente executar o SteamCMD novamente; se ainda não funcionar. tente reduzir sua ''zona de nível de segurança da Internet'' para médio ou baixo. Você pode encontrar isso na guia ''Segurança em Opções da Internet''.
| |
| | |
| === Erros de inicialização do SteamCMD ===
| |
| ==== Não é possível localizar uma instância em execução do Steam ====
| |
| Você pode obter o seguinte erro ao iniciar um servidor com o Linux:
| |
| | |
| [S_API FAIL] SteamAPI_Init() failed; unable to locate a running instance of Steam, or a local steamclient.dll.
| |
| | |
| Resolva o problema ligando <code>steamclient.so</code> para o diretório <code>~/.steam/sdk32/steamclient.so</code>:
| |
| | |
| ln -s steamcmd/linux32/steamclient.so ~/.steam/sdk32/steamclient.so
| |
| | |
| ==== ulimit erro de inicialização do Linux ====
| |
| Alguns usuários podem receber um erro <code>ulimit</code> (sem permissão / não é possível abrir o arquivo) enquanto o script está sendo iniciado. TEste erro causado por uma configuração baixa do parâmetro <code>-n</code> (número de descritores de arquivo) de <code>ulimit</code>. O SteamCMD usa comandos padrão dentro do script de shell de inicialização para alterar o <code>ulimit</code> automaticamente, mas alguns servidores podem proibir <code>ulimit</code> valores crescentes após a inicialização (ou além de um limite definido por <code>root</code>).
| |
| | |
| Isso pode ser corrigido alterando o número do descritor de arquivo ulimit:
| |
| | |
| ulimit -n 2048
| |
| | |
| Se aparecer um erro (''sem permissão''), você precisará fazer o login como root para alterar o parâmetro. Para verificar a configuração atual, digite '''ulimit -a''' ; o sistema irá responder com muitas linhas, você precisa encontrar um:
| |
| | |
| open files (-n) 1024
| |
| Nesse caso, ''1024'' é o valor atual.
| |
| | |
| <code>root</code> também pode modificar os limites no <code>/etc/security/limits.conf</code> arquivo.
| |
| | |
| Na maioria dos casos, você simplesmente receberá uma mensagem de aviso, mas não impedirá a execução do SteamCMD.
| |
| | |
| === Apenas o mecanismo HLDS é baixado ===
| |
| | |
| Ao tentar baixar um mod HL1 como o TFC, inicialmente ele só baixa os arquivos de mecanismo do HLDS, mas não o mod. Isso acontece com a versão regular e a versão beta. Você pode ter que tentar várias vezes até que todos os arquivos necessários sejam baixados, mas uma vez feito isso, os arquivos devem atualizar corretamente na próxima vez.
| |
| | |
| Solução alternativa para este problema aqui: http://danielgibbs.co.uk/2017/10/hlds-steamcmd-workaround-appid-90-part-ii/
| |
| | |
| Apenas apagar os arquivos do appmanifest, sem baixar os substitutos de terceiros, pode funcionar também! Você vai ter um erro no início, porém, reclamando que algo deu errado, o que é devido aos arquivos excluídos.
| |
| | |
| Em uma nota lateral, por algum motivo, o CS também é instalado.
| |
| | |
| == Veja também ==
| |
| * [[Source Dedicated Server]]
| |
| * [[Half-Life Dedicated Server]]
| |
| * [[Dedicated_Servers_List:pt-br|Lista de servidores dedicados ]]
| |
| * [[SteamCMDui]]
| |
| | |
| [[Category:Steam]]
| |
| [[Category:Steam Applications]]
| |
| [[Category:Dedicated Server]]
| |