Обновление Node.js

js-контроллерNode.jsnpm
< 4.x12.x, 14.x, 16.x6.x
4.x12.x, 14.x, 16.x6.x, 7.x, 8.x
5.x16.x, 18.x, 20.x8.x, 9.x
6.x18.x, 20.x, 22.x8.x, 9.x, 10.x
7.x18.x, 20.x, 22.x, (24.x)8.x, 9.x, 10.x, 11.x

Зачем нужно это обновлять?

ioBroker не работает без Node.js; подробности можно найти в разделе «Архитектура» .
Для получения дополнительной информации о Node.js см. статью в Википедии о Node.js.

Как и многие другие технологии с открытым исходным кодом, Node.js быстро развивается.
Регулярно выпускаются обновления, повышающие стабильность и безопасность , а также добавляющие новые функции .

В настоящее время для установки ioBroker рекомендуется использовать Node.js 22.x. Эта версия находится в статусе активной долгосрочной поддержки (LTS) с октября 2024 года и будет поддерживаться до апреля 2027 года. Сообщество ioBroker официально рекомендовало эту версию, и команда `iob nodejs-update` автоматически устанавливает рекомендуемую версию.

Node.js 24.x также получил статус LTS с октября 2025 года и будет поддерживаться до апреля 2028 года. Он работает, но пока не является общепринятой рекомендацией: пока не будут протестированы все адаптеры, версия 22.x остается более безопасным вариантом.

При смене версии Node.js необходимо предварительно проверить и при необходимости исправить определенные предварительные условия.
Важно обращать внимание на пути, по которым расположена установка.

Поддержка Node.js 18.x прекращена в апреле 2025 года, и обновления безопасности больше не предоставляются. Рекомендуемой версией LTS является Node.js 22.x. Администраторам, использующим версии 8 и более поздние, в любом случае требуется Node.js 22.

Рекомендуемые методы обновления

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

iob nodejs-update

Процедура

1. Проверьте обстоятельства.

  • Версия и путь
  • Операционная система
  • js-контроллер
  • адаптер
Warum muss geprüft werden

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

  • Какая версия и, что наиболее важно, в какой директории находится установочный файл?
  • В среде Raspberry Pi по-прежнему широко используются старые системы на базе Debian Jessie или Debian Wheezy. Для них нет версии Node.js выше 10; возможно обновление операционной системы.
  • Проверьте, какая версия js-controller установлена (ее также можно увидеть на вкладке «Хост» в панели администратора). Для версий js-controller до 3.x, по возможности, сначала обновите js-controller. В идеале, обновите как минимум до версии 3.2!
    Например, на форуме есть сообщение на эту тему.
  • Во избежание несовместимостей или проблем после обновления следует проверить все адаптеры в системе и при необходимости обновить их.
    Лучше всего проверить файлы README адаптера через административную панель, в журнале изменений или на GitHub соответствующего адаптера, чтобы убедиться, что установленные версии адаптера явно поддерживают запланированную версию Node.js.

2. Создайте резервную копию.

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

3 - Обновить адаптер

Используемые в системе адаптеры должны быть совместимы с новой версией Node.js; возможно, потребуется их обновить.

4 - Остановить ioBroker

Остановить ioBroker можно с помощью собственной консольной команды или через систему управления службами.

5. Проверьте, не запущены ли еще какие-либо процессы.

Обычно это завершает все процессы. Однако, для большей безопасности, следует убедиться, что никакие процессы (адаптеры, резервные копии) больше не запущены. Также можно использовать такой инструмент, как «top», чтобы проверить, существуют ли какие-либо процессы, начинающиеся с «io.».

6 - Обновление Node.js

Следующий шаг — обновление Node.js до нужной новой версии. Однако процесс обновления может отличаться в зависимости от установленной операционной системы; см. инструкции.

Менеджер пакетов Node.js, или сокращенно Node Package Manager.npm Также автоматически обновляется.

