Привет всем! В этом уроке я постараюсь максимально подробно объяснить и показать процесс установки готового сервера 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 всегда рекомендуется обновить систему и все пакеты. Для этого, после входа, выполните следующую команду:
В процессе установки соглашаемся с установкой и обновлением компонентов клавишей - Y, после чего нажимаем Enter и установка пошла, данный процесс может занять достаточно времени, дожидаемся завершения процесса.
После обновления системы следующим шагом будет скачивание чистого пакета сервера RAGE:MP для Linux. Для этого выполните следующую команду:
После окончания загрузки архива, его необходимо распаковать, для этого выполните следующую команду:
Это составная команда. Первым делом мы устанавливаем пакет - tar (если его нет в системе, обычно есть), а затем, распаковываем скаченный ранее архив.
Далее необходимо выдать исполняемому файлу сервера права на запуск с помощью команды:
Заключительный шаг в установке чистого сервера RAGE:MP, запуск с помощью команды:
Это составная команда. Первым делом мы переходим в папку ragemp-srv, а затем, вторым шагом, запускаем исполняемый файл - ragemp-server.
Внимание! Если вы получаете ошибку - error while loading shared libraries: libatomic.so.1: cannot open shared object file: No such file or directory
Вам необходимо просто установить недостающий пакет в систему с помощью команды:
После выполнения данной команды снова вернитесь к предыдущему шагу (запуск чистого сервера).
Мы установили и запустили чистый сервер (базу). На этот шаблон можно установить любую сборку сервера, но, конечно же, мы будем дальше устанавливать RedAge v3.
Пример успешного вывода запуска видно на скриншоте, никаких ошибок быть не должно.
Чтобы остановить сервер и иметь возможность выполнить следующие шаги, необходимо нажать комбинацию клавиш Ctrl + C.
Это сочетание клавиш используется в Linux для прерывания текущего процесса. Рекомендуется запомнить это.
Далее нам необходимо установить и настроить окружение для сборки сервера RedAge v3, а именно - MySQL, Redis и .NET.
Будем действовать по порядку и начнем с сервера баз данных. Я предпочитаю использовать MariaDB. Чтобы установить её, выполните следующую команду:
В процессе установки соглашаемся с установкой и обновлением компонентов, нажав клавишу - Y, после чего нажимаем Enter и установка начнется.
После завершения установки сервера баз данных необходимо включить службу и запустить процесс сервера. Для этого выполните следующую команду:
Затем убедимся, что команда выполнена успешно - сервис запустился и работает. Для этого используйте следующую команду:
Пример успешного вывода запуска виден на скриншоте. Обратите внимание на две надписи зелёным цветом - 'enabled' и 'active (running)'. Никаких ошибок быть не должно.
Чтобы продолжить с выполнением следующих шагов, необходимо нажать комбинацию клавиш Ctrl + C (вы же уже запомнили это, верно?).
Теперь вам необходимо создать файл по пути - /etc/my.cnf.d/character-set.cnf, с таким содержимым:
После сохранения данного файла - необходимо перезапустить сервер БД с помощью команды:
Далее нам необходимо войти в оболочку MySQL, создать несколько баз данных, создать пользователя и выдать ему необходимые для работы привилегии.
Чтобы войти в оболочку MySQL, выполните следующую команду:
Внутри этого интерфейса последовательно выполняем следующие команды:
Вывод после ввода каждой команды должен быть - Query OK. Никаких ошибок быть не должно.
Выходим из интерфейса MySQL с помощью сочетания клавиш Ctrl + C.
Далее нам необходимо импортировать дампы (файлы .sql) в только что созданные базы данных.
Для этого загрузите все три файла из папки database (находящейся в архиве сборки) в директорию сервера - /root.
Для этого вы можете использовать инструменты SFTP или SCP. Подробные инструкции по передаче файлов не будут предоставлены здесь, но вы можете найти их в интернете.
Чтобы точно убедится перед следующим шагом что эти 3 файла существуют в текущей директории выполните команду:
Это составная команда. Первым делом мы переходим в домашнюю папку (в моем случае - /root) и просматриваем содержимое текущей директории.
Пример правильного вывода запуска видно на скриншоте, как видим файлы - main.sql, mainconfig.sql, mainlogs.sql существуют.
Затем выполняем импорт данных с помощью команды:
Это также составная команда, она поочередно заполняет данными указанные таблицы.
Обратите внимание, что я действую от имени пользователя - root, поэтому мне не нужно указывать пароль.
При успешном выполнении команды вывод должен быть пустым.
На этом этап установки и настройки MySQL завершен, переходим к этапу настройки конфигов на вашем компьютере с Windows.
У вас уже должна быть установлена MariaDB + HeidiSQL. Открываем программу HeidiSQL, подключаемся к локальному серверу и создаем 3 базы данных (ra3_main, ra3_mainconfig, ra3_mainlogs) кликнув ПКМ на нашем подключении в левом меню.
После чего необходимо нажать на иконку двух человечков в верхнем меню, у нас откроется менеджер пользователей для БД.
Теперь этом меню создаем нового пользователя (кнопка - Add) - redage, устанавливаем ему созданный ранее пароль, затем добавляем доступ к базам данных (кнопка - Add object) с помощью зажатого Ctrl выбираем все 3 базы данных, не забудьте проставить галочки на правах доступа.
Закрываем менеджер пользователей и импортируем дампы (файлы .sql) в соответствующие базы данных. Для этого выбираем поочередно (до появления зеленой галочки) нужную БД и выбираем в контекстном меню File -> Run SQL file ..
Далее переходим в папку со сборкой сервера на вашем ПК с 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:
В файле - ServerStruct.tt:
После чего выполняем - Build - Rebuild Solution (Сборка - Пересобрать). На этом этапе, если вы все правильно сделали - не должно быть никаких ошибок.
Если есть ошибки - внимательно читайте инструкцию и перепроверяйте каждый шаг, скорее всего вы ошиблись из-за невнимательности.
Теперь важный шаг который все постоянно забывают делать - отредактируйте также данные для подключения БД в файле - redage_v3\settings\mainDB.json (меняем только пользователя и пароль который установили ранее).
Следующий шаг - загрузка только необходимых файлов сборки поверх чистого (пустого) сервера на наш Linux (на этом этапе опускаем моменты с билдом src_client и src_cef так как это уже должно быть сделано, если нет смотрите основную инструкцию).
Список файлов и папок которые вы должны загрузить в папку /root/ragemp-srv:
Внимание! Не заменяйте папку - /root/ragemp-srv/dotnet/runtime иначе у вас будут проблемы при запуске сервера, как видите этой папке нет в списке необходимых для загрузки на ваш сервер.
Когда файлы загружены, необходимо выполнить несколько последних шагов для завершения установки, а именно установка нужной версии OpenSSL + у нас остался не настроенным Redis.
Для этого выполняем следующую команду:
После завершения установки Redis необходимо включить службу и запустить процесс. Для этого выполните следующую команду:
Вы молодец, если дошли до этого этапа без ошибок, остался последний завершающий шаг, чтобы исправить ошибку при запуске сервера - Void OnPlayerConnected(NeptuneEvo.Handles.ExtPlayer) doesn't match event signature ("PlayerConnected").
Для этого выполните следующую команду:
Теперь наконец-то можно запускать сервер с помощью команды:
Пример успешного вывода запуска виден на скриншоте. Никаких ошибок быть не должно.
Также для удобства и замены RestartOnCrash (как делали на Windows) можем сделать сервер службой в Linux, чтобы он сам перезапускался при рестарте или падении:
Авто-поднятие сервера RAGE:MP в случае падения (Linux).
Надеюсь все объяснил понятно и вопрос с установкой сервера RedAge v3 на 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 и установка пошла, данный процесс может занять достаточно времени, дожидаемся завершения процесса.
После обновления системы следующим шагом будет скачивание чистого пакета сервера 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.
Пример успешного вывода запуска видно на скриншоте, никаких ошибок быть не должно.
Чтобы остановить сервер и иметь возможность выполнить следующие шаги, необходимо нажать комбинацию клавиш 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)'. Никаких ошибок быть не должно.
Чтобы продолжить с выполнением следующих шагов, необходимо нажать комбинацию клавиш 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 существуют.
Затем выполняем импорт данных с помощью команды:
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) кликнув ПКМ на нашем подключении в левом меню.
После чего необходимо нажать на иконку двух человечков в верхнем меню, у нас откроется менеджер пользователей для БД.
Теперь этом меню создаем нового пользователя (кнопка - Add) - redage, устанавливаем ему созданный ранее пароль, затем добавляем доступ к базам данных (кнопка - Add object) с помощью зажатого Ctrl выбираем все 3 базы данных, не забудьте проставить галочки на правах доступа.
Закрываем менеджер пользователей и импортируем дампы (файлы .sql) в соответствующие базы данных. Для этого выбираем поочередно (до появления зеленой галочки) нужную БД и выбираем в контекстном меню File -> Run SQL file ..
Далее переходим в папку со сборкой сервера на вашем ПК с 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
Пример успешного вывода запуска виден на скриншоте. Никаких ошибок быть не должно.
Также для удобства и замены RestartOnCrash (как делали на Windows) можем сделать сервер службой в Linux, чтобы он сам перезапускался при рестарте или падении:
Авто-поднятие сервера RAGE:MP в случае падения (Linux).
Надеюсь все объяснил понятно и вопрос с установкой сервера RedAge v3 на Linux теперь закрыт.
Спрашивайте если что-то непонятно, если будет время - отвечу и постараюсь помочь.
Последнее редактирование: