Установка сервера AG под Linux (Debian)

Материал из HLWiki
Перейти к: навигация, поиск

Содержание

Данная инструкция предполагает исполнение всех команд под пользователем 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.

Личные инструменты