NEWS
[How-to] Node.js ioBroker richtig updaten-2021/22 Edition
-
@thomas-braun Beim ersten Befehl gab es eine Fehlermeldung, weil der Symkink bereits existiert. Beim zweiten Befehl kam es zu folgender Ausgabe:
pi@raspberrypi:~ $ uname -m && which nodejs node npm && nodejs -v && node -v && npm -v && whoami && pwd && sudo apt update &> /dev/null && sudo apt update && apt policy nodejs armv7l /usr/bin/nodejs /usr/bin/node /usr/bin/npm v16.15.1 v16.15.1 8.11.0 pi /home/pi OK:1 http://phoscon.de/apt/deconz buster InRelease OK:2 http://raspbian.raspberrypi.org/raspbian buster InRelease OK:3 http://archive.raspberrypi.org/debian buster InRelease OK:4 https://deb.nodesource.com/node_16.x buster InRelease OK:5 https://repos.influxdata.com/debian buster InRelease OK:6 https://packages.grafana.com/oss/deb stable InRelease Paketlisten werden gelesen... Fertig Abhängigkeitsbaum wird aufgebaut. Statusinformationen werden eingelesen.... Fertig Aktualisierung für 1 Paket verfügbar. Führen Sie »apt list --upgradable« aus, um es anzuzeigen. nodejs: Installiert: 16.15.1-deb-1nodesource1 Installationskandidat: 16.15.1-deb-1nodesource1 Versionstabelle: *** 16.15.1-deb-1nodesource1 500 500 https://deb.nodesource.com/node_16.x buster/main armhf Packages 100 /var/lib/dpkg/status 10.24.0~dfsg-1~deb10u1 500 500 http://raspbian.raspberrypi.org/raspbian buster/main armhf Packages pi@raspberrypi:~ $
Die zur Verfügung stehende Aktualisierung bezieht sich auf Grafana, welches ich aber z.Zt. nicht nutze.
pi@raspberrypi:~ $ apt list --upgradable Auflistung... Fertig grafana/stable 9.0.1 armhf [aktualisierbar von: 9.0.0] N: Es gibt 156 zusätzliche Versionen. Bitte verwenden Sie die Option »-a«, um sie anzuzeigen. pi@raspberrypi:~ $
Siehst du irgend etwas aufälliges?
-
@ralfth sagte in [How-to] Node.js ioBroker richtig updaten-2021/22 Edition:
Siehst du irgend etwas aufälliges?
Nein, sieht soweit gut aus.
-
@thomas-braun sagte in [How-to] Node.js ioBroker richtig updaten-2021/22 Edition:
Zu einzelnen Adaptern habe ich so gut wie keine gesehen.
Nur zum generellen Switch auf npm8, vornehmlich durch Adapter-Versionen aus github verursacht.Wer weiß, was ich mir da in den vergangenen Jahren als Dilletant so alles eingefangen habe.
Besser, ich setze einen neuen LXC auf und schaue, was das System nach einem Einspielen des Backup leistet.
Danke!
-
@thomas-braun Aber eine Erklärung für das Verhalten hast du auch nicht!?
Ist ja alles gut jetzt. Ich meine mich zu erinnern, das ich bei dem Versuch auf NodeJS 14 upzudaten auch schon ähnliche Probleme hatte. Damals hatte ich mich allerdings nicht weiter darum gekümmert, weil ich mir sagte "das System läuft, was solls." Aber irgendwann muss man halt ein Update durchführen.Also bleibt abschließend festzuhalten:
Falls das Update nicht durchgeführt wird einfach mal sudo apt autoremove durchführen und das Update erneut starten mit sudo apt-get install -y nodejs.Das brachte bei mir die Lösung, keine Ahnung warum.
-
@ralfth sagte in [How-to] Node.js ioBroker richtig updaten-2021/22 Edition:
Aber eine Erklärung für das Verhalten hast du auch nicht!?
Nein, ohne die Meldung beim Upgrade nicht.
-
@thomas-braun sagte in [How-to] Node.js ioBroker richtig updaten-2021/22 Edition:
Für insgesamt 4400 Installationen (7,3%) , die Stand heute auf nodeJS16 laufen finde ich die Zahl der Hilferufe nicht ungewöhnlich hoch.
Ein weiteres Argument dafür, dass offenbar mein System nach braunscher Einschätzung "verkrümmt" ist.
-
@meister-mopper wie ich soeben woanders schrieb
https://forum.iobroker.net/post/817514 -
@thomas-braun Hab dir alles gepostet, was im Terminal ausgegeben wurde. Es läuft und das ist jetzt wichtig.
Auf alle Fälle herzlichen Dank für deine Unterstützung und deine Geduld. -
Ohne jetzt alles gelesen zu haben, wurde eigentlich schon mal "n" erwähnt?
https://www.npmjs.com/package/n
Man kann damit simpel installieren, deinstallieren, zwischen den Versionen switchen...
n 16.15.1
und paar Sekunden drauf ist nodejs korrekt installiert
Macht es ziemlich anwenderfreundlich. -
@sborg sagte in [How-to] Node.js ioBroker richtig updaten-2021/22 Edition:
Macht es ziemlich anwenderfreundlich.
Macht es für alle anderen nur schwerer da durchzusteigen.
n dürfte das über die alternatives (oder nach einem ähnlichen Muster) symlinken.
Kann man machen, wenn man mehrere npm-Versionen im System haben möchte (oder für Testzwecke muss) und die auch bändigen kann.
Für 99% der Installationen ist das aber nicht sinnvoll. Da empfiehlt sich eine saubere Installation über das nodesource-Paket. -
@chaot said in [How-to] Node.js ioBroker richtig updaten-2021/22 Edition:
Meine /opt/iobroker/package-lock.json war auch von 2019.
Adapter-Updates hatten seit Update auf Node 16 ewig gedauert. Das Entfernen der package-lock.json (hab sie umbenannt) hat geholfen.
-
@sborg Wo und wie installiert der denn? Wenn wie nvm unter dem User dann ist das Problematisch weil ja alles unter iobroker läuft und schon hat man den schönsten Mischmasch Also aufpassen
-
@apollon77 Der macht nichts spezielles und installiert es unter /usr/local/[bin, include, lib, und share]
Damit hat auch der User iobroker "normale" Rechte drauf.
Der einzige Unterschied ist, dass zusätzlich unter /usr/local/n/versions/node/... noch die gecachten Versionen liegen, damit man eben switchen kann.Ich nutze es mittlerweile seit ca. 3 Jahren und habe seitdem keine Probleme mehr (auch mir ist da vorher mal der ein oder andere faux pas unterlaufen ). 14 Mio downloads sprechen da IMO auch für sich.
Allerdings muss trotzdem eines klar sein (für Mitleser): eine vermurkste Installation biegt es auch nicht mehr gerade. Sorry, aber eine korrekte Erstinstallation ist ein muss. -
Update heute vollzogen Zuerst beim Slave und danach den Master. Beides völlig problemlos. Einzig der Mihome-Adapter hat danach das fehlende Canvas bemängelt, aber das war gleich nachinstalliert.
Das „Austauschen“ der Github-Versionen gegen die aus stable oder latest hat also mögliche Probleme im Vorfeld ausgemerzt.Gruss, Jürgen
-
@wildbill sagte in [How-to] Node.js ioBroker richtig updaten-2021/22 Edition:
Das „Austauschen“ der Github-Versionen gegen die aus stable oder latest hat also mögliche Probleme im Vorfeld ausgemerzt.
Das so gelesen ... ich schreib das mal oben mit rein in den ersten Post
-
@sborg aber da haben wir wieder /local/, das gibt Ärger bei nodesource
-
@homoran sagte in [How-to] Node.js ioBroker richtig updaten-2021/22 Edition:
aber da haben wir wieder /local/, das gibt Ärger bei nodesource
Die beißen sich eigentlich nicht, /usr/local liegt früher im $PATH.
Ich würde aber dennoch zu einer einfachen Installation via des distributionseigenen Paketmanagers raten. Zumal der ja auch vom iobroker bereits für die Installation verwendet wird.Für 'Power-User' / Developer (z. B. zum testen von verschiedenen Versionen) ist das natürlich ein guter Weg. Ich bezweifle allerdings, das damit der Mehrheit der Anwender geholfen ist.
-
So, Wasserstandsmeldung:
- Ubuntu 20.04 LTS
- ioBroker mit allen Adaptern auf dem Beta-Channel
- Jupp ich arbeite als root
- Upgrade von node 14 auf 16
Ich habe mir 3 puTTY-Sitzungen aufgemacht
- Sitzung als
root
mit einem
tail -n 1000 -f /opt/iobroker/log/iobroker.current.log
- Sitzung als Benutzer
iobroker
Dazu alsroot
angemeldet und zumiobroker
gewechselt:
sudo -u iobroker /usr/bin/bash cd /opt/iobroker
- Sitzung als
root
für die Befehle
Und so habe ich es gemacht:
als iobroker
iobroker backup iobroker stop
als root
curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash - apt install -y nodejs node -v npm -v cd /opt/iobroker iobroker fix
Ich fand das das Upgrade verdächtig schnell ging - aber ok.
als iobroker
iobroker start
Und dann warten ...
Fast alle Adapter sind gleich wieder gestartet, nur diezigbee
Adapter sind gecrasht und er hat den rebuild angestoßen (das kannte ich schon vom Upgrade von 12 auf 14).
WARTEN !!! nach etwa 5 Minuten war damit fertig und Log konnte ich sehen wie diese diesmal erfolgreich gestartet sind.daswetter
ist dann gecrasht, er hat aber keinen rebuild angestoßen. Der Adapter wird nur alle 30 Minuten per cron angestoßen.
Für den habe ich dann einen rebuild gestartet:als iobroker
iobroker rebuild daswetter
Da warte ich jetzt auf das nächste Ergebnis.Der Adapter hat dann beim nächsten Durchlauf ohne Fehler funktioniert.Einzig im MQTT-Adapter hatte ich wieder Datenpunkte mit falschen Typ (warum auch immer der Adapter die wieder geändert hat), gibt ne dicke Fehlermeldung im Log, funktioniert aber trotzdem und er passt den Typ an.
-
@bananajoe sagte in [How-to] Node.js ioBroker richtig updaten-2021/22 Edition:
Jupp ich arbeite als root
SCHNAPPATMUNG
Wenn es richtig gemacht wird (wie hier) auch kein Problem. Die sieht man leider aber ansonsten so gut wie nie.
-
@thomas-braun sagte in [How-to] Node.js ioBroker richtig updaten-2021/22 Edition:
@bananajoe sagte in [How-to] Node.js ioBroker richtig updaten-2021/22 Edition:
Jupp ich arbeite als root
SCHNAPPATMUNG
Wenn es richtig gemacht wird (wie hier) auch kein Problem. Die sieht man leider aber ansonsten so gut wie nie.
Das hättest Du nicht schreiben dürfen. Ab sofort ist dann jeder, der als root unterwegs ist der Meinung, er würde es richtig machen. Der Thomas hat es ja geschrieben…
Gruss, Jürgen