Node.js und npm Update auf Raspberry Pi mit Homebridge (so Klappt´s auf alle Fälle)

  • Ich rate mal ... du bist root an der HB - braucht es da einen sudo vor dem Befehl?


    Ich würde dir ja empfehlen mit npm n zu installieren und den da machen lassen. Blätter mal weiter zurück, steht da im Forum auch, wie das geht.

    //.ichael

    -----------------------------------


  • probier mal ein sudo apt-get update --allow-releaseinfo-change davor

  • Oder alternativ:


    sudo apt update

    sudo apt-get update


    So hab ich es zumindest bei mir gemacht.

  • Guten Mittag zusammen,


    ich habe eben auf meiner Homebridge Installation, welche auf einem Raspberry PI 3 läuft das Homebridge-Hue Plugin installiert.

    Ich meine das während der schnellen Installation angezeigt wurde, dass meine Installation ein Update braucht.


    Bei der Node.JS Version steht bei mir 14.17.4

    Und bei der Npm Version 7.20.3


    Wenn ich mir der Maus über die Versionen gehe, wird mir auch angezeigt, dass eine neue Version verfügbar ist, nur verstehe ich leider nicht so genau wie ich diese installiere.

    Nach meiner Recherche für Updates beim Rasperry PI bin ich auf die Befehle

    sudo apt-get update

    sudo apt-get upgrade

    gestoßen. Diese sollten ja das Betriebssystem und die Programme aktualisieren, soweit ich das verstanden habe?

    Diese habe ich auch ausgeführt. Leider hatte sich bei den Versionen nichts getan :(

    War es generell falsch diese auszuführen?

    Oder brauche ich noch zusätzlich andere befehle?


    Im Bereich Anleitungen und Tools habe ich mich ebenfalls umgesehen aber so wirklich 100% schlau bin ich nicht geworden wie ich am besten vorgehen sollte. Um wirklich alles aktuell zu halten, bzw. Frage ich mich was alles überhaupt aktuell gehalten werden muss?

    Bei der Node.JS Version sowie Npm Version sehe ich einen gewissen Stand, aber was muss man noch alles aktualisieren? Das Betriebssystem? Das Homebridge system ansich?

    Entschuldigt diese, vielleicht offentlichtlichen Fragen.

    Komme aus der Windows Welt und kenne da klassische Prorgamm updates über .exe oder auch Windows Update was sich ja um sämtliche dinge kümmert.


    Gibt es vielleicht ein Plugin, Tool oder App Fürs Smartphone um den PI bzw. Homebridge und Node.JS / Npm aktuell zu halten?


    Ich danke euch schonmal im vorraus für eure Hilfe :)

    Habt noch einen schönen Tag

  • Wie man Node.JS und NPM aktualisiert hat man dir bereits in deinem anderen Thema beantwortet: RE: Wartungs/Updatefunktion Homebridge und Hoobs

    damit hättest du die Anleitung hier also finden können.


    Gibt es vielleicht ein Plugin, Tool oder App Fürs Smartphone um den PI bzw. Homebridge und Node.JS / Npm aktuell zu halten?

    Auch für diese Frage hat man dir in deinem anderen Thema bereits eine Antwort geliefert:

    RE: Wartungs/Updatefunktion Homebridge und Hoobs

    Das sieht halt dann z.B. in der HomeManager für Homebridge App die dir empfohlen wurde so aus:


    Nichts gegen offensichtliche Fragen, aber wenn man sie doppelt und dreifach stellt weil man die dazu gegebenen Antworten nicht lesen will, dann wird es halt auch für alle anderen Beteiligten anstrengend ;)

  • Vielen Dank für die super schnelle und ausführliche Antwort :)


    Die App hatte ich mir angesehen aber Npm und Node.JS lassen sich ja darüber sooweit ich das gesehen habe nicht aktualisieren.

    Daher war die frage ob es etwas vollumfängliches gibt?

    Sind diese Befehle denn grundsätzlich gut zum aktualisieren oder eher unnötig?

    sudo apt-get update

    sudo apt-get upgrade


    Ich dachte halt das es vielleicht eine vollumfängliche App gibt für alles auf einen Blick zu sehen und updaten zu können. Oder auch eine Software für den Windows PC oder auch Plugin für Homebridge falls das überhaupt geht? Die Befehle für Node.JS und NPM schaue ich mir nochmal an.


    Viele Grüße

  • Sind diese Befehle denn grundsätzlich gut zum aktualisieren oder eher unnötig?

    sudo apt-get update

    sudo apt-get upgrade

    Diese Befehle aktualisieren die Paketlisten und updated die Pakete auf deinem Betriebssystem und hält dieses aktuell. Diese sollten regelmäßig ausgeführt werden.


    Du musst dein Betriebssystem, deine Programme wie Homebridge und die entsprechenden Homebridge-Plugins auf dem laufenden halten. Eine eierlegende Wollmilchsau für alles zusammen gibt es nicht. ;)


    Das ist wie auf deinem Windows-PC, da wird das Betriebssystem auch extra über Windows Update aktualisiert, das aktualisiert aber noch lange nicht deine installierten Programme wie z.B. Mozilla Firefox. Und dann gibt es noch Plugins/Erweiterungen wie Werbeblocker für den Firefox die auch aktualisiert werden müssen (wenn nicht bereits durch das Firefox Update erfolgt).


    Und so verhält es sich 1:1 auch mit dem Raspberry Pi. RaspberryOS (Betriebssystem) > Homebridge (Programm) > Homebridge-Plugins (Erweiterungen)

    Einmal editiert, zuletzt von Patrick_ ()

  • Guten Morgen,


    vielen Dank für die Erklärung, habe mich an der Anleitung des ersten Posts versucht, es scheint auch ganz gut geklappt zu haben.

    Homebridge habe ich mit sudo systemctl stop homebridge gestoppt. Denke das war so richtig, jedoch funktioniert der letzte befehl bei mir nicht

    Homebridge -I

    Das einzige was ich finden konnte ist ein ähnlicher Befehl

    Status service sudo systemctl status homebridge -l

    Machen die Befehle das gleiche?

    Haben jetzt status service sudo systemctl status homebridge -l ausgeführt, war das richtig?

    Viele Grüße

    PS:Kleine ergänzung bei den System Informationen sieht es jetzt gut aus, habe statt 14.17.4 jetzt die 16.10.0 und statt der 7.20.3 die Version 7.24.1 Scheitn geklappt zu haben :)


    Nochmal eine Kleine Ergänzung, trotz update zeigt mir das LOG


    The Plugin "homebridge-hue" requires Node.JS Version of ^14.17.6 wich does not statisfy the current Node .js version of V16.10.0 You may need to upgrade your intsallation of Node.JS

    Weiter unten steht warning: recommended version node 14.17.6 LTS


    Diese Infos an, kann ich das so belassen und das Plugin solte trotzdem problemlos funktionieren oder sollte man die andere Version aufspielen? Oder kann ich das ignorieren?


    Vielen Dank im Voraus :)

  • IdR wird 99% der Nutzer empfohlen sich die LTS (Long term Support) Version zu installieren, da dafür auch die meisten Plugin-Entwickler ihre Plugins drauf ausgerichtet haben. V16.10.0 ist die aktuellste Beta-/Testversion und hat möglicherweise noch gewisse Kinderkrankheiten und Fehleranfälligkeiten. Auch kann es möglich sein, dass nicht jedes Homebridge-Plugin damit zurecht kommt.


    Das einzige was ich finden konnte ist ein ähnlicher Befehl

    Status service sudo systemctl status homebridge -l

    Machen die Befehle das gleiche?

    sollte damit auch klappen. Wir haben auch eine Homebridge Befehlssammlung:

    Homebridge Befehlssammlung

  • Oh ok, kann man von meiner Version wieder zurück oder geht das jetzt nicht mehr?

    Kann ich die 13 Befehle nochmal genauso ausführen und statt der Versionsnummer den Befehl aus dem 2 Beitrag nehmen

    sudo n lts

    Geht das oder würde das zu einem fehler kommen weil ich ja eine neuere Version drauf hab und ein Downgrade nciht möglich ist oder klappt es kann aber Probleme verursachen, so das die Homebridge lieber nei installiert werden sollte statt eines Downgrades zu machen?

    Was wäre best practice?


    Genau die Befehlssammlung hatte ich gesehen, da war auch der Befehl

    Status service sudo systemctl status homebridge -l

    her, allerdings habe ich dort nicht den Befehl

    Homebridge -I

    gefunden, deshalb die Frage ob diese das gleiche machen :)

  • Du kannst problemlos eine ältere Version über die neuere drüberinstallieren.

  • Homebridge -I

    Das geht schon mal deswegen nicht, weil homebridge klein geschrieben werden müsste. Und es geht dann wahrscheinlich sowieso schief, weil der Befehl so nicht vollständig ist, denn er müsste eigentlich homebridge -I -U /var/homebridge oder homebridge -I -U /var/lib/homebridge oder homebridge -I -U das_Verzeichnis_in_dem_sich_config.json_befindet heißen. Und dann geht's möglicherweise immer noch schief, weil vielleicht irgendwelche Dateirechte nicht richtig gesetzt sind.


    Dazu kommt noch, dass das -I ein großes Iiiiih! ist (so wie in "Iiiih! Igittigit") und nicht etwa ein kleines ell (wie in Lokomotivhilfsheizerswitwe).


    Das muss man alles beachten! Immer. Und damit man sich den Blödsinn nicht merken muss, wird der in eine Start-Stop-Konfiguration geschrieben und mit dieser wird dann gestartet. Dazu unten mehr.

    Homebridge habe ich mit sudo systemctl stop homebridge gestoppt

    Dann wird wohl sudo systemctl start homebridge das Gegenteil bewirken. Oder beides in einem: sudo systemctl restart homebridge.

    Status service sudo systemctl status homebridge -l

    Sieht spannend aus. Und ich hab das noch nie gesehen (also zumindest nicht in den letzten 30 Jahren). Den Befehl Status oder status gibt es bei mir überhaupt nicht.

    Haben jetzt status service sudo systemctl status homebridge -l ausgeführt, war das richtig?

    Das hat mit Sicherheit diese Meldung erzeugt:

    -bash: status: command not found

    also würde ich mal sagen: nein, das war nicht richtig.

    sollte damit auch klappen.

    Nö.


    Das -I muss an den Startbefehl für die Homebridge angehängt werden. Und das tut man, indem man /etc/default/homebridge bearbeitet (abhängig von der Installation):


    sudo nano /etc/default/homebridge


    Und da gibt es eine Zeile, die man verändern kann:

    HOMEBRIDGE_OPTS=-I -Q -C -U "/var/homebridge"


    Diese Zeile sieht bei dir möglicherweise anders aus, aber dort wird das -I hingeschrieben, am besten gleich hinter das Gleichheitszeichen. Der Vollständigkeit halber: -Q blendet den QR-Code im Logfile aus, -C macht das Log farbig und -U zeigt auf das Verzeichnis, in dem sich config.json befindet.


    Die Zeile kann auch so aussehen:

    HOMEBRIDGE_OPTS=-I


    Abspeichern, Homebridge neu starten.

  • Hmm die Befehle hab ich einmal aus der Anleitung zum Update im Ersten Post

    Node.js und npm Update auf Raspberry Pi mit Homebridge (so Klappt´s auf alle Fälle)


    und aus der Befehlssammlung

    Homebridge Befehlssammlung


    Ist die Anleitung im ersten Post also nicht mehr aktuell?

    Vielen Dank dir für deine ausführliche Antwort, auch wenn ich ehrlicherweise sehr wenig von den Befehlen verstehe :(


    Bin deshalb Schritt für schritt durch die Anleitung auf der Ersten Seite gegangen, was wohl auch nicht 100% am besten war weil ich jetzt die Version 16 habe und nicht die 14 LTS :(

  • was wohl auch nicht 100% am besten war weil ich jetzt die Version 16 habe und nicht die 14 LTS

    Lass es so. Ab Ende Oktober ist die 16 die neue LTS-Version.


    Kannst du kurz sagen, wie du deine Homebridge installiert hast (und wann)?

  • Ah ok das heißt ende Oktober wenn ich das ganze update prozedre wiederhohle , gehe ich wieder die 13 Schritte durch:


    Um das Update erfolgreich durchzuführen habe ich hier ein kurzes Walk Through

    zusammengestellt mit allen Terminalbefehlen Schritt für Schritt


    1. Verbinden mit dem Raspberry Pi über SSH Terminal
    2. Homebridge stoppen
    3. sudo npm cache clean -f
    4. sudo npm install -g n
    5. sudo n 9.3.0 (Versionsnummern zu finden auf https://nodejs.org/en/download/releases/)
    6. sudo npm install -g --unsafe-perm homebridge@latest
    7. sudo npm i npm@latest -g
    8. sudo reboot
    9. Neu verbinden mit dem Raspberry Pi über SSH Terminal
    10. cd /usr/local/lib/node_modules/
    11. sudo npm rebuild --unsafe-perm. (Achtung geht sehr lange)
    12. cd
    13. Homebridge -I



    Ersetze aber bei Nummer 5 das Commandlet durch "sudo n lts" so wie in deinem Beitrag (auch auf Seite 1) geschrieben? Verstehe ich das so richtig :) ?

    Nummer 13 lasse ich dann einfach weg, das hatte ja nicht funktioniert.


    Homebridge habe ich vor 10 Tagen als Iso für den Raspberry PI geladen und auf SD Karte geflasht und eingerichtet.

    1. Verbinden mit dem Raspberry Pi über SSH Terminal
    2. Homebridge stoppen mit sudo systemctl stop homebridge
    3. sudo npm cache clean -f
    4. sudo npm install -g n
    5. sudo n 9.3.0 (Versionsnummern zu finden auf https://nodejs.org/en/download/releases/)
      sudo n lts
    6. sudo npm install -g --unsafe-perm homebridge@latest
    7. sudo npm i npm@latest -g
    8. sudo reboot
    9. Neu verbinden mit dem Raspberry Pi über SSH Terminal
    10. cd /usr/local/lib/node_modules/
    11. sudo npm rebuild --unsafe-perm. Nein, du hast schon Version 16. Nicht notwendig.
    12. cd


    13. Homebridge -I Nein. Nein. Nein. Nein. Nein. Nein. Nicht heute und auch nicht morgen und auch nicht im Oktober. Um es ganz präzise auszudrücken: NIEMALS. Nicht mal dann, wenn das Klima kippt.

      Wenn man die Homebridge mit sudo systemctl stop homebridge stoppt, dann startet man sie mit sudo systemctl start homebridge.

    Kannst du kurz sagen, wie du deine Homebridge installiert hast (und wann)?

    Welche Anleitung hast du da benutzt und wann war das?

  • Es gab über die Jahre verschiedene Anleitungen zur Installation von Homebridge. Das offizielle Homebridge Image, dass du verwendet hast gibt es so erst seit Anfang/Mitte 2020. Heißt auch, dass sämtliche Anleitungen wie diese hier aus 2019 zum updaten von Node.JS und NPM immer mit etwas Vorsicht zu genießen sind.


    Auch die "alte" Smartapfel-Anleitung zur Installation von Homebridge basierte noch nicht auf dem offiziellen Homebridge Image. Das hat man dann erst nachträglich an das offizielle Image angepasst.


    Für deine Homebridge-Installation gibt es z.B. inzwischen auch einen anderen Weg Node.js zu updaten, siehe:

    https://github.com/homebridge/…ian-image#updating-nodejs