• Из-за обновления GTA 5 (был добавлен новый патч) может временно не работать вход в RAGE Multiplayer.

    ERROR: Your game version is not supported by RAGE Multiplayer.

    Данная ошибка говорит о том, что GTA V обновилась до новой версии (GTA Online тоже). Вам необходимо обновить саму игру в главном меню вашего приложения (Steam / Epic Games / Rockstar Games).
    Если после этого RAGE:MP все равно не работает - вам нужно дождаться выхода патча для самого мультиплеера (обычно это занимает от нескольких часов до нескольких дней).

    Новости и апдейты Rockstar Games - https://www.rockstargames.com/ru/newswire/
    Статус всех служб для Rockstar Games Launcher и поддерживаемых игр: https://support.rockstargames.com/ru/servicestatus


    Grand Theft Auto 5 (+ GTA Online) последний раз были обновлены:

Harland David Sanders

Куратор портала
Автор темы
Команда форума
Куратор портала
VIP
high coder
media
10 Сен 2020
3,109
2,523
219
Привет всем! В этом уроке я постараюсь максимально подробно объяснить и показать процесс установки готового сервера RedAge v3 (NeptuneEvo) на Linux.

В качестве дистрибутива мы будем использовать AlmaLinux 9.3, выпущенный 13 ноября 2023 года. Характеристики используемого сервера - 2 ядра, 8 ГБ RAM, 25 ГБ SSD.

Все команды будут выполняться от имени суперпользователя - root. Пожалуйста, имейте в виду, что некоторые облачные хостинги по умолчанию предоставляют доступ только к обычному пользователю с возможностью повышения привилегий через sudo.

Также есть еще одно важное уточнение: для полноценной установки требуется операционная система из семейства Windows с установленной программой Visual Studio + .NET SDK, а также необходимо иметь сервер БД (MariaDB).
ОС Windows нам нужна чтобы правильно сделать сборку проекта, а также сборку всех конфигов (.tt файлы), так как я не нашел способа сделать это на Linux напрямую (если у кого то есть рабочие варианты - пожалуйста расскажите о них в комментариях).

Приступим.

Первым шагом после получения готового виртуального сервера на Linux и подключения к нему через SSH всегда рекомендуется обновить систему и все пакеты. Для этого, после входа, выполните следующую команду:

Bash:
sudo dnf upgrade

В процессе установки соглашаемся с установкой и обновлением компонентов клавишей - Y, после чего нажимаем Enter и установка пошла, данный процесс может занять достаточно времени, дожидаемся завершения процесса.

1.png


После обновления системы следующим шагом будет скачивание чистого пакета сервера RAGE:MP для Linux. Для этого выполните следующую команду:

Bash:
sudo curl -O https://cdn.rage.mp/updater/prerelease/server-files/linux_x64.tar.gz

После окончания загрузки архива, его необходимо распаковать, для этого выполните следующую команду:
Это составная команда. Первым делом мы устанавливаем пакет - tar (если его нет в системе, обычно есть), а затем, распаковываем скаченный ранее архив.

Bash:
sudo dnf install tar ; sudo tar -xzf linux_x64.tar.gz

Далее необходимо выдать исполняемому файлу сервера права на запуск с помощью команды:

Bash:
sudo chmod +x ~/ragemp-srv/ragemp-server

Заключительный шаг в установке чистого сервера RAGE:MP, запуск с помощью команды:

Bash:
cd ~/ragemp-srv/ ; ./ragemp-server

Это составная команда. Первым делом мы переходим в папку ragemp-srv, а затем, вторым шагом, запускаем исполняемый файл - ragemp-server.

Внимание! Если вы получаете ошибку - error while loading shared libraries: libatomic.so.1: cannot open shared object file: No such file or directory
Вам необходимо просто установить недостающий пакет в систему с помощью команды:

Bash:
sudo dnf install libatomic

После выполнения данной команды снова вернитесь к предыдущему шагу (запуск чистого сервера).

Мы установили и запустили чистый сервер (базу). На этот шаблон можно установить любую сборку сервера, но, конечно же, мы будем дальше устанавливать RedAge v3.

Пример успешного вывода запуска видно на скриншоте, никаких ошибок быть не должно.

2.png


Чтобы остановить сервер и иметь возможность выполнить следующие шаги, необходимо нажать комбинацию клавиш Ctrl + C.
Это сочетание клавиш используется в Linux для прерывания текущего процесса. Рекомендуется запомнить это.

Далее нам необходимо установить и настроить окружение для сборки сервера RedAge v3, а именно - MySQL, Redis и .NET.
Будем действовать по порядку и начнем с сервера баз данных. Я предпочитаю использовать MariaDB. Чтобы установить её, выполните следующую команду:

