Поднятие собственного HLTV сервера
Доброго времени суток, друзья! Подумав, решил написать руководство для поднятия собственного сервера HLTV под управлением OS:Linux.
Для подготовки статьи специально был куплен виртуальный сервер (OpenVZ: debian-7.0-x86).
Первым делом, что нам необходимо сделать, - это выкачать с помощью SteamCMD актуальный на сегодняшний день сервер, build 6153. Конечно, можно и более ранних версий, но я предпочитаю свеженькие файлы Предположим, что у нас сервер расположен по следующему пути: /home/hlds
Вторым делом мы создадим нового пользователя (для запуска HLTV) и нужные нам директории для дальнейшей работы. По умолчанию при создании нового пользователя директория имеет следующий путь: /home/hltv. При добавлении нового пользователя система запросит ввести пароль, повторить пароль, ввести дополнительные данные (необязательно) и подтвердить корректность информации.
Для удобства создадим ещё две директории внутри нашего нового пользователя. Это папка cstrike (куда будут записываться будущие demo-записи) и папка valve (куда будут вестись логи, если вам это необходимо):
Третьим делом мы скопируем все необходимые файлы из корня сервера hlds в нашу папку hltv. Нам понадобятся следующие файлы: hltv; core.so; proxy.so; filesystem_stdio.so; hltv.cfg (создаём сами):
Четвёртым делом мы рекурсивно изменим права доступа файлов/директорий на нового пользователя hltv, так как мы изначально работали из под root, соответственно, файлы "принадлежали" ему:
Пятым делом попробуем запустить наш hltv сервер от имени нового пользователя hltv:
К сожалению, система ответила ошибкой о том, что отсутствует файл: libsteam_api.so. Исправим эту ситуацию:
Не будем отчаиваться и снова попробуем запустить сервер:
Но и тут нас ожидает неудача. Отсутствие двух путей/файлов: director.so и steamclient.so. Исправим и это, а также снова изменим права доступа:
Пробуем ещё раз запустить наш сервер hltv с надеждой:
Немного злимся, но исправляем ошибку с отсутствием пути/файла: libsteam.so:
Если не запустится убиваем виртуальный сервер к чертям...
О, чудо =DD Сервер успешно запустился и demo-запись началась. ) Всем спасибо за внимание!
Для тех, кому лень всё это проделывать. Прикрепляю ссылку на скачивание готового HLTV сервера.
В нём присутствуют все необходимые файлы, включая небольшой скрипт для запуска/остановки сервера:
Отдельная благодарность a2, за способ запуска сервера без использования screen сессии.
P.s.: папку "steam" переименовать в ".steam"
P.s.s.: папку "usr" закинуть в соответствующие место =D
Вы должны зарегистрироваться, чтобы видеть ссылки.
Для подготовки статьи специально был куплен виртуальный сервер (OpenVZ: debian-7.0-x86).
Первым делом, что нам необходимо сделать, - это выкачать с помощью SteamCMD актуальный на сегодняшний день сервер, build 6153. Конечно, можно и более ранних версий, но я предпочитаю свеженькие файлы Предположим, что у нас сервер расположен по следующему пути: /home/hlds
Вторым делом мы создадим нового пользователя (для запуска HLTV) и нужные нам директории для дальнейшей работы. По умолчанию при создании нового пользователя директория имеет следующий путь: /home/hltv. При добавлении нового пользователя система запросит ввести пароль, повторить пароль, ввести дополнительные данные (необязательно) и подтвердить корректность информации.
- Код: Выделить всё
root@vds142:~# adduser hltv
Adding user `hltv' ...
Adding new group `hltv' (1000) ...
Adding new user `hltv' (1000) with group `hltv' ...
Creating home directory `/home/hltv' ...
Copying files from `/etc/skel' ...
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Changing the user information for hltv
Enter the new value, or press ENTER for the default
Full Name []:
Room Number []:
Work Phone []:
Home Phone []:
Other []:
Is the information correct? [Y/n] y
Для удобства создадим ещё две директории внутри нашего нового пользователя. Это папка cstrike (куда будут записываться будущие demo-записи) и папка valve (куда будут вестись логи, если вам это необходимо):
- Код: Выделить всё
root@vds142:~# mkdir /home/hltv/cstrike
root@vds142:~# mkdir /home/hltv/valve
Третьим делом мы скопируем все необходимые файлы из корня сервера hlds в нашу папку hltv. Нам понадобятся следующие файлы: hltv; core.so; proxy.so; filesystem_stdio.so; hltv.cfg (создаём сами):
- Код: Выделить всё
root@vds142:~# cd /home/hlds
root@vds142:/home/hlds# cp hltv /home/hltv
root@vds142:/home/hlds# cp core.so /home/hltv
root@vds142:/home/hlds# cp proxy.so /home/hltv
root@vds142:/home/hlds# cp filesystem_stdio.so /home/hltv
root@vds142:/home/hlds# cd /home/hltv
root@vds142:/home/hltv#
Четвёртым делом мы рекурсивно изменим права доступа файлов/директорий на нового пользователя hltv, так как мы изначально работали из под root, соответственно, файлы "принадлежали" ему:
- Код: Выделить всё
root@vds142:/home/hltv# chown -R hltv:hltv /home/hltv/
Пятым делом попробуем запустить наш hltv сервер от имени нового пользователя hltv:
- Код: Выделить всё
root@vds142:/home/hltv# sudo -u hltv ./hltv +connect 37.230.210.77:27015 -port 27030
Console initialized.
FileSystem initialized.
Error:libsteam_api.so: cannot open shared object file: No such file or directory
WARNING! System::DispatchCommand: command "connect 37.230.210.77:27015" not registered.
Type 'help' for a list of commands.
WARNING! System::RunFrame: system time difference <= 0.
WARNING! System::RunFrame: system time difference <= 0.
К сожалению, система ответила ошибкой о том, что отсутствует файл: libsteam_api.so. Исправим эту ситуацию:
- Код: Выделить всё
root@vds142:/home/hltv# cp /home/hlds/libsteam_api.so /usr/lib/
Не будем отчаиваться и снова попробуем запустить сервер:
- Код: Выделить всё
root@vds142:/home/hltv# sudo -u hltv ./hltv +connect 37.230.210.77:27015 -port 27030
Console initialized.
FileSystem initialized.
Network initialized.
Master module initialized.
Server module initialized.
World module initialized.
Demo client initialized.
Couldn't open config file hltv.cfg.
Proxy module initialized.
Type 'help' for a list of commands.
Challenging 37.230.210.77:27015 (1/3).
Get challenge (HASHEDCDKEY)
Connecting to 37.230.210.77:27015 (1/3).
>
BUILD 6153 SERVER (0 CRC)
Server # 1
Added 781 resources.
Received baseline with 68 entities.
qError:/home/hlds/cstrike/dlls/director.so: cannot open shared object file: No such file or directory
Couldn't open config file director.cfg.
Director module initialized.
[S_API FAIL] SteamAPI_Init() failed; SteamAPI_IsSteamRunning() failed.
dlopen failed trying to load: steamclient.so with error:steamclient.so: cannot open shared object file: No such file or directory
Но и тут нас ожидает неудача. Отсутствие двух путей/файлов: director.so и steamclient.so. Исправим и это, а также снова изменим права доступа:
- Код: Выделить всё
root@vds142:/home/hltv# cp /home/hlds/steamclient.so /usr/lib/
root@vds142:/home/hltv# mkdir /home/hltv/cstrike/dlls
root@vds142:/home/hltv# cp /home/hlds/valve/dlls/director.so /home/hltv/cstrike/dlls
root@vds142:/home/hltv# chown -R hltv:hltv /home/hltv
root@vds142:/home/hltv#
Пробуем ещё раз запустить наш сервер hltv с надеждой:
- Код: Выделить всё
root@vds142:/home/hltv# sudo -u hltv ./hltv +connect 37.230.210.77:27015 -port 27030
Console initialized.
FileSystem initialized.
Network initialized.
Master module initialized.
Server module initialized.
World module initialized.
Demo client initialized.
Executing file hltv.cfg.
Recording initialized.
Proxy module initialized.
Type 'help' for a list of commands.
Challenging 37.230.210.77:27015 (1/3).
Get challenge (HASHEDCDKEY)
Connecting to 37.230.210.77:27015 (1/3).
>
BUILD 6153 SERVER (0 CRC)
Server # 1
Added 781 resources.
Received baseline with 68 entities.
[S_API FAIL] SteamAPI_Init() failed; SteamAPI_IsSteamRunning() failed.
Setting breakpad minidump AppID = 10
dlopen failed trying to load: /home/hltv/.steam/sdk32/libsteam.so with error: /home/hltv/.steam/sdk32/libsteam.so: cannot open shared object file: No such file or directory
Немного злимся, но исправляем ошибку с отсутствием пути/файла: libsteam.so:
- Код: Выделить всё
root@vds142:/home/hltv# mkdir /home/hltv/.steam/
root@vds142:/home/hltv# mkdir /home/hltv/.steam/sdk32
root@vds142:/home/hltv# cp /home/hlds/libsteam.so /home/hltv/.steam/sdk32
root@vds142:/home/hltv# chown -R hltv:hltv /home/hltv
root@vds142:/home/hltv#
Если не запустится убиваем виртуальный сервер к чертям...
- Код: Выделить всё
root@vds142:/home/hltv# sudo -u hltv ./hltv +connect 37.230.210.77:27015 -port 27030
Console initialized.
FileSystem initialized.
Network initialized.
Master module initialized.
Server module initialized.
World module initialized.
Demo client initialized.
Executing file hltv.cfg.
Recording initialized.
Proxy module initialized.
Type 'help' for a list of commands.
Challenging 37.230.210.77:27015 (1/3).
Get challenge (HASHEDCDKEY)
Connecting to 37.230.210.77:27015 (1/3).
>
BUILD 6153 SERVER (0 CRC)
Server # 1
Added 781 resources.
Received baseline with 68 entities.
[S_API FAIL] SteamAPI_Init() failed; SteamAPI_IsSteamRunning() failed.
Setting breakpad minidump AppID = 10
Start recording to clc-1605032107-de_dust2.dem.
О, чудо =DD Сервер успешно запустился и demo-запись началась. ) Всем спасибо за внимание!
Для тех, кому лень всё это проделывать. Прикрепляю ссылку на скачивание готового HLTV сервера.
В нём присутствуют все необходимые файлы, включая небольшой скрипт для запуска/остановки сервера:
- Код: Выделить всё
sudo -u hltv ./hltv.sh start
sudo -u hltv ./hltv.sh stop
Отдельная благодарность a2, за способ запуска сервера без использования screen сессии.
P.s.: папку "steam" переименовать в ".steam"
P.s.s.: папку "usr" закинуть в соответствующие место =D
Вы должны зарегистрироваться, чтобы видеть ссылки.
Тема перемещена в раздел "Статьи по играм на движках GoldSrc/Source" // Subb98