Установка SRCDS при помощи нового стандарта — SteamPipe
Предварительная конфигурация
Убеждаемся, что у нас хватит ресурсов (ulimit -a, -n должен быть не менее 2048).
Если всё в порядке, то разберёмся с системой: если она у вас 64-разрядная, то качаем библиотеки 32-разрядных Linux-систем:
Загрузка SteamCMD
Теперь, когда всё готово, начнём загрузку.
Сначала создайте папку чтобы не мусорить и зайдите в неё:
[quote]
mkdir cmd
cd cmd
[/quote]
Наша папка называется "cmd"
Теперь скачайте архив со SteamCMD:
[quote]
wget https://media.steampowered.com/client/steamcmd_linux.tar.gz
[/quote]
Разархивируйте:
[quote]
tar xvfz steamcmd_linux.tar.gz
[/quote]
*по желанию: можно удалить архив: rm steamcmd_linux.tar.gz
Задайте разрешение на запуск всем файлам:
[quote]
chmod +x *
[/quote]
А теперь начнём главное — запуск steamcmd.
наберите:
[quote]
./steamcmd.sh
[/quote]
и ждите, пока процесс скачивания не завершится. После вы увидите строку-приглашение: "Steam> ".
Вот теперь начинаем веселиться.
Загрузка сервера
Итак, мы видим перед собой "Steam>". В принципе, мы можем выйти, что нам и нужно (толку сидеть в steamcmd попросту нет), а значит, набираем команду:
[quote]
quit
[/quote]
Теперь перейдём непосредственно к выбору интересующего нас сервера:
Например, устанавливать будем Team Fortress 2.
Всё ещё находясь в директории cmd/ вводим команду:
[quote]
./steamcmd.sh +login anonymous +force_install_dir ../tf2_server +app_update 232250 +quit
[/quote]
*совет: можно создать файл-shell для автозапуска строки выше.
*предупреждение: две точки перед именем папки (../tf2_server) показывают, что мы создадим эту папку на уровень выше и скачаем сервер туда!.
Консоль покажет нам процесс загрузки (очень быстро, надо сказать), после чего ответит:
[quote]
App <ID> installed!
[/quote]
Если же вы хотите скачать, скажем, CS: Source, то вместо 232250 в строке нужно указать 232330.
Всё, сервер мы скачали. Только вот что же делать с настройками? Всё просто — Valve немного изменили систему, так что mapcycle.txt, motd.txt и motd_text.txt лежат в папке /cfg/.
Начнём настройку сервера.
Базовая настройка и запуск сервера
Сервер запускается так же, как и раньше:
[quote]
screen -AmS имя_скрина_моего_сервера ./srcds_run +ваши_параметры
[/quote]
Server.cfg можно не менять, если был ранее уже настроенный — всё прекрасно работает, просто положите его в папку cfg/.
При запуске сервера мы увидим много информации о добавлении VPK-файлов. Всё хорошо, дышим ровно — так и надо.
Если вы сделали всё так, как написано выше, то ошибок не должно возникнуть.
Ну вот, базово всё готово. Но мы же не сможем без админки, верно?
Установка SourceMod
Я не буду рассказывать Вам о том, как настраивать и устанавливать SourceMod. Просто загрузите папку /addons/ и /cfg/ прямиком в директорию /tf/ и настройте metamod.vdf (всё так же, как и раньше). НО есть проблема: SM не будет работать, а вот MetaMod будет.
Исправляем:
[quote]
cd папка_с_моим_сервером/тип_игры/addons/metamod
nano metaplugins.ini
[/quote]
Здесь вам нужно убрать символ ";" (точка и запятая) напротив строки, содержащей следующее:
[quote]
sm addons/sourcemod/bin/sourcemod_mm
[/quote]
*предупреждение: папка_с_моим_сервером — та папка, которую мы указали при скачивании (в нашем случе это "tf2_server"), а тип_игры — подпапка с файлами в ней (в нашем случае это "tf".)
Сохраните и запустите сервер. Теперь SourceMod должен работать корректно. Разве что nextmap будет барахлить — он не видит файла карт-листа.
Вот и всё, сервер снова работает (или только-только появился).
_______________________________________________________________________________________________________________________________________
Автоматизация SteamCMD
Есть два варианта автоматизации SteamCMD. (замените steamcmd на ./steamcmd.sh для Linux)
1. Добавление команд в строку запуска.
Примеры:
[quote]
steamcmd +login anonymous +force_install_dir ../csgo_ds +app_update 740 validate +quit
steamcmd +login anonymous +force_install_dir ../czero +app_set_config 90 mod czero +app_update 90 +quit
steamcmd +login <username> <password> +force_install_dir c:\KFServer\ +app_update 215350 validate +quit
[/quote]
2. Создание скрипта
a. Создайте текстовый файл с последовательностью команд для SteamCMD
[quote]
// update_csgo_ds.txt
//
@ShutdownOnFailedCommand 1 //Установите 0 для обновления нескольких серверов за раз
@NoPromptForPassword 1
login <username> <password>
//для загрузки серверов, не требующих авторизации
//login anonymous
force_install_dir ../csgo_ds
app_update 740 validate
quit
[/quote]
b. Запустите SteamCMD с параметром +runscript
Пример:
[quote]
steamcmd +runscript csgo_ds.txt
[/quote]
_______________________________________________________________________________________________________________________________________
Известные проблемы
Я могу загрузить или обновить сервер через SteamCMD, но сервер не запускается
Известные причины:
Linux: Некоторые игры имеют проблемы с регистром в названиях папок/файлов.
Ошибка отсутствия библиотек SteamCMD в директории steam
В консоле сервера такая ошибка выглядит так:
[quote]
steamclient.so: cannot open shared object file: No such file or directory
[/quote]
Для начал проверяем существует ли директория steam.
[quote]
cd /home/alliance/.steam
[/quote]
Если директория отсутствует, то создаем ее.
[quote]
mkdir /home/alliance/.steam
[/quote]
Теперь создаем «символьную» ссылку к библиотекам SteamCMD.
[quote]
ln -s /home/alliance/srcds/steamcmd/linux32 /home/alliance/.steam/sdk32
[/quote]
Примечание: В вашем случае, пути к директориям будут различаться!
32-битные библиотеки на 64-битных дистрибутивах Linux
Так как SteamCMD это 32-битная программа, для запуска требуются некоторые 32-битные библиотеки, даже если у вас уже установлены 64-битные версии.
Обычно такая ошибка выглядит так:
[quote]
steamcmd: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
[/quote]
Решения специфичны для различных дистрибутивов:
Если вы получаете ошибку
[quote]
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.
[/quote]
Сделайте следующее:
[quote]
dpkg --add-architecture i386
apt-get update
apt-get install ia32-libs
[/quote]
(Если нужно, добавьте sudo)
Не забудьте вначале включить репозиторий Multilib.
Ошибки загрузки
В Linux пользователь может получить ошибку при старте, связанную с ulimit (no permission/can not open file). Для корректной работы steamcmd требуется установка параметра следующим образом: ulimit -n 2048. Хотя в shell-скрипте имеется строка, отвечающая за изменение ulimit, в некоторых системах администратором может быть запрещено изменение параметра пользователем, не имеющим root-привилегий. Перед запуском проверьте параметры ulimit следующим образом: ulimit -a. В ответе терминала нужно найти следующую строку:
[quote]
open files (-n) 1024
Здесь значение 1024 — значение uname -n.
Login Failure: No Connection
[/quote]
Так же вы можете получить ошибку "Login Failure: No Connection". Она связана с отсутствующими правилами iptables. Необходимо прописать например
[quote]
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
[/quote]
Вот,собственно, и все! Удачи с настройкой сервера!
- Просмотров: 4 879