Bash:
sudo dnf install mariadb-server

В процессе установки соглашаемся с установкой и обновлением компонентов, нажав клавишу - Y, после чего нажимаем Enter и установка начнется.
После завершения установки сервера баз данных необходимо включить службу и запустить процесс сервера. Для этого выполните следующую команду:

Bash:
sudo systemctl enable --now mariadb

Затем убедимся, что команда выполнена успешно - сервис запустился и работает. Для этого используйте следующую команду:

Bash:
systemctl status mariadb

Пример успешного вывода запуска виден на скриншоте. Обратите внимание на две надписи зелёным цветом - 'enabled' и 'active (running)'. Никаких ошибок быть не должно.

3.png


Чтобы продолжить с выполнением следующих шагов, необходимо нажать комбинацию клавиш Ctrl + C (вы же уже запомнили это, верно?).

Теперь вам необходимо создать файл по пути - /etc/my.cnf.d/character-set.cnf, с таким содержимым:

Код:
[client]
default-character-set = utf8mb4

[mysql]
default-character-set = utf8mb4

[mysqld]
character-set-client-handshake = FALSE
collation-server = utf8mb4_unicode_ci
init-connect = 'SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci'
character-set-server = utf8mb4

После сохранения данного файла - необходимо перезапустить сервер БД с помощью команды:

Bash:
sudo service mariadb restart

Далее нам необходимо войти в оболочку MySQL, создать несколько баз данных, создать пользователя и выдать ему необходимые для работы привилегии.
Чтобы войти в оболочку MySQL, выполните следующую команду:

Bash:
sudo mysql

Внутри этого интерфейса последовательно выполняем следующие команды:

SQL:
// Создаем базы данных
CREATE DATABASE ra3_main;
CREATE DATABASE ra3_mainconfig;
CREATE DATABASE ra3_mainlogs;

// Создаем пользователя для работы с базами данных
// Не забудьте изменить пароль внутри кавычек на свой.
CREATE USER 'redage'@'localhost' IDENTIFIED BY 'kB20Aps8jX';

// Предоставляем пользователю полный доступ к двум базам данных
GRANT ALL PRIVILEGES ON ra3_main.* TO 'redage'@'localhost';
GRANT ALL PRIVILEGES ON ra3_mainconfig.* TO 'redage'@'localhost';
GRANT ALL PRIVILEGES ON ra3_mainlogs.* TO 'redage'@'localhost';

GRANT SUPER ON *.* TO 'redage'@'localhost';

// В самом конце - обновляем таблицу привилегий в памяти
FLUSH PRIVILEGES;

Вывод после ввода каждой команды должен быть - Query OK. Никаких ошибок быть не должно.

Выходим из интерфейса MySQL с помощью сочетания клавиш Ctrl + C.

Далее нам необходимо импортировать дампы (файлы .sql) в только что созданные базы данных.
Для этого загрузите все три файла из папки database (находящейся в архиве сборки) в директорию сервера - /root.
Для этого вы можете использовать инструменты SFTP или SCP. Подробные инструкции по передаче файлов не будут предоставлены здесь, но вы можете найти их в интернете.

Чтобы точно убедится перед следующим шагом что эти 3 файла существуют в текущей директории выполните команду:

Bash:
cd ~ ; ls -la

Это составная команда. Первым делом мы переходим в домашнюю папку (в моем случае - /root) и просматриваем содержимое текущей директории.
Пример правильного вывода запуска видно на скриншоте, как видим файлы - main.sql, mainconfig.sql, mainlogs.sql существуют.

4.png


Затем выполняем импорт данных с помощью команды:

Bash:
sudo mysql ra3_main < main.sql ; sudo mysql ra3_mainconfig < mainconfig.sql ; sudo mysql ra3_mainlogs < mainlogs.sql

Это также составная команда, она поочередно заполняет данными указанные таблицы.
Обратите внимание, что я действую от имени пользователя - root, поэтому мне не нужно указывать пароль.

При успешном выполнении команды вывод должен быть пустым.

На этом этап установки и настройки MySQL завершен, переходим к этапу настройки конфигов на вашем компьютере с Windows.
У вас уже должна быть установлена MariaDB + HeidiSQL. Открываем программу HeidiSQL, подключаемся к локальному серверу и создаем 3 базы данных (ra3_main, ra3_mainconfig, ra3_mainlogs) кликнув ПКМ на нашем подключении в левом меню.
После чего необходимо нажать на иконку двух человечков в верхнем меню, у нас откроется менеджер пользователей для БД.

5.png


