Steamcmd что это такое
Steamcmd что это такое
Для начало, что это такое и зачем оно нам нужно?
Почему именно SteamCMD?
SteamCMD работает не только в ОС* Windows, но и в Linux, Mac OS, например вы купили на месяц VPS*, а там Linux без GUI* и обычный Steam туда не поставишь, а вот SteamCMD. Запросто!
Скриншот самого SteamCMD:
Что мы делаем теперь?
В обычную учётную запись нужно войти используя ваш логин, пароль и если есть SteamGuard.
и уже ниже у вас попросят пароль и SteamGuard (ну если есть).
В «анонимную» учётную запись нужно войти используя команду:
Теперь мы можем перейти к самому главному: установке игр, утилит и прочих инструментов, которые доступы в Steam.
Всё, как мы прописали команду началась скачиваться игра:
После того, как она скачается и проверится командой validate на целостность файлов, можно будет с чистой душой выйти из SteamCMD командой quit:
На этом моё руководство по SteamCMD заканчивается. Ниже будет «Разное» и «Ссылки«, рекомендую прочитать, если остались вопросы, и если вам захочется меня как-то поблагодарить за эту статью, делал эту статью, кстати, где-то 4 часа. Да-да.
Здесь что-то типо вопросов-ответов:
В*: Как сделать такую же красивую черно-синюю командную строку?
О*: Зажали одновременно кнопки WIN+R, написали «cmd«, ПКМ* нажали и выбрали «Свойства«, выбрали категорию «Цвета«, потыкали где смогли и нажали «ОК«.
В: Почему ты не рассказал про команды force_install_dir, -betapassword, app_set_config?
О: 90% случаев неправильно прописывается путь в команде force_install_dir и из-за этого игра либо не скачивается, либо она (игра) теряется в файлах, либо это обычный «геморрой» каждый раз писать эту команду и путь при обновлении игры, а команды -betapassword и app_set_config используются крайне редко, что про них можно прочитать на этом сайте.
В: Можно ли автоматизировать этот процесс, чтобы не вводить всё это каждый раз?
О: Да, но часто люди это делают неправильно или на некоторых играх, это работает неправильно, или, вовсе, не работает, но если всё же интересно, сайт, который сверху, тебе в помощь.
Обычные ссылки на мои сообщества и прочая дичь.
SteamCMD
The Steam Console Client or SteamCMD is a command-line version of the Steam client. Its primary use is to install and update various dedicated servers available on Steam using a command-line interface. It works with games that use the SteamPipe content system. All games have been migrated from the deprecated HLDSUpdateTool to SteamCMD.
Contents
Downloading SteamCMD
Windows
1. Create a folder for SteamCMD.
3. Extract the contents of the zip to the folder.
Linux
1. As the root user, create the steam user:
2. Go into its home folder:
Package from repositories
1. It’s recommended to install the SteamCMD package from your distribution repositories, if available:
2. Link the steamcmd executable:
Docker
If your server is running Docker, you can simply use:
steamcmd.sh location: /home/steam/steamcmd
This image can be used as a base image for Steam-based dedicated servers. Example: https://hub.docker.com/r/cm2network/csgo/
You can find the associated Docker Hub page here: https://hub.docker.com/r/cm2network/steamcmd/
Manually
1. Before you begin, you must first install the dependencies required to run SteamCMD:
2. As the root user, escalate to the steam user:
If you’re not logging in as root and you instead use sudo to perform administration, escalate to the steam user as follows:
3. Create a directory for SteamCMD and switch to it.
4. Download and extract SteamCMD for Linux.
5. Install tmux and/or screen for easy server management
macOS
1. Open Terminal.app and create a directory for SteamCMD.
2. Download and extract SteamCMD for macOS.
Running SteamCMD
On first run, SteamCMD will automatically update and enter you into a Steam> prompt. Type help for more information.
Windows
Open a Command Prompt and start SteamCMD.
Linux/macOS
Open a terminal and start SteamCMD.
If you installed it using the package from repositories:
If you installed it manually:
SteamCMD Login
Anonymous
To download most game servers, you can login anonymously.
With a Steam account
Some servers require you to login with a Steam Account.
Next enter your password.
If Steam Guard is activated on the user account, check your e-mail for a Steam Guard access code and enter it. This is only required the first time you log in (as well as when you delete the files where SteamCMD stores the login information).
You should see a message stating that you have successfully logged in with your account.
Downloading an app
1. Start SteamCMD and log in.
2. Set your app install directory. (Note: use forward slashes for Linux/macOS and backslashes for Windows.)
e.g. a directory named cs_go inside the current directory:
For Windows: force_install_dir c:\cs_go\
HLDS is a special case: the App ID is always 90 and a mod must be chosen first. This is done by setting the app config option mod to the requested value.
Example: Install and validate the Counter Strike: Global Offensive dedicated server: Example: Install and validate HLDS with Team Fortress Classic:
3. Once finished, type quit to properly log off of the Steam servers.
Validate
Validate is a command that will check all the server files to make sure they match the SteamCMD files. This command is useful if you think that files may be missing or corrupted.
It is recommended you use this command only on initial installation and if there are server issues.
Supported Servers
A list of known servers that use SteamCMD to install is available on the Dedicated Servers List page. Note that any extra commands listed need to be executed before the app_update line.
Automating SteamCMD
Command line
Append the commands to the command line prefixed with plus characters, e.g.:
To install a specific game mod for HL1, such as Counter-Strike: Condition Zero:
For a game that requires logins, like Killing Floor:
Creating a script
2. Run SteamCMD with the +runscript option, referring to the file you created previously. Example:
Cross-Platform Installation
It is possible to choose the platform for which SteamCMD should download files, even if it isn’t the platform it is currently running on. This is done using the @sSteamCmdForcePlatformType variable. (Yes, those are two «s»es at the beginning of the variable name.) For example, to download the Windows CSGO dedicated server on Linux, you can run the following command:
or use the following script:
Windows Software/Scripts
condenser
condenser is a bootstrapper for installing, configuring, & launching Steam dedicated server apps.
SteamCMD AutoUpdater
Install and automatically update any game server
SteamCMD GUI
This tool allows the user to use SteamCMD on Windows without command lines and/or batch files.
SteamCMD Guardian 1.2
SteamPS
SteamPS is a PowerShell module that can be used to update servers, fetch server information. It also presents a workflow to update game servers.
Linux Scripts
LinuxGSM
LinuxGSM is the command-line tool for quick, simple deployment and management of Linux dedicated game servers.
Features
Supported Servers
There are now 100+ different game servers supported and rising. For a full list visit the website.
Links
SteamCMD Guardian 1.2
The following script was tested on Debian Wheezy.
To make this script work, we need a location. Preferably you created a user (e.g. steam) with it’s own home directory (/home/steam) and are logged in as it via SSH, tty or using su.
The file will auto-download SteamCMD, update it and install all chosen games (up to 4). Run the file again to update the games.
Known issues
ERROR! Failed to install app ‘xxxxxx’ (No subscription)
If you get the ‘No subscription’ error, the game/server you are trying to download either requires a login or that you have purchased the game. You will therefore have to log in with a Steam username and password – if that doesn’t help, you may need to purchase a copy of the game on Steam first. See Dedicated Servers List.
32-bit libraries on 64-bit Linux systems
Since SteamCMD is a 32-bit binary, 32-bit libraries are required.
The following error may occur:
The resolution depends on your distro:
Debian based distributions (Ubuntu, Mint, etc.)
With Debian 7 «Wheezy» you may encounter this error:
To fix this, do the following:
Red Hat based distributions (RHEL, Fedora, CentOS, etc.)
Arch Linux
Don’t forget to first enable the multilib repository.
Login Failure: No Connection
On linux servers, you may experience a «Login Failure: No Connection» error. This is related to missing iptables rules. You will want something along these lines:
On Windows servers, you may experience «SteamUpdater: Error: Download failed: http error 0» and «SteamUpdater: Error: Steam needs to be online to update. Please confirm your network connection and try again.». This is usually fixed by checking «Automatically detect settings» in IE (Internet Explorer) through the lan settings in the Internet option menu.
SteamCMD startup errors
Unable to locate a running instance of Steam
You may get the following error when starting a server with Linux:
Resolve the issue by linking steamclient.so to the
ulimit Linux startup error
This can be fixed by changing the file descriptor number ulimit:
In this case, 1024 is the current value.
root can also modify the limits in the /etc/security/limits.conf file.
In most instances you will simply get a warning message however it will not stop SteamCMD from running.
Getting a Linux 64-bit steamclient.so on a Windows Machine
WSL does not play nicely with 32-bit files. If you need the steamclient.so 64-bit file you can simply run the following command:
You will then find the file here:
Only the HLDS engine is downloaded
When trying to download a HL1 mod like TFC, initially it only downloads the engine files of the HLDS, but not the mod. This happens with both the regular version and the beta. You may have to try multiple times until all the required files are downloaded, but once this is done, the files should update correctly next time.
Just deleting the appmanifest files, without downloading replacements from a third party, may work as well! You will get an error at first though, complaining that something went wrong, which is due to the deleted files.
On a side note, for some reason CS is always installed as well.
Использование SteamCMD
Загрузка и запуск SteamCMD
Откройте командную строку в этой папке и запустите SteamCMD
Утилита автоматически обновится и отобразит приглашение Steam> Наберите help для более подробной информации.
Для загрузки большинства серверов можно войти анонимно:
Если анонимный вход не работает для конкретной игры, вам нужно войти в аккаунт Steam
Вам нужно выйти из обычного клиента Steam чтобы корректно войти в аккаунт через SteamCMD
Введите ваш пароль. После этого вам на почту должен прийти ключ SteamGuard, который необходимо будет ввести далее. (Это надо делать один раз для каждого компьютера/пользователя в Linux)
Вы должны увидеть сообщение о том, что вход выполнен.
Загрузка сервера
Запустите SteamCMD и укажите директорию для загрузки. (Внимание: используйте прямые слеши в Linux и обратные в Windows)
Пример: папка cs_go в текущей папке
Пример: установка и проверка CS:GO
Пример: установка и проверка бета-версии HLDS:
После завершения, введите quit для корректного отключения от серверов Steam.
Поддерживаемые серверы
Это список серверов, которые используют SteamCMD. Любые дополнительные опции командной строки должны быть указаны перед командой app_update!
Сервер | ID | Дополнительные опции командной строки |
---|---|---|
HLDS для Half-Life и Counter-Strike | 90 | |
Counter-Strike: Condition Zero **Beta** dedicated server | 90 | +app_set_config «90 mod czero» |
Deathmatch Classic **Beta** dedicated server | 90 | +app_set_config «90 mod dmc» |
Day of Defeat dedicated server | 90 | +app_set_config «90 mod dod» |
Half-Life: Opposing Force **Beta** dedicated server | 90 | +app_set_config «90 mod gearbox» |
Ricochet **Beta** dedicated server | 90 | +app_set_config «90 mod ricochet» |
Team Fortress Classic **Beta** dedicated server | 90 | +app_set_config «90 mod tfc» |
Counter-Strike: Global Offensive dedicated server | 740 | |
The Ship dedicated server | 2403 | |
Garry’s Mod dedicated server | 4020 | |
Serious Sam 3 dedicated server | 41080 | |
Nuclear Dawn dedicated server | 111710 | |
Red Orchestra: Ostfront 41-45 dedicated server | 223240 | |
Red Orchestra 2: Heroes of Stalingrad and Rising Storm dedicated server | 212542 | |
Killing Floor Windows dedicated server | 215350 | |
Killing Floor Linux dedicated server | 215360 | |
Left 4 Dead 2 dedicated server | 222860 | |
Team Fortress 2 dedicated server | 232250 | |
Day of Defeat: Source dedicated server | 232290 | |
Counter-Strike: Source dedicated server | 232330 | |
Half-Life 2: Deathmatch dedicated server | 232370 |
Для установки нескольких модов, укажите их через запятую, например +app_set_config 90 mod czero,dod
Автоматизация SteamCMD
1. Добавление команд в строку запуска. Примеры:
2. Создание скрипта
a. Создайте текстовый файл с последовательностью команд для SteamCMD
b. Запустите SteamCMD с параметром +runscript Пример:
Пример bat-файла для Windows
Известные проблемы
Я могу загрузить или обновить сервер через SteamCMD, но сервер не запускается
Ошибка отсутствия библиотек SteamCMD в директории steam
В консоле сервера такая ошибка выглядит так:
steamclient.so: cannot open shared object file: No such file or directory
Для начал проверяем существует ли директория steam.
Если директория отсутствует, то создаем ее.
Теперь создаем «символьную» ссылку к библиотекам SteamCMD
В вашем случае, пути к директориям будут различаться!
32-битные библиотеки на 64-битных дистрибутивах Linux
Так как SteamCMD это 32-битная программа, для запуска требуются некоторые 32-битные библиотеки, даже если у вас уже установлены 64-битные версии.
Обычно такая ошибка выглядит так:
steamcmd: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
Решения специфичны для различных дистрибутивов:
Debian и подобные (Ubuntu, Mint)
Если вы получаете ошибку
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.
(Если нужно, добавьте sudo )
Red Hat и подобные (RHEL, Fedora, CentOS)
Arch Linux
Не забудьте вначале включить репозиторий Multilib
Ошибки загрузки
В Windows первичная загрузка может закончиться ошибкой, если в стандартных настройках прокси-сервера не указана автоматическая настройка
Login Failure: No Connection
На Linux вы можете получить ошибку «Login Failure: No Connection». Она связана с отсутствующими правилами iptables. Необходимо прописать например
Failed to open logfile или Failed to create directory
SteamCMD
Contents
Загрузка SteamCMD
Windows
1. Создайте папку для SteamCMD.
3. Извлеките содержимое zip-архива в созданную папку.
Linux
1. Сначала установите зависимости необходимые для запуска SteamCMD.
2. Рекомендуется создать отдельного пользователя для SteamCMD. В любом случае не запускайте из под root пользователя, это может быть не безопасно. Выполните следующие команды с root-правами чтобы создать пользователя steam и войти под ним:
3. Создайте директорию для SteamCMD и перейдите в неё.
3. Загрузите SteamCMD для Linux.
4. Извлеките содержимое в директорию.
1. Откройте Terminal.app и создайте директорию для SteamCMD.
2. Загрузите SteamCMD для OS X.
3. Извлеките содержимое в директорию.
Запуск SteamCMD
Windows
Откройте Командную строку и запустите SteamCMD.
Linux/OS X
Откройте терминал и запустите SteamCMD.
Вход в SteamCMD
Анонимно
Некоторые сервера можно загрузить анонимно.
С аккаунтом Steam
Однако большинство сервером требуют входа в аккаунт Steam.
Затем введите пароль.
Если Steam Guard активирован, то проверьте вашу электронную почту чтобы узнать код доступа Steam Guard и ввести его. Это требуется сделать только при первом входе (а также при удалении файлов где SteamCMD хранит регистрационную информацию).
Вы должны увидеть сообщение о том, что вы успешно вошли в свой аккаунт.
Загрузка приложения
1. Запустите SteamCMD и войдите.
2. Установите директорию установки приложения.
Например директорию с именем cs_go внутри текущей директории: т.е. директория с именеи cs_go Внутри данной директории:
HLDS это особый случай: App ID всегда 90 и мод должен быть выбран первым. Это делается путём установки параметра конфигурации приложения mod к запрашиваемому значению.
Пример: Установить и проверить выделенный сервер Counter-Strike: Global Offensive: Пример: Установить и проверить HLDS с Team Fortress Classic:
3. После завершения, введите quit чтобы правильно завершить сессию с серверами Steam.
Проверка целостности
Команда для проверки целостности всех файлов. Это полезно если они повреждены или отсутствуют.
Рекомендуется использовать эту команду только при начальной установке или если файлы сервера были изменены.
Поддерживаемые сервера
Список выделенных серверов содержит известные сервера, которые использует SteamCMD.
Автоматизация SteamCMD
Есть два способа для автоматизации SteamCMD.
Командная строка
Вводить команды в командной строке необходимо с символом плюс в качестве префикса, например:
Чтобы установить определённый мод для HL1, таких как Counter-Strike: Condition Zero:
Для игры которая требует авторизацию, такой как Killing Floor:
Создание сценариев
Кросс-платформенная установка
или использовать следующий сценарий:
Windows ПО/Сценарии
SteamCMD AutoUpdater
Установка и автоматическое обновление любого игрового сервера
condenser
condenser это загрузчик для установки, настройки, и запуска выделенных игровых серверов Steam.
SteamCMD GUI
Этот инструмент позволяет использовать SteamCMD на Windows, без командной строки и/или пакетных файлов.
SteamCMD Guardian 1.2
Посмотреть и загрузить можно здесь: http://pastebin.com/BRUbsGQh
Linux Сценарии
Linux Game Server Managers
Linux Game Server Managers приложение командной строки для быстрого, простого развёртывания и управления различных специализированных игровых серверов использующих SteamCMD.
Полный список серверов и инструкции: http://danielgibbs.co.uk/lgsm
SteamCMD Guardian 1.2
Следующий сценарий был протестирован на Debian Wheezy.
Посмотреть и загрузить можно здесь: http://pastebin.com/hcpMpmaZ
Для работы сценария необходимо достаточно свободного места. Предпочтительно использовать отдельно созданного пользователя (например steam) с его собственной домашней директорией (/home/steam). Необходимо войти под этим пользователем через SSH, tty или используя su.
Файл автоматически загрузит SteamCMD, обновит и установит все выбранные игры (до 4). Запустите файл повторно для обновления игр.
Известные проблемы
Failed to install app ‘xxxxxx’ (No subscription)
Если вы получаете ошибку ‘No subscription’, то необходимо войти под Steam аккаунтом в котором эта игра приобретена. См. Список выделенных серверов.
32-битные библиотеки на 64-битных дистрибутивах Linux
Так как SteamCMD это 32-битная программа, для запуска требуются некоторые 32-битные библиотеки, даже если у вас уже установлены 64-битные версии.
Может произойти следующая ошибка:
Решение зависит от вашего дистрибутива:
Дистрибутивы основанные на Debian (Ubuntu, Mint, и т.д.)
На Debian 7 «Wheezy» вы можете столкнуться с такой ошибкой:
Чтобы исправить это, выполните следующие действия:
Дистрибутивы основанные на Red Hat (RHEL, Fedora, CentOS, и т.д.)
Arch Linux
Не забудьте сначала включить репозиторий Multilib.
Login Failure: No Connection
На Linux вы можете получить ошибку «Login Failure: No Connection». Она связана с отсутствующими правилами iptables. Необходимо их прописать например вот так:
На серверах Windows вы можете столкнуться с ошибкой «SteamUpdater: Error: Download failed: http error 0» и «SteamUpdater: Error: Steam needs to be online to update. Please confirm your network connection and try again.». Это как правило решается установкой опции «Автоматическое определение параметров» в IE (Internet Explorer) через настройки локальной сети в меню Свойства браузера.
Попробуйте запустить SteamCMD снова. Если по-прежнему не работает, то попробуйте уменьшить свой Уровень безопасности для этой зоны на средний или ниже на вкладке Безопасность в Свойства браузера.
Ошибки запуска SteamCMD
Unable to locate a running instance of Steam
Вы можете получить следующее сообщение об ошибке при запуске сервера на Linux:
Решить проблему можно сделав символическую ссылку steamclient.so
Ошибка запуска ulimit Linux
Это может быть исправлено путём изменения ограничения на максимальное число открытых файлов ulimit:
В этом случае 1024 является текущим значением.
В большинстве случаев вы просто получите предупреждающее сообщение, однако это не остановит запуск SteamCMD.
Загрузка HLDS
При попытке скачать мод HL1, таких как TFC, сначала загружаются файлы HLDS, но не мод. Это происходит как с обычной версией так и с бета-версией. Вам, возможно, придётся пробовать скачать несколько раз, пока все необходимые файлы не будут загружены, но как только это будет сделано, файлы должны будут правильно обновиться в следующий раз.
Просто удалив файлы appmanifest, без загрузки замены из сторонних источников, это может сработать. Вы получите в начале сообщение об ошибке из-за удалённых файлов, но загрузка должна продолжится.