7. Проверьте версию и пути.

После завершения обновления пути и установленные версии проверяются повторно.

8. Ускорьте работу ioBroker.

Поскольку установка Node.js, как упоминалось ранее, вносит некоторые изменения в систему, после этого необходимо запустить программу исправления ошибок ioBroker . Это, помимо прочего, восстанавливает необходимые для работы ioBroker настройки безопасности, а также проверяет и исправляет все разрешения.

9 - Запуск ioBroker

Некоторые модули JavaScript содержат компоненты, которые необходимо скомпилировать. Этот процесс происходит во время установки. Компиляция этих модулей привязывает их к версии Node.js. Поэтому после обновления эти компоненты необходимо перекомпилировать. Начиная с версии js-controller 3.0, предпринимается попытка обнаружить адаптеры, содержащие такие компоненты, и автоматически выполнить пересборку. Этот процесс может занять некоторое время, и затронутые адаптеры могут перезапускаться несколько раз. Это можно наблюдать в лог-файле. Проще всего это сделать в терминале, используя...iob logs --watch | uniq .

Automatische Rebuilds

Начиная с js-controller 3.0, адаптеры с нативными модулями автоматически обнаруживаются, и автоматически выполняется пересборка. Этот процесс можно отслеживать в логах, и он занимает несколько минут в зависимости от системы.

ioBroker автоматически пытается определить адаптеры, которые не запускаются из-за необходимости обновления. Это работает путем распознавания типичных сообщений об ошибках и попытки соответствующего обновления. Сначала выполняется пересборка затронутого адаптера. Если это не решает проблему, обновляются зависимости адаптера. Поэтому адаптер может перезапускаться несколько раз. Пожалуйста, будьте терпеливы! Принимайте меры только в том случае, если адаптер постоянно отображается красным цветом, а в журнале указано, что пересборка не удалась.

Manuelle Rebuilds

Если автоматическая пересборка не удалась, можно выполнить ручную пересборку всех адаптеров:

iobroker rebuild

Или же путем полной переустановки:

iobroker rebuild --install

Если автоматическая пересборка не удалась, её можно выполнить вручную; см. раздел «Устранение неполадок».

Sonderfälle (z.B. Serialport)

Некоторые адаптеры, например, адаптер последовательного порта, требуют специального обращения. Возможно, потребуется их переустановка вручную.

iob install serialport

К сожалению, существуют особые случаи, когда даже вышеперечисленные варианты не позволяют завершить перестройку; одним из таких случаев является Serialport.

Журнал событий может выглядеть примерно так (даже после всех попыток перестроения).

Существуют и другие сообщения об ошибках, но все они сводятся к одному и тому же. Самый простой вариант — пересобрать проект вручную в нужном каталоге. В этом случае найдите каталог, содержащий "bindings" — как указано выше, это /opt/iobroker/node_modules/serialport/node_modules/bindings... В более новых версиях это может быть что-то вроде /opt/iobroker/node_modules/serialport/node_modules/@serialport/bindings .

Затем перейдите в этот каталог иnpm install --omit=dev Выполните команду. Затем перезапустите адаптер.

Другой случай связан с адаптерами, имеющими модуль Canvas (например, echarts или Mihome-vacuum), где могут возникнуть проблемы.

Инструкции для Debian/Ubuntu

1. Проверьте версию и путь.

sudo ln -s /usr/bin/node /usr/bin/nodejs &> /dev/null
type -p nodejs node npm npx corepack && nodejs -v && node -v && npm -v && npx -v && corepack -v
  • выход
/usr/bin/nodejs
/usr/bin/node
/usr/bin/npm
/usr/bin/npx
/usr/bin/corepack
v22.x.x
v22.x.x
10.x.x
10.x.x
0.x.x

