- Использование SteamCMD
- Загрузка и запуск SteamCMD
- Загрузка сервера
- Поддерживаемые серверы
- Автоматизация SteamCMD
- Пример bat-файла для Windows
- Известные проблемы
- Я могу загрузить или обновить сервер через SteamCMD, но сервер не запускается
- Ошибка отсутствия библиотек SteamCMD в директории steam
- 32-битные библиотеки на 64-битных дистрибутивах Linux
- Debian и подобные (Ubuntu, Mint)
- Red Hat и подобные (RHEL, Fedora, CentOS)
- Arch Linux
- Ошибки загрузки
- Login Failure: No Connection
- Failed to open logfile или Failed to create directory
- Как пользоваться SteamCMD
- Tranquillity
- Скачать чистый сервер через SteamCMD (Counter-Strike)
- Загрузка SteamCMD
- Windows
- Linux
- Запуск SteamCMD
- Windows
- Linux/OS X
- Вход в SteamCMD
- Анонимно
- С аккаунтом Steam
- Загрузка приложения
- Проверка целостности
- Поддерживаемые сервера
- Автоматизация SteamCMD
- Командная строка
- Создание сценариев
- Кросс-платформенная установка
- Windows ПО/Сценарии
- SteamCMD AutoUpdater
- condenser
- SteamCMD GUI
- SteamCMD Guardian 1.2
- Linux Сценарии
- Linux Game Server Managers
- SteamCMD Guardian 1.2
- Известные проблемы
- Failed to install app ‘xxxxxx’ (No subscription)
- 32-битные библиотеки на 64-битных дистрибутивах Linux
- Дистрибутивы основанные на Debian (Ubuntu, Mint, и т.д.)
- Дистрибутивы основанные на Red Hat (RHEL, Fedora, CentOS, и т.д.)
- Arch Linux
- Login Failure: No Connection
- Ошибки запуска SteamCMD
- Unable to locate a running instance of Steam
- Ошибка запуска ulimit Linux
- Загрузка HLDS
Использование SteamCMD
Консольный клиент Steam или SteamCMD — новая утилита для установки и обновления выделенных серверов через интерфейс командной строки. Он работает только с играми, которые переведены на контентную систему SteamPipe. Постепенно все серверы, использующие HLDSUpdateTool, перейдут на нее.
Загрузка и запуск SteamCMD
- Загрузите SteamCMD по ссылке сверху страницы
- Если вы используете 64-битный дистрибутив Linux, возможно вам понадобится установить 32-битные библиотеки. Чтобы узнать, как сделать это, смотрите здесь.
- Распакуйте архив в папку
- Не распаковывайте содержимое архива в папку обычного клиента Steam или в папку с HLDSUpdateTool!
- Linux: введите tar xvfz steamcmd_linux.tar.gz
- Запуск 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
Есть два варианта автоматизации SteamCMD. (замените steamcmd на ./steamcmd.sh для Linux)
1. Добавление команд в строку запуска. Примеры:
2. Создание скрипта
a. Создайте текстовый файл с последовательностью команд для SteamCMD
b. Запустите SteamCMD с параметром +runscript Пример:
Пример bat-файла для Windows
Известные проблемы
Я могу загрузить или обновить сервер через SteamCMD, но сервер не запускается
-
- Linux: Некоторые игры имеют проблемы с регистром в названиях папок/файлов.
Ошибка отсутствия библиотек 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 первичная загрузка может закончиться ошибкой, если в стандартных настройках прокси-сервера не указана автоматическая настройка
В Linux пользователь может получить ошибку при старте, связанную с ulimit (no permission/can not open file). Для корректной работы steamcmd требуется установка параметра следующим образом: ulimit -n 2048 . Хотя в shell-скрипте имеется строка, отвечающая за изменение ulimit, в некоторых системах администратором может быть запрещено изменение параметра пользователем, не имеющим root-привилегий. Перед запуском проверьте параметры ulimit следующим образом: ulimit -a. В ответе терминала нужно найти следующую строку:
Здесь значение 1024 — значение uname -n.
Login Failure: No Connection
На Linux вы можете получить ошибку «Login Failure: No Connection». Она связана с отсутствующими правилами iptables. Необходимо прописать например
Failed to open logfile или Failed to create directory
Переименуйте в корне рабочей директории каталог ./Steam/ в ./steam/
Как пользоваться SteamCMD
Tranquillity
Консольный клиент Steam или SteamCMD — новая утилита для установки и обновления выделенных серверов через интерфейс командной строки. Он работает только с играми, которые переведены на контентную систему SteamPipe.
Загрузка
1. Создайте папку для SteamCMD.
C:\SteamCMD
2. Загрузите SteamCMD для Windows: https://steamcdn-a.akamaihd.net/client/installer/steamcmd.zip
3. Извлеките содержимое zip-архива в созданную папку.
Запуск SteamCMD
Запустить утилиту можно только через консольный терминал windows
1. Открываем командную строку Win+R
переходим в папку, куда извлекли steamcmd
cd C:\SteamCMD
Если вы создали папку на другом диске, то перейти туда можно командной
cd /D F:/SteamCMD
Запускаем утилиту
steamcmd
Вначале она сама себя обновит и по окончанию выведет приглашение для дальнейшей работы ( Steam> )
/steamcmd
Загрузим архив с утилитой
wget https://steamcdn-a.akamaihd.net/client/installer/steamcmd_linux.tar.gz
И распакуем архив
tar -xvzf steamcmd_linux.tar.gz
Запускаем утилиту
cd
/steamcmd
Загружаем архив
curl -O [URL]https://steamcdn-a.akamaihd.net/client/installer/steamcmd_osx.tar.gz[/URL]
Распаковываем содержимое
tar -xvzf steamcmd_osx.tar.gz
Запускаем утилиту
cd
Задаем директорию, куда будут закачаны файлы сервера
force_install_dir ./cs1.6/
В нашей директории, где находится steamcmd, появится поддиректория cs1.6
Выкачиваем наш сервер counter-strike 1.6 [Список всех поддерживаемых серверов]
app_update 90 -beta beta validate
* HLDS (APPID 90) в настоящее время требуется несколько прогонов app_update, прежде чем все необходимые файлы будут успешно установлены. Просто запустите app_update 90 validate несколько раз, пока приложение не будет больше обновляться.
Загрузка игрового сервера завершена.
Разработчики добавили в SteamCMD новый параметр ( @sSteamCmdForcePlatformType ), который позволяет выбрать платформу для которой необходимо скачать файлы, даже если это не та платформа на которой вы сейчас работаете.
Для загрузки Windows сервер CS: 1.6 из под Linux:
Скачать чистый сервер через SteamCMD (Counter-Strike)
Консольный клиент/сервер Steam или SteamCMD — новая утилита для установки и обновления выделенных серверов через интерфейс командной строки. Он работает только с играми, которые переведены на контентную систему SteamPipe. Постепенно все серверы, использующие HLDSUpdateTool, перейдут на нее.
Загрузка SteamCMD
Windows
1. Создайте папку для SteamCMD.
3. Извлеките содержимое zip-архива в созданную папку.
Linux
1. Сначала установите зависимости необходимые для запуска SteamCMD.
2. Рекомендуется создать отдельного пользователя для SteamCMD. В любом случае не запускайте из под root пользователя, это может быть не безопасно. Выполните следующую команды с root-правами чтобы создать пользователя steam и войти под ним:
(Если вы предпочитаете использовать sudo , просто запустите предыдущую команду с префиксом sudo .)
3. Создайте директорию для SteamCMD и перейдите в неё.
3. Загрузите SteamCMD для Linux.
4. Извлеките содержимое в директорию.
1. Откройте Terminal.app и создайте директорию для SteamCMD.
2. Загрузите SteamCMD для OS X.
3. Извлеките содержимое в директорию.
Запуск SteamCMD
При первом запуске SteamCMD автоматически обновится и отобразит приглашение Steam> . Наберите help для более подробной информации.
Windows
Откройте Командную строку и запустите SteamCMD.
Linux/OS X
Откройте терминал и запустите SteamCMD.
Вход в SteamCMD
Анонимно
Некоторые сервера можно загрузить анонимно.
С аккаунтом Steam
Однако большинство сервером требуют входа в аккаунт Steam.
Затем введите пароль.
Если Steam Guard активирован, то проверьте вашу электронную почту чтобы узнать код доступа Steam Guard и ввести его. Это требуется сделать только при первом входе (а также при удалении файлов где SteamCMD хранит регистрационную информацию).
Вы должны увидеть сообщение о том, что вы успешно вошли в свой аккаунт.
Загрузка приложения
1. Запустите SteamCMD и войдите.
2. Установите директорию установки приложения.
Например директорию с именем cs_go внутри текущей директории: e.g. a directory named cs_go inside the current directory:
3. Установить или обновить приложение можно с помощью команды app_update . Для проверки целостности приложения добавьте команду validate . Для загрузки beta версий, используйте опцию -beta . Для примера HLDS beta версия называется beta , а beta версия SrcDS называется prerelease . Некоторые beta версии защищены паролем, чтобы иметь возможность скачивать их необходимо добавить опцию -betapassword
HLDS это особый случай: App ID всегда 90 и мод должен быть выбран первым. Это делается путем установки параметра конфигурации приложения mod к запрашиваемому значению.
Пример: Установить и проверить выделенный сервер Counter Strike: Gloval Offensive: Пример: Установить и проверить HLDS с Team Fortress Classic:
3. После завершение, введите quit чтобы правильно завершить сессию с серверами Steam.
Проверка целостности
Команда для проверки целостности всех файлов. Это полезно если они повреждены или отсутствуют.
Рекомендуется использовать эту команду только при начальной установки или если файлы сервера были изменены.
Поддерживаемые сервера
Список известных серверов, которые использует SteamCMD установить доступен на странице Dedicated Servers List странице.
Автоматизация SteamCMD
Есть два способа для автоматизации SteamCMD.
Командная строка
Вводить команды в командной строке необходимо с символом плюс в качестве префикса, например:
Чтобы установить определенный мод для HL1, таких как Counter-Strike: Condition Zero:
Для игры которая требует авторизацию, такой как Killing Floor:
Создание сценариев
1. Введите ваши команды SteamCMD в текстовом файле. (Вы можете добавить комментарии, которые начинаются с // .)
2. Запустите SteamCMD с опцией +runscript , ссылаясь на файл который вы только что создали.
Кросс-платформенная установка
Можно выбрать платформу для которой необходимо скачать файлы, даже если это не та платформа на которой вы сейчас работаете. Это делается с помощью переменной @sSteamCmdForcePlatformType . (Да, это два «s» в начале имени переменной.) Например, чтобы загрузить выделенный сервер для Windows CSGO на Linux, вы можете запустить следующую команду:
или использовать следующий сценарий:
Поддерживаемые значения windows , macos и linux .
Windows ПО/Сценарии
SteamCMD AutoUpdater
Установка и автоматическое обновление любого игрового сервера Install and automaticly update any game server
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.
- Установка сервера (SteamCMD)
- Запуск/Остановка/Перезапуск сервера
- Обновление сервера (SteamCMD)
- Мониторинг сервера (включая e-mail уведомления)
- Резервное копирование сервера
- Командная строка сервера
- ARMA 3
- Blade Symphony
- Counter Strike
- Counter Strike: Condition Zero
- Counter Strike: Global Offensive
- Counter Strike: Source
- Day of Defeat
- Day of Defeat: Source
- Fistful of Frags
- Garry’s Mod
- Half-Life: Deathmatch Classic
- Half-Life 2: Deathmatch
- Insurgency
- Just Cause 2
- Killing Floor
- Left 4 Dead
- Left 4 Dead 2
- No More Room in Hell
- Natural Selection 2
- Red Orchestra: Ostfront 41-45
- Team Fortress Classic
- Team Fortress 2
- Team Fortress Classic
Полный список серверов и инструкции: http://danielgibbs.co.uk/lgsm
SteamCMD Guardian 1.2
Следующий сценарий был протестирован на Debian Wheezy.
Для работы сценария необходимо достаточно свободного места. Предпочтительно использовать отдельно созданного пользователя (например steam) с его собственной домашней директорией (/home/steam). Необходимо войти под этим пользователем через SSH, tty или используя su.
- Создайте файл. nano updateserver.sh
- Вставьте код
- Измените код, добавив по крайней мере 1 игру в строку DL_SV*= .
- Закройте файл Ctrl + O , затем ↵ Enter и в конце Ctrl + X .
- Дайте права на исполнение для пользователя chmod u+x ./updateserver.sh
- Запустите файл ./updateserver.sh
Файл автоматически загрузить SteamCMD, обновить его и установить все выбранные игры (до 4). Запустите файл повторно для обновления игры.
Известные проблемы
Failed to install app ‘xxxxxx’ (No subscription)
Если вы получаете ошибку ‘No subscription’, то необходимо войти под Steam аккаунтом в котором эта игра приобретена. См. Dedicated Servers List.
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) через настройки локальной сети в меню Свойства браузера. 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.
- Откройте Internet Explorer (IE).
- Нажмите на Инструменты → Свойства браузера
- Нажмите на вкладку Подключения
- В нижней части вы должны увидеть Настройки параметров локальной сети
- Проверьте первый флажок (Автоматическое определение параметров)
- Нажмите на OK, и Применить.
Попробуйте запустить SteamCMD снова. Если по-прежнему не работает, то попробуйте уменьшить свой Уровень безопасности для этой зоны на средний или ниже на вкладке Безопасность в Свойства браузера.
Ошибки запуска SteamCMD
Unable to locate a running instance of Steam
Вы можете получить следующее сообщение об ошибке при запуске сервера на Linux:
Решить проблему можно сделав символическую ссылку steamclient.so
Ошибка запуска ulimit Linux
Некоторые пользователи могут получить ошибку ULIMIT (no permission/cannot open file) во время запуска сценария. Эта ошибка вызвана маленьким значением параметра -n (число файловых дескрипторов) ULIMIT . SteamCMD использует стандартные команды внутри сценария оболочки инициализации, чтобы изменить ULIMIT автоматически, но некоторые серверы могут запретить повышение значения ULIMIT после запуска (или за пределы лимита, установленного root ).
Это может быть исправлено путем изменения ограничения на максимальное число открытых файлов ulimit:
Если появляется ошибка (no permission), вам придется войти под root чтобы изменить параметр. Чтобы проверить текущую настройку введите ulimit -a. Система выдаст много строк, но вам нужно будет найти только одну:
В этом случае 1024 является текущим значением.
Вы можете также изменить ограничения в файле /etc/security/limits.conf .
В большинстве случаев вы просто получите предупреждающее сообщение, однако это не остановит запуск SteamCMD.
Загрузка HLDS
При попытке скачать мод HL1, таких как TFC, сначала загружаются файлы HLDS, но не мода. Это происходит как с обычной версией так и с бета-версией. Вы, возможно, придется попробовать несколько раз, пока все необходимые файлы будут загружены, но как только это будет сделано, файлы должны правильно обновить следующий раз.
Просто удалив файлы appmanifest, без загрузки замены из сторонних источников, может сработать. Вы получите в начале сообщение об ошибке из-за удаленных файлов, но загрузка должна продолжится.