Установка сервера AG под Linux (Debian)
|
Данная инструкция предполагает исполнение всех команд под пользователем root.
Установка сервера HL
Сначала следует установить сервер ХЛ: Установка сервера HL под Linux (Debian)
Скачивание архива с АГ
Для хранения дополнительных файлов создадим папку:
mkdir /home/hlserver/install
и скачаем туда архив с АГ:
cd /home/hlserver/install wget http://aghl.ru/files/mods/AG/ag_66.7z
Установка распаковщика 7z архивов
Если распаковщик 7z архивов не установлен, выполните:
apt-get install p7zip
Распаковка архива
Распаковываем архив с АГ в папку с сервером:
7za e -o/home/hlserver/server/ ag_66.7z
Дополнительные шаги
Изменение hlds_run
Чтобы избежать проблем
LoadLibrary failed on ./ag/dlls/ag_i386.so: ./ag/dlls/ag_i386.so: undefined symbol: pow Host_Error: Couldn't get DLL API from ./ag/dlls/ag_i386.so! FATAL ERROR (shutting down): Host_Error: Couldn't get DLL API from ./ag/dlls/ag_i386.so!
Надо изменить файл hlds_run:
sed -i 's/$HL_CMD/env LD_PRELOAD=libm.so.6 $HL_CMD/' /home/hlserver/server/hlds_run
Дополнительно можете посмотреть: Установка АГ на линукс
Примечание: если вы произведете обновление сервера с помощью steamcmd.sh
, то этот шаг с изменением hlds_run придется повторить.
Изменение для Steam
Для корректного запуска сервера АГ необходимо скопировать два файла из папки valve в папку ag:
cp /home/hlserver/server/valve/steam.inf /home/hlserver/server/ag/ cp /home/hlserver/server/valve/steam_appid.txt /home/hlserver/server/ag/
Отключение античита
К сожалению, клиенты 48 потокола несовместимы со встроенной античит системой, поэтому её приходится отключать:
echo 'delete cheats.dat' >> /home/hlserver/server/ag/steam_appid.txt mv /home/hlserver/server/ag/cheats.dat /home/hlserver/server/ag/cheats.dat.bak
Скрипты запуска
Создаем скрипты которые мы будем использовать для запуска сервера:
touch /home/hlserver/startAG touch /home/hlserver/startAG.inet
Первый файл используется для автоподнятия сервера при падении, второй - для непосредственного запуска сервера.
echo '#!/bin/sh' >> /home/hlserver/startAG echo '/home/hlserver/startAG.inet >/dev/null 2>&1&' >> /home/hlserver/startAG
echo '#!/bin/sh' >> /home/hlserver/startAG.inet echo 'cd /home/hlserver/server' >> /home/hlserver/startAG.inet echo './hlds_run -game ag +log on +maxplayers 16 +map crossfire +port 27015' >> /home/hlserver/startAG.inet
Устанавливаем флаг исполнения:
chmod +x /home/hlserver/startAG chmod +x /home/hlserver/startAG.inet
Тестовый запуск
Для тестового запуска используйте файл startAG.inet.
./startAG.inet
При этом сервер должен запуститься и у вас будет доступ к его консоли. Можете исполнить команду status
, и убедиться, что он работает.
Для остановки сервера используйте команду exit
.
Установка прав
Так как первоначальная установка сервера производилась из под root, необходимо установить права на все файлы, разрешающие доступ пользователю hlserver:
chown -R hlserver:hlserver /home/hlserver
Автоматический старт сервера
Для автоматического старта сервера можно использовать сервис cron. Для этого создадим файл:
touch /etc/cron.d/hlserver echo '@reboot root su - hlserver -c /home/hlserver/server/startAG' >> /etc/cron.d/hlserver
Теперь сервер АГ будет автоматически стартовать под пользователем hlserver при старте системы, и автоматически перезапускаться при падении сервера или его остановке командой exit
.