Важно: nodejs находится в /usr/bin, node — в /usr/bin, npm — в /usr/bin, npx — в /usr/bin, corepack — в /usr/bin, а номера версий nodejs и node, а также npm и npx, идентичны.

2 - Резервное копирование

iobroker backup

3 - Обновить адаптер

iob update

4 - Остановить ioBroker

iobroker stop

5. Проверьте процессы ioBroker.

ps aux | grep 'io\|PID'
  • и
ps aux | grep 'backup\|PID'
  • если процессы все еще продолжаются
sudo kill -9 [PROZESS-ID]

Или завершить все процессы ioBroker:

sudo pkill -f iobroker
sudo pkill -f "io\."

6 - Обновление Node.JS

Метод A: Собственная команда обновления ioBroker (рекомендуется для 2025 года)

# Direktes Update auf empfohlene Version (22.x)
iob nodejs-update

# Oder spezifische Version
iob nodejs-update 22

Метод B: Репозиторий NodeSource

  • Подробности о Node.js
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt install -y nodejs
  • Для других версий Node.js просто добавьте следующее в URL:22 Замените его другим номером версии.

По состоянию на октябрь 2025 года для ioBroker рекомендуется использовать версию 22.x Node.js!

!> Не следует использовать нечетные версии Node.js.

Поддержка Node.js 18.x прекращена (с апреля 2025 года), и его больше не следует использовать.

7. Проверьте версию/путь.

type -p nodejs node npm npx corepack && nodejs -v && node -v && npm -v && npx -v && corepack -v

8 - Запустите iobroker fixer

iobroker fix

9 - Запуск ioBroker

iobroker start

Инструкции для Windows

Обновление Node.js выполняется путем запуска установщика Windows.

Рекомендуемые шаги для Windows (2025):

  1. Загрузите последнюю версию установщика Node.js для Windows с сайта nodejs.org (версия 22.x LTS).
  2. Остановите ioBroker через диспетчер служб или командную строку.
  3. Запустите установщик (автоматическое обновление).
  4. Запустите ioBroker Fixer:iobroker fix
  5. Запустить ioBroker

Альтернатива для Windows: подсистема Windows для Linux (WSL2) с Ubuntu, а затем следуйте инструкциям для Linux.

Учебное пособие по Docker

  • Обновление Node.js обычно происходит путем обновления контейнера до новой версии образа Docker.
  • Подробные инструкции и дополнительная информация о контейнере iobroker доступны на сайте buanet .

Решение проблем

ручная пересборка

  • Информация по этому вопросу есть.
iobroker rebuild
  • если этого недостаточно
iobroker rebuild --install
  • Просто запустите его вручную в командной строке. В идеале это должно автоматизировать всё.

Эта команда выполняет полную переустановку всех модулей Node и должна решить большинство проблем после обновления Node.js.

Общие проблемы (2025)

"Nodejs установлен неправильно"

# Lösung: Fixer ausführen
iobroker fix

# Falls das nicht hilft, Node.js neu installieren
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt install -y nodejs

Ошибка NPM после обновления

# NPM Cache leeren
npm cache clean --force

# Node modules neu installieren
cd /opt/iobroker
rm -rf node_modules
npm install

После обновления адаптеры перестали работать.

# Einzelne Adapter neu installieren
iob install [ADAPTER-NAME]

# Oder alle Adapter rebuilden
iobroker rebuild --install

Проблемы с правами доступа

# Berechtigungen korrigieren (Linux)
sudo chown -R iobroker:iobroker /opt/iobroker
iobroker fix

Диагностические команды

# Umfassende Systemdiagnose
iob diag

# Node.js Installation prüfen
which node
which npm
ls -la $(which node)
node -v
npm -v

# ioBroker Status
iob status
iob list instances

Если версия js-controller ниже 4, ioBroker должен работать быстрее даже при обновлении Node.js в рамках основной версии.
В версии 4, с появлением js-controller, пересборка проекта будет выполняться полностью автоматически.