Frage zu node npm

  • Wenn du bisher keine Probleme mit deinen Plugins hast, solltest du alles so belassen. Frei nach dem Motto "Never change a running system". Einige User hier im Forum nutzen immer die aktuellste Node.js-Version (z.Zt. 13.6.0), andere, wie ich, die LTS-Version (z.Zt. 12.14.1). LTS steht für "Long Term Support", was grob ausgedrückt bedeutet, dass die Version noch immer weiter Entwickelt wird (Fehlerbehebungen, Sicherheitsrelevante Updates, etc.).


    Auf der Webseite von Node.js wird die Verwendung der LTS-Version empfohlen. Daran halte ich mich auch und fahre damit bisher sehr gut.

  • Ich kann mich da Gerrit nur anschließen. Seitdem ich immer nur der aktuellsten node lts folge habe ich keine Probleme mit node

  • Da ich gehört habe das es oft Probleme gibt mit node die höher sind

    Ich verwende wie die Kollegen vor mir auch nur die LTS-Version. Diese Versionen genießen eine lange Unterstützung. LTS-Versionen sind die Versionen node 8, node 10 und jetzt node 12.


    Du verwendest node 10. Damit sollte alles problemfrei laufen, bis eines Tages der Augenblick kommt, wo das nicht mehr der Fall ist. Das könnte beispielsweise dann passieren, wenn ein neues Plugin unbedingt eine neuere Version von Node verlangt oder das Update eines Plugins das erfordert. Du hast also im Augenblick keinen Drang, an der Node-Version etwas zu verändern und ich glaube, das wird noch eine ganze Weile so bleiben. Ich weiß natürlich nicht, wie lange, aber ich messe diese Weile in Jahren.


    Ein Update von node 10.16.0 auf beispielsweise node 10.16.3 sollte immer ein Klacks sein. Eine Update von node 10 auf node 12 kann dir (wird dir) Probleme bescheren. Das sind in den allermeisten Fällen keine unlösbaren Probleme, aber sie nerven. Das könnte dazu führen, dass du manche Plugins deinstallieren und dann neu installieren musst. Das beste Beispiel dafür ist das Plugin homebridge-config-ui-x, das immer eng an einer Node-Version hängt. Deins ist für node 10 optimiert und ein Update auf node 12 wird dann dazu führen, dass du auch homebridge-config-ui-x neu installieren musst.


    Falls du dich entschließt, von node 10 auf node 12 zu updaten, gibt es zwei Möglichkeiten:

    • Mach's einfach und behebe dann die Probleme, was meistens mit der Deinstallation und Neuinstallation von Plugins getan ist. Bis du die Probleme behoben hast, ist deine Homebridge sozusagen kaputt.
    • Nimm eine neue SD-Card und erstelle eine komplett neue Homebridge, installiere alle benötigten Plugins und ersetze die neue config.json durch die alte. Das kann, je nachdem wieviel schmückendes Beiwerk du noch so installiert hast, in Arbeit ausarten.

    Ich habe mich für mach's einfach entschieden. Für das Update von Node verwendet man am besten das Programm n. Das wird installiert mit


    sudo npm install -g --unsafe-perm n


    Mit sudo n lts kann man dann die letzte LTS-Version von Node installieren. Das Schöne an n ist, dass man zwischen den Node-Version wechseln kann. Das heißt, wenn du mit der Version 12 von Node an die Wand fährst, kannst du einfach zur Version 10 zurückkehren und alles ist so, als wäre nie etwas geschehen.


    Du kannst auch die neueste Version von node 10 LTS installieren. Das geht dann mit

    sudo n 10.16.3

    Hier würde ich keine Probleme erwarten.

  • Ich hab meine gerade geupdatet - aus Langeweile. Muss nicht sein, aber geht mit


    sudo npm install -g npm

  • NPM v6.13.6 mit Node.js v10.16.3 zu verwenden sollte aber kein Problem geben, oder?

  • Moin!

    Ich hab als Linux DAU wieder mal ein kleines Problem. Mein Broadlink Plugin funktioniert nicht mehr, da stand, ich soll den Pfad für NPM

    updaten. Das hab ich wie vom Plugin im LOG beschrieben gemacht (weiss leider den Befehl nicht mehr, es ging aber irgendwie darum, das Verzeichnis des Node zu ändern, damit hab ichs wohl verwachst), ging dann aber immer noch nicht.

    Dachte, ich update einfach mal NPM, da hatte ich mir vor Monaten mal eine Anleitung rauskopiert.


    Alledings hab ich jetzt beim letzten Schritt nur noch Fehler und verstehe sie nicht, kann mir da jemand helfen?



    1000 Dank,

    Jo

  • Jetzt hab ich noch ein bisschen weiter gesucht und wollte meine nom Version checken:


    pi@raspberrypi:~ $ npm -v

    -bash: npm: command not found


    Das ist nicht gut, oder?

  • Mach mal folgende Befehle:


    1. sudo systemctl stop homebridge

    2. chmod 777 /usr/local/lib/node_modules/

    3. sudo npm install -g npm

    4. sudo npm install -g --unsafe-perm homebridge-broadlink-rm


    Alle Befehle bitte aus dem Hauptverzeichnis ausführen. Dahin kommt man mit: cd

  • Danke schon, wieder mal, fürs Kümmern!!!!


    pi@raspberrypi:~ $ cd

    pi@raspberrypi:~ $ sudo systemctl stop homebridge

    pi@raspberrypi:~ $ chmod 777 /usr/local/lib/node_modules/

    pi@raspberrypi:~ $ sudo npm install -g npm

    sudo: npm: command not found

    pi@raspberrypi:~ $


    Jo

  • Ok, hab ich gemacht. Kommt aber wieder eine neue Fehlermeldung:


    pi@raspberrypi:~ $ npm -v

    6.13.4

    pi@raspberrypi:~ $ sudo systemctl stop homebridge

    pi@raspberrypi:~ $ chmod 777 /usr/local/lib/node_modules/

    pi@raspberrypi:~ $ sudo npm install -g npm

    npm ERR! code ELOOP

    npm ERR! syscall open

    npm ERR! path /usr/local/lib/node_modules/npm/node_modules/JSONStream/npm-shrinkwrap.json

    npm ERR! errno -40

    npm ERR! ELOOP: too many symbolic links encountered, open '/usr/local/lib/node_modules/npm/node_modules/JSONStream/npm-shrinkwrap.json'


    npm ERR! A complete log of this run can be found in:

    npm ERR! /root/.npm/_logs/2020-01-13T12_58_20_640Z-debug.log

    pi@raspberrypi:~ $

  • Ich habe die homebridge jetzt manuell gestartet, das hat scheinbar funktioniert.


    Alledings komme ich nicht auf die Startseite unter http://192.168.178.99:8080/
    Die IP Adresse vom Rasp stimmt.


    Fürchte, da hab ich viel zerschossen,. Hab noch ein Backup, aber das ist schon ein paar Monate alt...


    Edit:
    Hab das Backup jetzt eingespielt. Der Bradlink geht immer noch nicht, Frage dazu aber im passenden Forum