NEWS
Update NodeJS best practise, supported 16 und 18!
-
Hi Community,
Jedes Jahr geht eine Node.js Version in den sogenannten EOL (End-Of-Live) Status, wodurch diese Version(en) nicht mehr weiterentwickelt werden.
Seht dies als ein Grundgerüst eures Systems, vergleichbar mit einem Windows XP was man nicht mehr benutzten sollteDa wir uns ständig darum bemühen euch die beste Stabilität, neuesten Features aber auch Sicherheit relevanten Updates zu garantieren, wird ab js-controller 5.x (release geplant 2tes Quartal 2023!) nur noch die folgenden Node.js Versionen unterstützt:
- Node.js 16.4.0 oder höher
- Node.js 18.x
Eine Übersicht der aktuellen (und geplanten) Versionen zu NodeJS findet ihr hier: https://github.com/nodejs/release#release-schedule
Wir empfehlen bezüglich NPM immer die Version zu benutzen, die mit der Node.js Version standardmäßig mitgeliefert, mit anderen Worten installiert, wird. Gesonderte npm pdates sind an sich nicht nötig.
Alle älteren Versionen werden nicht mehr unterstützt! Das heisst ein update auf js-controller 5.x wird nur möglich sein mit node 14.18.0 (oder höher!)
Wie aktualisiere ich meine Node.js Version ?
- Native Installation auf Linux, siehe dieses topic
- Docker: https://docs.buanet.de/de/iobroker-docker-image/docs/#wartung,
Vorsicht: Bei Docker sollte man die hier beschrieben schritte nicht ausführen sondern seinen container updaten! - Windows: https://forum.iobroker.net/post/963711
1 Erstens immer ein Backup !
Wir ein bekanntes Sprichwort unter IT-Nerds: Ohne backup ... kein Mitleid. Sorgt also bitte immer dafür, bei derartigen großen Änderungen an euren System, das ihr ein aktuelles Backup habt und dieses auch extern erreichbar ist und sich nicht nur auf dem System selber befindet !
Hierfür eignet sich am besten der Adapter Backit-up, dieser bietet euch die Möglichkeit den kompletten ioBroker zu sichern inklusive euren Skripten, Adapter etc.
2 Erstmal alle ioBroker Dienste anhalten, ab hier benötigt ihr SSH Zugang zu eurem System
Bevor wir loslegen, sollte alle ioBroker relevanten Prozesse erstmal angehalten werden. Das geht am einfachsten durch:
- Einloggen auf der console per ssh, tip: Schaut euch mal MobaXtherm an ein tool womit man SSH Verbindungen sehr leicht managen kann
- Danach sollte diese Befehle ausreichend sein ioBroker an zu halten:
iob stop
Sollte diese Befehl nicht klappen, probiert es bitte mit:
cd /opt/iobroker iobroker stop
3 Node version update mit iob upgrade-nodejs
iob nodejs-update
Sollte diese Befehl nicht klappen, probiert es bitte mit:
cd /opt/iobroker iobroker nodejs-update
Die Möglichkeit NodeJS mit diesem Kommando zu update wurde recent an unseren "fixer" script hinzugefügt.
Sollte der Befehl nicht vorhanden sein, bitte einmalig den fixer ausfuhreniob fix
4 Prüfung ob die richtige NodeJS version installiert ist
Zur Sicherheit überprüfen wir jetzt ob auch wirklich die richtige Version installiert wurde, das geht mit
type -P nodejs node npm npx && nodejs -v && node -v && npm -v && npx -v
und ergibt eine Ausgabe wie
/usr/bin/nodejs /usr/bin/node /usr/bin/npm /usr/bin/npx v18.15.0 v18.15.0 9.50.0 9.50.0
Wichtig dabei ist:
- nodejs liegt in /usr/bin
- node liegt in /usr/bin
- npm liegt in /usr/bin
- npx liegt in /usr/bin
- die Versionsnummern von nodejs und node sowie von npm und npx stimmen jeweils überein.
Falsch ist eine Installation in /usr/local/bin oder irgendwelchen anderen Verzeichnissen als /usr/bin
5 ioBroker wieder Starten
Herzlichen Glückwunsch, euer System ist jetzt auf den neuesten Major-Stand bezüglich Node.js und kan jederzeit mit
iob nodejs-update
ausgeführt werden.Jetzt nur noch ioBroker wieder starten:
iob start
Beim ersten Start kann es sein das einzelne Adapter erkannt werden, bei denen binäre Bestandteile neu erstellt werden müssen. Diese Adapter loggen ggf Fehler im Log und beenden sich beim ersten Start wieder. Dann werden diese versucht zu korrigieren, was einen Augenblick dauern kann. Falls ein Adapter auch nach 3 versuchen noch nicht wieder starte bitte im Log nach weiteren Anweisungen schauen und ggf im Diskussions-Thred melden.
Weitere Informationen sind auch im Vorgänger-Thread https://forum.iobroker.net/topic/44566/how-to-node-js-iobroker-richtig-updaten-2021-22-edition (Abschnitt "Erster ioBroker Neustart NACH Update") zu finden!
Troubleshooting
Da es fast unmöglich ist alle NodeJS relevanten update Fehler in einer FAQ fest zu legen, bitte diesen thread euer eventuelle Fragen beziehungsweise Troubleshooting verwenden. Ein oft verkommenes Thema ist das die jetzige Linux-Version zu alt ist, in diesem Fall ist es leider notwendig erst einmal euer System zu updaten.
Abhängig von der Performance ist ein update eventuell nicht effizient und würde eine neu Installation schneller verlaufen. Ein Backup/Restore eurer jetzigen Installation sollte mit Backit-up ausgeführt werden.