{{description>Описана процедура обновления Node.js для MeshCentral}}
====== Обновление Node.js для MeshCentral ======
[[http://wiki.mihanik.net/doku.php?id=web-серверы_и_движки:meshcentral:обновление_node.js_для_meshcentral&do=export_pdf|Экспорт в PDF ]] ~~ODT~~
Дата создания: 2026/05/16 03:51 (C) mihanik
===== Дано =====
MeshCentral пишет: "MeshCentral will require Node v20 or above in the future, your current version is v16.20.2.".
===== Надо =====
Обновить Node.js до нужной версии.
===== Решение =====
Обновление Node.js для MeshCentral — стандартная процедура, но требует аккуратности, чтобы не прервать работу сервиса. Ниже приведена безопасная пошаговая инструкция для Linux.
----
==== ⚠️ Важно перед началом ====
- **Не обновляйте Node "на горячую" **— остановите MeshCentral, иначе сервис может завершиться с ошибкой или повредить сессии.
- **Проверьте, как установлен Node **
which node
node -v
Если путь ''/usr/bin/node'' или ''/usr/local/bin/node'' → скорее всего, ставился через пакетный менеджер или ''n'' /''nvm'' .
==== 📦 Шаг 1: Остановка сервиса и бэкап ====
# Остановите MeshCentral
sudo systemctl stop meshcentral
# Бэкап данных и конфига
sudo cp -r /opt/meshcentral/meshcentral-data /opt/meshcentral/meshcentral-data.backup
sudo cp /opt/meshcentral/meshcentral-data/config.json /opt/meshcentral/config.json.backup
(Путь ''/opt/meshcentral/'' может отличаться. Уточните через ''systemctl cat meshcentral'' )
==== 🔧 Шаг 2: Установка Node.js v20 через официальный репозиторий NodeSource ====
Этот метод самый надёжный для production-серверов.
=== 🐧 Debian/Ubuntu: ===
# Удалите старую версию (если ставилась из стандартных репозиториев)
sudo apt remove -y nodejs npm
# Подключите репозиторий Node.js v20
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
# Установите Node.js v20 (включает npm)
sudo apt install -y nodejs
=== 🐧 RHEL/CentOS/Rocky/Alma/Fedora: ===
sudo dnf remove -y nodejs
curl -fsSL https://rpm.nodesource.com/setup_20.x | sudo bash -
sudo dnf install -y nodejs
✅ NodeSource автоматически заменяет старую версию на v20.x LTS. Ручное удаление ''node_modules'' не требуется.
==== ✅ Шаг 3: Проверка и обновление MeshCentral ====
# Убедитесь, что версии корректные
node -v # должно быть v20.x.x
npm -v # должно быть v10.x.x
Если MeshCentral был установлен глобально (''npm -g'' ), обновите его до последней версии, совместимой с Node 20:
sudo npm install -g meshcentral@latest
Если MeshCentral установлен локально в папку (например, ''/opt/meshcentral'' ):
cd /opt/meshcentral
sudo npm install
==== 🔄 Шаг 4: Запуск и проверка ====
sudo systemctl start meshcentral
sudo systemctl status meshcentral
# Посмотрите логи на предмет ошибок
sudo journalctl -u meshcentral -n 50 --no-pager
Ищите строку: ''MeshCentral v… started…'' и отсутствие ''ERROR'' .
==== 💡 Нюансы и частые вопросы ====
^Ситуация^Решение^
|всё ещё показывает v16|Очистите кэш: hash -r или перезагрузите терминал. Проверьте, не стоит ли nvm/n выше в $PATH.|
|MeshCentral падает с EACCES|Добавьте флаг –unsafe-perm: sudo npm install -g meshcentral@latest –unsafe-perm|
|Сервис использует старый путь к Node|Откройте sudo systemctl edit meshcentral и проверьте ExecStart. Должно быть ExecStart=/usr/bin/node /opt/meshcentral/…|
|Нужно оставить v16 для других проектов|Используйте n или nvm, но для systemd-сервиса лучше сделать symlink: sudo ln -sf /usr/bin/node /usr/local/bin/node|
----
==== 🆘 Если что-то пошло не так ====
1. Остановите сервис: ''sudo systemctl stop meshcentral''\\
2. Восстановите бэкап: ''sudo mv /opt/meshcentral/meshcentral-data.backup /opt/meshcentral/meshcentral-data''\\
3. Откатите Node (если ставили через NodeSource):
sudo apt purge nodejs nodejs-doc
sudo rm /etc/apt/sources.list.d/nodesource.list
sudo apt update
sudo apt install nodejs npm # вернётся версия из репозитория ОС
4. Запустите MeshCentral снова и проверьте логи.
===== Источники =====
[[#top|Наверх ]]