Wichtig: Wechsel der Node LTS-Version von 12 auf 14

  • Am 27. Oktober wird sich die Node LTS-Version von Version 12 auf Version 14 verändern. Was das bedeutet, will ich im Folgenden kurz darlegen.


    Was ist Node?

    Node ist eine Basis-Software, um Javascript-Programme auf einem Computer laufen zu lassen. Da die Homebridge und ihre Plugins zum größten Teil in Javascript geschrieben sind, wird Node immer benötigt, damit überhaupt etwas geht.


    Was bedeutet Node LTS?

    LTS ist die Abkürzung für Long Time Support und bezeichnet Software-Versionen, die der Hersteller über eine längere Zeit pflegt. Das ist sozusagen die Haupt-Version von Node. Hier wird garantiert, dass alle kritischen Fehler über 30 Monate repariert werden. Der wesentliche Punkt dabei ist, dass es keine funktionalen Änderungen mehr gibt, egal was dem Hersteller einfällt, an Node noch zu schrauben. Das heißt, dass Plugins, die beispielsweise für Node 12.0 geschrieben wurden, auch unter Node 12.19.5 laufen. Der wichtige Teil der Versionsnummer ist hier die 12.


    Was sind funktionale Änderungen?

    Node stellt Funktionen (oder Methoden) bereit, die Programmierer benötigen, damit ihr Programmcode funktioniert. Ein Hersteller kann sich entscheiden, derartige Funktionen umzugestalten, so dass sie anders verwendet werden müssen, oder er kann sich sogar entscheiden, bestimmte Funktionen nicht weiter anzubieten. Plugins, die derartige Funktionen verwenden, würden dann im besten Fall abstürzen und im schlimmsten Fall falsche Ergebnisse liefern. Tatsächlich kommt aber kein Software-Hersteller auf die Idee, das einfach so zu machen. Solche Änderungen werden sehr lange vorher angekündigt, so dass jeder Programmierer die Möglichkeit hat, seinen Programmcode an die neuen Gegebenheiten anzupassen.


    Hier kann man sehen, dass die Node-Entwickler schon lange vorher wissen, wann sie eine Version auf den Markt werfen: https://nodejs.org/en/about/releases/

    Da steht beispielsweise, dass die älteste Version, die sich noch in irgendeiner Pflege befinden, die Version 10 ist, dass die Version 12 die aktive LTS-Version ist, dass in ein paar Tagen die Version 14 die aktive LTS-Version werden wird und somit die 12er-Version ablöst.


    Was sagt die Versionsnummer?

    Zunächst mal: die Node-Versionen, die wir benutzen sollten, haben alle gerade Nummern (8, 10, 12, 14...). Die ungraden Versionen befinden sich in der Entwicklung, sind im Test, verändern sich möglicherweise stark oder sind nicht vollständig. Gar nicht weiter beachten.


    Die Node-Programmierer verwenden wie viele andere Programmierer ein System für ihre Versionsnummern. Die Versionsnummer besteht da aus drei Teilen, die durch einen Punkt getrennt sind. Die Teile haben Namen, die MAJOR, MINOR und PATCH heißen. Am Beispiel von Node 12.18.4 bedeutet das:

    • 12: MAJOR. In der Version 12 hat es manche Änderungen gegeben, die nicht kompatibel zur Version 10 sind. Damit das jeder kapiert, hat sich die erste Nummer geändert (von 10 auf 12).
    • 18: MINOR. In der Version 12.18 hat es Änderungen gegeben, die aber nicht inkompatibel sind zu allen anderen 12er-Versionen. Möglicherweise wurde etwas hinzugefügt, aber auf keinen Fall wurde etwas entfernt oder in seiner Funktion verändert. Plugins für Version 12 laufen weiterhin ohne Einschränkungen.
    • 4: PATCH. In der Version 12.18.3 hat es einen Programmierfehler gegeben, der ausgebügelt wurde.

    Viele Plugin-Programmierer machen es mit ihren Versionsnummern übrigens ganz genauso.


    Maaaann, komm jetzt mal langsam auf den Punkt, sschuste

    Am 21. Oktober wird sich die LTS-Version von 12.x.x auf 14.x.x verändern. Alle diejenigen, die bislang ihr Node auf der neuesten LTS-Version gehalten haben, werden nun eine neue Version bekommen, die sich im MAJOR verändert hat. Eine Änderung im MAJOR kann dazu führen, dass manche Plugins nicht mehr laufen werden. Das betrifft möglicherweise Plugins, die schon lange nicht mehr von ihren Programmierern gepflegt wurden. Dass muss nicht zwingend so sein, aber es kann sein.


    Was nun? Profis nehmen nun einen neuen Raspi, duplizieren darauf ihre laufende Homebridge, unterziehen sie einem Update auf die neue MAJOR-Versionen und sehen, was geht und was nicht. Typen wie ich knallen die neue Version einfach drauf und nehmen eine Unterbrechung ihrer Homebridge in Kauf. Etwas Ängstlichere machen lieber gar kein Update und begründen das mit der alten Wahrheit "never change a running system". Jede dieser Vorgehensweisen hat etwas für sich, wobei die erste und die letzte von äußerster Vorsicht zeugen und meine Holzhammer-Methode eher nicht.


    Wie vorgehen?

    Es gibt hier im Forum einige, die bereits seit einer geraumen Zeit die Version 14 einsetzen. Man hört wenig Drama aus dieser Richtung, eigentlich gar nichts, aber vielleicht gibt es ja schlechte Erfahrungen mit dem einen oder anderen Plugin. Wär schön, wenn wir da mal was hören würden.


    Wichtig: niemand muss jetzt updaten. Damit kann man sich erstmal schön Zeit lassen und dem Forum lauschen.


    Wer doch updaten will, sollte dazu immer die Software n verwenden. Die wird installiert mit:

    sudo npm install -g --unsafe-perm n


    Wenn man nach der Installation sudo n aufruft, wird einem die aktuell installierte Version angezeigt. Hat man n bereits verwendet, um Node-Versionen upzudaten, dann werden einem alle damit installieren Versionen angezeigt und man kann eine Installation auf einfache Art und Weise wieder rückgängig machen.


    Node updaten geht dann so:

    sudo n lts (installiert die neueste Node LTS-Version, meine Empfehlung) oder

    sudo n latest (installiert die neueste Node-Version überhaupt - ich rate den meisten davon ab und ich mach das auch nicht) oder

    sudo n 12.18.4 (installiert Node 12.18.4)


    Ich werde in der nächsten Woche die neue 14er-Version mit sudo n lts installieren und dann berichten, wie das vor sich ging.

    Einmal editiert, zuletzt von sschuste ()

  • Vielen Dank für die ausführliche Erklärung 👍

  • sschuste Das Update installiert sich aber nicht automatisch, oder ??

    Ich bin ja eher der Angsthase, der auf die Hilfe von euch allen hier im Forum angewiesen bin, da ich leider diese ganze Thematik nicht verstehe.

    Ich bin froh dass mir z-smoker die HB eingerichtet und programmiert hat, vor jedem Update habe ich immer Schweißperlen auf der Stirn

    Aktuell habe ich v12.18.4 drauf


    Gruß Volker

  • Das Update installiert sich aber nicht automatisch, oder ??

    Doch ab sofort wird alles automatisch installiert und an das Verteidigungsministerium, sowohl in China und den USA gemeldet.

    Der Selbstzerstörungsmechanismus wird auch aktiviert, 24 Stunden Countdown. 8o

    Anschließend hast Du dann nur noch Windows 3.11 auf dem Pi!:D:D


    Mal im Ernst, hat sich bei Dir auf dem Pi schon mal was von selbst und auch noch automatisch installiert?

    Das will ich auch, sofort !!!!!


  • Mal im Ernst, hat sich bei Dir auf dem Pi schon mal was von selbst und auch noch automatisch installiert?

    Das will ich auch, sofort !!!!!

    Ja ok, stimmt auch wieder, war ne blöde Frage

  • Das Update installiert sich aber nicht automatisch, oder ??

    Nein.

  • Hallo Leute, es werden bei Aktualisierungen zweier Plugins angezeigt, einmal eins meiner TP WLAN Schalter und dann Homebridge Config UI X .

    Das Update der Schalter habe ich schon fertig, doch das Homebridge Config UI X Update traue ich mich nicht.... was mache ich nun ???

  • Update ausführen und schauen ob es geht. Wenn nicht kannst ja immer noch auf die alte Plugin-Version zurück steigen.

    Nachdem hier aber noch keiner geschrieben hat, dass er mit Node14 und einem Plugin ein Problem hat, würde ich mir keine Sorgen machen.

  • Update ausführen und schauen ob es geht. Wenn nicht kannst ja immer noch auf die alte Plugin-Version zurück steigen.

    Gut, wie du sicher in dem oberen Beitrag gelesen hast, bin nicht so der Linux Nerd, ich bin froh, dass meine HB läuft und zittere bei jedem Update.

    Wie muss ich das Update nun angehen und was muss im Fall des Falles machen, wenn es nicht läuft ???? Und ... meine HB läuft nicht auf einem Raspberry

  • Soweit ich den Entwickler von Config-ui-x und einen weiteren Entwickler verstanden habe wird ausdrücklich vor dem Einsazt von Node V14 warnt!

    Trotz heutigem Updates von Config-ui-x!!

    Zu lesen im Changelog!!


  • Zu lesen im Changelog!!

    Danke für den Hinweis. Hab mir das gerade mal durchgelesen.

    Zitat
    • System: Initial support for Node.js v15 and npm v7, however please stay on the current LTS version of Node.js (currently v12.19.0) (#904)

    Wenn ich mir den Issue auf github anschaue, geht es dort um ein Upgrade von Node14 auf Node15, welches die HB gecrasht hat.

    Vielleicht findet sich noch jemand, der den Umstieg schon gemacht hat, wenn nicht mach ich heute Nacht mal das Versuchsobjekt.

  • Trotz heutigem Updates von Config-ui-x!!

    kann man denn dieses Update machen ?

  • Ja unter den oben genannten Voraussetzungen


  • Also bis jetzt konnte ich noch nicht auf Node14 wechseln.

    Code
    sudo npm install -g --unsafe-perm n
    sudo n lts

    zeigt mir immer noch die v12.19.0 an.

    Nach bisschen googeln kam ich auf ein Datum 27.10.2020 als "active LTS Start"

  • vor dem Einsazt von Node V14

    Vor dem Einsatz von Node 15. Ist eine "ungrade" Version und sollte hier besser niemanden interessieren.

  • Also bis jetzt konnte ich noch nicht auf Node14 wechseln.
    Code
    sudo npm install -g --unsafe-perm n
    sudo n lts

    zeigt mir immer noch die v12.19.0 an.

    Ich hab noch mal hier: https://nodejs.org/en/about/releases/ nachgesehen und dort steht als Datum der 27. Oktober. Ich schrieb vom 21., was ich gerade in meinem Originalposting verändert habe. Entweder haben die was verschoben (unwahrscheinlich) oder ich hatte was an den Augen (wahrscheinlich). Also warten wir noch ein bisschen.

  • Bei mir spielt leider das Plugin homebridge-openhab2-complete nicht mit.

    Musste wieder zurück auf 12.19.0

    Code
     sudo n 12.19.0

    war ein kurzer Ausflug aber HB läuft wieder.

  • Bei mir geht alles, aber ich musste homebridge-broadlink-rm deinstallieren und danach wieder neu installieren.

  • Plugin deinstalliert, Node upgedatet, Plugin installiert. Die HB musste dann 2x starten aber es läuft. Danke für den Tipp sschuste

  • Bei mir hat das Update auf Node 14.15.0 perfekt funktioniert. Musste nach dem Update allerdings auch die HB 2x neu starten.


    Hier noch ein bisschen was zur Systemumgebung:

    Homebridge 1.1.6 (Installation damals gem. Anleitung hier aus dem Forum) auf einem Pi4B

    NPM 6.14.8

    Plugins aus meiner Signatur funktionieren alle weiterhin