«Артефакты» сервера FiveM - это сборки FXServer, которые Cfx.re публикует на runtime.fivem.net/artifacts/fivem/: один список для Linux и один для Windows, в каждом отмечены рекомендованная сборка и более новая необязательная. Запускайте рекомендованную, обновляйтесь, когда она сдвигается или когда фреймворк либо ресурс под escrow требует чего-то новее, и всегда обновляйтесь, кладя новую сборку рядом со старой, а не поверх неё, - тогда откат сводится к переименованию папки. txAdmin поставляется внутри артефакта, поэтому обновляется вместе с ним. Перед каждым обновлением делайте backup папки server-data, базы данных и собственной папки данных txAdmin - бинарник же одноразовый. В этом руководстве - что за четыре отдельных номера версий есть у сервера FiveM, как читать список артефактов, порядок обновления на обеих платформах, тестирование и что делать, когда сборка что-то ломает.
Четыре версии, которые меняются независимо#
«Обнови сервер» означает разное в зависимости от того, кто это говорит. У сервера FiveM четыре слоя, у каждого своя версия и свой график:
| Слой | Где задаётся | Кто выпускает |
|---|---|---|
| Сборка FXServer (артефакт) | Бинарник, который вы запускаете | Cfx.re, часто несколько раз в неделю |
| txAdmin | Входит в артефакт | Выпускается вместе с артефактами |
| Сборка игры | sv_enforceGameBuild в server.cfg | Обновления GTA от Rockstar, принятые Cfx.re |
| Фреймворк и ресурсы | Ваша папка resources | Каждый проект или автор |
Эта статья про первые два. Сборка игры фиксирует, на каком обновлении GTA Online должны быть клиенты, и разобрана в статье о server.cfg в FiveM. Обновления фреймворка - отдельная дисциплина, о ней статья о сравнении фреймворков FiveM. Держать все четыре в голове раздельно нужно потому, что большинство историй «обновление сломало мне сервер» - это два слоя, изменённых в один вечер, и никто не может сказать, какой из них виноват.
Клиент FiveM у игрока обновляется сам и не привязан к сборке вашего сервера. Когда Rockstar патчит GTA V, клиент иногда ломается у всех, пока Cfx.re не догонит; ваш сервер тут ни при чём, и никакое ваше обновление этого не исправит.
Как читать список артефактов#
У индекса артефактов два пути:
Linux: https://runtime.fivem.net/artifacts/fivem/build_proot_linux/master/Windows: https://runtime.fivem.net/artifacts/fivem/build_server_windows/master/Каждая страница перечисляет сборки по номерам, от новых к старым, и выделяет две из них:
- Latest recommended. Сборка, которую Cfx.re считает стабильной для продакшена. Именно её вы и запускаете.
- Latest optional. Более новая, с исправлениями и функциями, которые проверены не так широко. Запускайте её на тестовом сервере, если вам что-то в ней нужно.
Всё ниже - старее. Сборки, сильно отстающие от рекомендованной, получают предупреждения в консоли, а Cfx.re в прошлом прекращала поддержку сборок, настолько старых, что они становились проблемой безопасности или совместимости, так что «никогда не обновляться» - тоже не стратегия. Номер сборки выводится при запуске сервера:
FXServer-master SERVER v1.0.0.12345 linuxЗаписывайте его перед каждым обновлением. «На какой сборке мы были, когда всё в последний раз работало» - первый вопрос при каждом откате, и никто этого не помнит.
Cfx.re публикует списки изменений серверных сборок на своём форуме и в документации. Просмотрите их для диапазона между вашей сборкой и целевой: важны строки об изменениях natives, которые используют ваши ресурсы, о поведении OneSync и о повышении версии txAdmin.
Когда обновляться#
Обновление ради обновления стоит вечера и грозит сломанными выходными. Причины, ради которых оно того стоит:
- Рекомендованная сборка сдвинулась, а вы отстаёте на несколько. Держитесь в пределах нескольких недель от рекомендованной; сильное отставание превращает одно небольшое обновление в большое.
- Этого требует ресурс. Актуальные библиотеки и фреймворки указывают минимальную сборку сервера - ресурсы Overextended в этом строги, - а ресурсам под escrow для проверки нужна достаточно свежая сборка.
- Нужное вам исправление. Вылет или ошибка синхронизации из списка изменений, совпадающая с тем, что вы видите.
- Исправление безопасности. Прочитайте объявление и обновитесь без промедления.
А вот причины, которые того не стоят: пост на форуме о том, что последняя необязательная сборка быстрее, или новая функция, которая вам не нужна.
Обновление бинарника#
Порядок в принципе везде одинаковый - новая сборка рядом со старой, чистая остановка, замена, запуск, старую держим, пока новая себя не проявит, - и различаются только команды.
На Linux
Привычная структура держит бинарник отдельно от данных, чтобы бинарник можно было заменить целиком:
/home/fivem/ server/ the artifact - replaced on update server-data/ resources, server.cfg - backed up, never replaced txData/ txAdmin's settings, admins, players, bansОбновление, при котором старая сборка остаётся рядом с новой:
$ cd /home/fivem$ wget -O fx.tar.xz "https://runtime.fivem.net/artifacts/fivem/build_proot_linux/master/<build>/fx.tar.xz"$ mkdir server-new && tar xf fx.tar.xz -C server-new# stop the server cleanly here, then:$ mv server server-old && mv server-new server$ cd server-data && bash ../server/run.sh +exec server.cfgТочную ссылку для скачивания берите со страницы артефактов: у каждой сборки своё имя папки. Если новая сборка ведёт себя плохо, остановите её и поменяйте имена папок обратно. Удаляйте server-old только после того, как новая сборка проработала целый вечер с настоящими игроками.
Если вы запускаете сервер через txAdmin, запускайте run.sh без +exec, как и раньше; txAdmin сам найдёт свою папку данных и запустит FXServer с вашей конфигурацией.
На Windows
Артефакт для Windows - это архив server.7z с FXServer.exe и его файлами. По духу порядок тот же: распакуйте новую сборку в новую папку, остановите сервер, переименуйте старую папку, чтобы она не мешала, переименуйте новую на её место и запустите тем же ярлыком или bat-файлом. Никогда не распаковывайте новую сборку поверх работающей: используемые файлы не заменятся, и вы получите смесь двух сборок, которая ломается странными способами.
На хостинге с панелью
В панели на базе Pterodactyl артефакт лежит в файлах самого сервера и скачивается скриптом установки. Eggs для FiveM обычно выносят сборку для запуска в переменную на вкладке Startup - поле версии, которое принимает номер сборки или ключевое слово вроде recommended, - а шаг установки или обновления её скачивает. Прежде чем что-то предполагать, посмотрите, что предлагает вкладка Startup на вашем сервере.
На RE:NODE перед сменой сборки сделайте backup из панели: восстановление - одна кнопка, а бэкапы хранятся вне машины, так что эта страховка ничего не стоит. Backup также можно заблокировать, чтобы плановая ротация не удалила копию, сделанную перед обновлением. Ваша база данных живёт в отдельном слоте, поэтому её бэкапьте отдельно - полный метод описан в статье о базах данных FiveM и oxmysql.
txAdmin при обновлениях#
txAdmin - часть артефакта, поэтому новая сборка часто приносит новый txAdmin. Свои данные он хранит вне артефакта - настройки, аккаунты админов, базу игроков, баны, предупреждения, одобрения вайтлиста - в папке txData (или там, куда её направляет панель или скрипт запуска). Об этой папке легко забыть, а терять её больно: потерять её значит потерять список банов и аккаунты админов.
- Делайте backup `txData` перед каждым обновлением вместе с
server-data. - Ожидайте односторонних миграций. Более новый txAdmin при первом запуске может обновить хранимые данные. Если после этого вернуться к старой сборке, txAdmin может не суметь их прочитать, поэтому при откате нужно восстанавливать и backup
txData. - Читайте примечания к выпуску txAdmin, когда меняется его мажорная версия. Настройки переезжают между страницами и иногда меняют смысл; недавний пример - настройки Discord-вайтлиста, описанные в статье о Discord-вайтлисте и правах в FiveM.
Тестирование перед продакшеном#
Самое безопасное обновление - то, которое кто-то другой уже проверил на вашем точном списке ресурсов. Этот кто-то - второй сервер.
- Выпустите второй лицензионный ключ с того же аккаунта Cfx.re. Ресурсы под escrow, принадлежащие этому аккаунту, работают на обоих ключах, как объясняется в статье об escrow и лицензировании ассетов FiveM.
- Скопируйте `server-data` на тестовый сервер и направьте его на копию базы данных, никогда - на живую.
- Запустите там новую сборку. Запустите её, прочитайте консоль с самого начала на предмет ошибок, зайдите и пройдитесь по тому, чем пользуются игроки: создание персонажа, инвентарь, работа, гараж, магазин.
- Профилируйте. Смена сборки может изменить производительность. Сравните профиль с живым сервером при похожей нагрузке, как описано в статье о производительности сервера FiveM.
- Только потом обновляйте продакшен - в тихий час, сохранив старую папку.
Для небольшого сервера тестовым прогоном может быть живой сервер в 6 утра с вайтлистом txAdmin в режиме admin-only на час. Это хуже второго сервера, но гораздо лучше, чем обновиться в пик и узнать о проблеме на глазах у шестидесяти человек.
За чем следить в первый вечер
Обновление, которое чисто запустилось, всё ещё может сломаться под нагрузкой. В первый оживлённый вечер на новой сборке следите за:
- Hitch warning в консоли. Сборка, изменившая поведение синхронизации или сети, проявится здесь первой - задержками server, sync или network thread, которых раньше не было.
- Графиком тиков в txAdmin. Сравните форму с предыдущим вечером. Новый хвост медленных тиков при том же числе игроков - это сборка или ресурс, который на неё реагирует.
- Памятью за сессию. Утечка, внесённая сборкой, растёт медленно; посмотрите на график в начале и в конце вечера.
- Жалобами игроков на конкретные действия. «Моя машина исчезла», «магазин не списал деньги» - это указывает на изменения в OneSync или natives, которые проявляются только с настоящими игроками, делающими настоящие вещи.
Если что-то из этого сдвинулось, у вас всё ещё есть старая сборка рядом с новой. Откат после одного плохого вечера стоит десяти минут; жизнь с плохой сборкой неделю в надежде, что всё уляжется, стоит терпения сообщества.
Чек-лист обновления#
- Запишите текущий номер сборки из строки запуска.
- Прочитайте список изменений между ней и целевой.
- Объявите окно обслуживания; переведите вайтлист txAdmin в admin-only, если хотите, чтобы сервер был закрыт, пока вы тестируете.
- Остановите сервер чисто, чтобы фреймворк сохранил данные игроков.
- Сделайте backup
server-data,txDataи базы данных. Заблокируйте backup, если панель это позволяет. - Положите новую сборку рядом со старой и поменяйте их местами.
- Запустите и прочитайте консоль от первой строки до последнего ресурса.
- Зайдите и проверьте пути, которыми игроки пользуются чаще всего.
- Откройте сервер снова; следите за консолью и графиком тиков txAdmin в течение первого оживлённого вечера.
- Удалите старую сборку после нескольких дней без проблем.
Меняйте по одному слою за раз. Если у фреймворка тоже есть обновление, сделайте его в другой день. Когда что-то сломается, вы будете знать, какое изменение это сделало.
Откат#
Когда новая сборка ломает что-то, что нельзя исправить за минуты:
- Остановите сервер.
- Поменяйте папки обратно:
serverполучает имя новой сборки,server-oldстановитсяserver. - Если txAdmin мигрировал свои данные, восстановите
txDataиз бэкапа, сделанного до обновления. - Если на новой сборке какое-то время играли люди, примите решение насчёт базы данных: восстановление потеряет всё, что было после, а оставить её обычно можно, потому что схема базы данных принадлежит фреймворку, а не FXServer.
- Запустите сервер, убедитесь, что строка запуска показывает старый номер сборки, и откройте его.
Затем выясните причину, прежде чем пробовать снова. Ищите в выводе консоли упавшей сборки первую ошибку, а не последнюю; прочитайте список изменений для natives, которые использует сломавшийся ресурс; спросите автора ресурса, имея на руках номер сборки. Общая версия этого для разных игр - в статье о том, что делать, когда обновление мода всё ломает.
Устранение неполадок после обновления#
Ресурс не запускается с ошибками об отсутствующей функции или native. Ресурс полагается на поведение, которое изменилось, или требует сборку новее той, что вы установили. Проверьте указанную для него минимальную сборку.
Ресурсы под escrow не загружаются. Сборка слишком старая для escrow, или обновление совпало со сменой ключа. Запустите рекомендованную сборку и проверьте ключ.
txAdmin не запускается или потерял настройки. Он смотрит на другую папку данных, или данные были мигрированы более новой версией, а вы откатились, не восстановив txData.
Сервер запускается, игроки подключаются, а синхронизация стала хуже. Изменение в поведении OneSync. Сравните со старой сборкой на тестовом сервере и сообщите об этом, указав номера сборок.
После обновления игроки не могут войти, хотя сервер выглядит нормально. Обычно это не связано с артефактом: изменилась сборка игры, заданная в server.cfg, или какой-то ресурс падает в процессе входа. Читайте консоль, пока кто-нибудь подключается.
FAQ#
Что такое артефакты сервера FiveM?
Это сборки FXServer, которые публикует Cfx.re, - один список для Linux и один для Windows. Каждая сборка - это полный бинарник сервера со встроенным txAdmin. Ваши ресурсы и конфигурация живут отдельно и не входят в артефакт.
Какую сборку FiveM использовать - рекомендованную или последнюю?
Для любого живого сервера - рекомендованную. Более новые необязательные сборки нужны, чтобы тестировать исправления и функции до того, как их рекомендуют. Используйте такую, только когда вам нужно что-то, что в ней есть, и сначала протестируйте.
Как часто обновлять FXServer?
Достаточно часто, чтобы оставаться в пределах нескольких недель от рекомендованной сборки, и каждый раз, когда ресурс, на который вы полагаетесь, требует более новую. Обновляться до каждой сборки по мере выхода нет никакого смысла.
Удалит ли обновление сервера мои ресурсы?
Нет, если вы держите артефакт и server-data в разных папках, как принято. Артефакт заменяется; ваши ресурсы, server.cfg и база данных не затрагиваются. Но backup всё равно сделайте.
Обновляет ли обновление FXServer и txAdmin?
Да. txAdmin поставляется внутри артефакта. Его папка данных переживает обновление, но более новый txAdmin может мигрировать эти данные так, что старый их уже не прочитает, поэтому перед обновлением сделайте их backup.




Комментарии
Полностью анонимно: без аккаунта, без почты, без cookie. Мы храним имя, которое вы ввели, текст и время - больше ничего. Количество ссылок ограничено, разметка не отображается.