Теперь этом меню создаем нового пользователя (кнопка - Add) - redage, устанавливаем ему созданный ранее пароль, затем добавляем доступ к базам данных (кнопка - Add object) с помощью зажатого Ctrl выбираем все 3 базы данных, не забудьте проставить галочки на правах доступа.

6.png


7.png


Закрываем менеджер пользователей и импортируем дампы (файлы .sql) в соответствующие базы данных. Для этого выбираем поочередно (до появления зеленой галочки) нужную БД и выбираем в контекстном меню File -> Run SQL file ..

8.png


Далее переходим в папку со сборкой сервера на вашем ПК с Windows и открываем с помощью Visual Studio файл - redage_v3\dotnet\resources\NeptuneEvo.sln

В левом меню (Solution Explorer) переходим к файлу - NeptuneEvo -> Database -> Config -> Config.tt.
В нем редактируем строчку с данными для подключения MySQL, пользователь - redage, пароль - тот который мы создали ранее, после чего нажимаем Ctrl + S (и дожидаемся окончания загрузки).
Также поступаем с другим файлом внутри этой меню - NeptuneEvo -> Database -> Server -> ServerStruct.tt

Должно получится примерно так:

В файле - Config.tt:
C#:
LoadMySqlMetadata("127.0.0.1", "ra3_mainconfig", "redage", "kB20Aps8jX");

В файле - ServerStruct.tt:
C#:
LoadMySqlMetadata("127.0.0.1", "ra3_main", "redage", "kB20Aps8jX");

После чего выполняем - Build - Rebuild Solution (Сборка - Пересобрать). На этом этапе, если вы все правильно сделали - не должно быть никаких ошибок.
Если есть ошибки - внимательно читайте инструкцию и перепроверяйте каждый шаг, скорее всего вы ошиблись из-за невнимательности.

Теперь важный шаг который все постоянно забывают делать - отредактируйте также данные для подключения БД в файле - redage_v3\settings\mainDB.json (меняем только пользователя и пароль который установили ранее).

Следующий шаг - загрузка только необходимых файлов сборки поверх чистого (пустого) сервера на наш Linux (на этом этапе опускаем моменты с билдом src_client и src_cef так как это уже должно быть сделано, если нет смотрите основную инструкцию).

Список файлов и папок которые вы должны загрузить в папку /root/ragemp-srv:
  • redage_v3\backups
  • redage_v3\client_packages
  • redage_v3\dotnet\resources
  • redage_v3\dotnet\settings.xml
  • redage_v3\json
  • redage_v3\settings
  • redage_v3\conf.json

Внимание! Не заменяйте папку - /root/ragemp-srv/dotnet/runtime иначе у вас будут проблемы при запуске сервера, как видите этой папке нет в списке необходимых для загрузки на ваш сервер.

Когда файлы загружены, необходимо выполнить несколько последних шагов для завершения установки, а именно установка нужной версии OpenSSL + у нас остался не настроенным Redis.
Для этого выполняем следующую команду:

Bash:
sudo dnf install compat-openssl11 redis

После завершения установки Redis необходимо включить службу и запустить процесс. Для этого выполните следующую команду:

Bash:
sudo systemctl enable --now redis

Вы молодец, если дошли до этого этапа без ошибок, остался последний завершающий шаг, чтобы исправить ошибку при запуске сервера - Void OnPlayerConnected(NeptuneEvo.Handles.ExtPlayer) doesn't match event signature ("PlayerConnected").
Для этого выполните следующую команду:

Bash:
sudo cp -r ~/ragemp-srv/dotnet/resources/NeptuneEvo/Bootstrapper.dll ~/ragemp-srv/dotnet/runtime/

Теперь наконец-то можно запускать сервер с помощью команды:

Bash:
cd ~/ragemp-srv/ ; ./ragemp-server

Пример успешного вывода запуска виден на скриншоте. Никаких ошибок быть не должно.

9.png


Также для удобства и замены RestartOnCrash (как делали на Windows) можем сделать сервер службой в Linux, чтобы он сам перезапускался при рестарте или падении:
Авто-поднятие сервера RAGE:MP в случае падения (Linux).

Надеюсь все объяснил понятно и вопрос с установкой сервера RedAge v3 на Linux теперь закрыт.
Спрашивайте если что-то непонятно, если будет время - отвечу и постараюсь помочь.
 
Последнее редактирование:

#Clifford

Гуру
1 Ноя 2020
609
156
111
на Alma такое: sudo: tar: command not found
 

Harland David Sanders

Куратор портала
Автор темы
Команда форума
Куратор портала
VIP
high coder
media
10 Сен 2020
3,109
2,523
219
Последнее редактирование: