{{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|Наверх ]]