SteamCMD

From Valve Developer Community
Jump to: navigation, search
English (en)Deutsch (de)Español (es)Français (fr)한국어 (ko)Nederlands (nl)Polski (pl)Português do Brasil (pt-br)Русский (ru)Türkçe (tr)中文 (zh)Translate (Translate)

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(en). Todos os jogos foram migrados da ferramente obsoleta HLDSUpdateTool(en) 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 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 sudo 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 promptSteam>. Digite help 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.pngNota:Por razões de segurança, é recomendável que você crie uma nova conta Steam apenas para seus servidores dedicados.
Note.pngNota: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 cs_go 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 app_update (sfornecendo um ID de aplicativo do Steam(en)). Por favor, verifique aqui a lista de servidores dedicados: Lista de servidores dedicados (en). Para validar também o aplicativo, adicione o comando validate. Para baixar uma branch(ramificação) beta, use a opção -beta <betaname> – Por exemplo, a branch(ramificação) beta do HLDS é chamada beta e a branch(ramificação) do SrcDS é chamada de prerelease. Algumas branches(ramificações) são protegidas por senha; para poder fazer o download a partir delas, adicione também a opção -betapassword <password>.

app_update <app_id> [-beta <betaname>] [-betapassword <senha>] [validate]

O HLDS é um caso especial: o ID do aplicativo é sempre 90 e um mod 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
Icon-Bug.pngErro:HLDS (appid 90) requer atualmente várias execuções do comando app_update antes que todos os arquivos necessários sejam instalados com sucesso. Basta executar app_update 90 validatevárias vezes até que não ocorram mais atualizações.  [todo tested in?]
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 alpha, senha natsel):
[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 quit 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.pngNota:A validação substituirá todos os arquivos que foram alterados. Isso pode causar problemas com servidores personalizados. Por exemplo, se você personalizar mapcycle.txt, 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 Lista de servidores dedicados (en). 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 steamcmd por ./steamcmd.sh no Linux/OS X.)

Linha de comando

Note.pngNota:Ao usar a -betaopção na linha de comando, ela deve ser citada de maneira especial, como +app_update "90 -beta beta".
Note.pngNota:Se isso não funcionar, tente colocá-lo como em seu lugar "+app_update 90 -beta beta".

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 //.) Exemplo:

// 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

2. Execute o SteamCMD com a +runscriptopção, 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 @sSteamCmdForcePlatformType. (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:

@ShutdownOnFailedCommand 1
@NoPromptForPassword 1
@sSteamCmdForcePlatformType windows
login anonymous
force_install_dir ../csgo_ds
app_update 740 validate
quit

Os valores são suportados são windows, macos e linux.

Windows Software/Scripts

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

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.

  1. Faça o arquivo.
    nano updateserver.sh
  2. Cole o código
  3. Modifique o código, adicione pelo menos 1 jogo as linhas DL_SV*=.
  4. Feche o arquivo Ctrl+O, seguido por Enter e concluindo com Ctrl+X.
  5. Give the file execute rights for the user
    chmod u+x ./updateserver.sh
  6. Run the file
    ./updateserver.sh

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 Lista de servidores dedicados (en).

Note.pngNota:Por razões de segurança, é recomendável que você crie uma nova conta Steam apenas para seus servidores dedicados.

Por exemplo

steamcmd +login <username> <password>

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.pngNota:ia32-libs não são necessários para instalar o SteamCMD; lib32gcc1 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:

 dpkg --add-architecture i386
 apt-get update
 apt-get install lib32gcc1

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 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:

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

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.

  1. Abra o Internet Explorer (IE).
  2. Clique em FerramentasOpções da Internet
  3. Clique na guia Conexões
  4. Na parte inferior, você deve ver as configurações da rede local (LAN).
  5. Marque a primeira caixa (Detectar automaticamente as configurações)
  6. 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 steamclient.so para o diretório ~/.steam/sdk32/steamclient.so:

ln -s steamcmd/linux32/steamclient.so ~/.steam/sdk32/steamclient.so

ulimit erro de inicialização do Linux

Alguns usuários podem receber um erro ulimit (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 -n (número de descritores de arquivo) de ulimit. O SteamCMD usa comandos padrão dentro do script de shell de inicialização para alterar o ulimit automaticamente, mas alguns servidores podem proibir ulimit valores crescentes após a inicialização (ou além de um limite definido por root).

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.

root também pode modificar os limites no /etc/security/limits.conf 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