NEWS
Neuer Befehl: "iob nodejs-update"
-
Hallo,
nachdem Nodesource die Art und Weise Node.js zu installieren geändert hat haben wir nun Anpassungen vorgenommen.
Alle Installationen seit dem 11.10.2023 sollten wieder Problemlos funktionieren und Node-js auf die "Neue Art" installieren
Für Node.js Updates haben wir seit heute den neuen Befehl "iob nodejs-update" für die ioBroker CLI hinzugefügt. Um diesen zu bekommen muss einmalig "iob fix" ausgeführt werden. Dieses Skript funktioniert nur unter Linux und unterstützt Docker nicht (weil das der Ansatz ein anderer ist)!
Wichtig: Er ist primär für Node.js Major Versionsupdates gedacht. Mittels
iob nodejs-update xx
(mit xx eine Major Node.js version) kann zb auch eine andere als die empfohlene Node.js Version installiert werden.Das ganze ist das "Node JS Fix/Update" Skript von @Thomas-Braun (erstellt und getestet in https://forum.iobroker.net/topic/68035/iob-node-fix-skript), welches angepasst integriert wurde. Ich bedanke mich sehr bei Thomas für seine Unterstützung bei dem Node.js Thema!
Ingo
-
Wird dieser Fix auch in Docker Containern funktionieren?
Edit: kann es mir selber beantworten. Wird nicht unterstützt.
Nun dann meine Frage hierzu, ist es technisch nicht möglich das zu implementieren?
Klar weiss ich , dass es immer heisst, mach nen neuen Container.
Aber 3 Worte eintippen geht tatsächlich schneller, als nen Container aufsetzen. -
Auch wenn der Befehl jetzt auf
update
endet, ist das Skript ursprünglich zum fixen versaubeutelter Installationen gedacht gewesen, sowie zur Umstellung auf das neue node-repo.Anschließend kann node wieder mit der üblichen Systempflege über apt aktuell gehalten werden.
(zumindest innerhalb der major version) -
@haselchen sagte in Neuer Befehl: "iob nodejs-update":
Wird dieser Fix auch in Docker Containern funktionieren?
Genau Docker hat hier einen anderen Ansatz - und vor allem "der Standard ioBroker Docker" ist aif eine Node.js Major gepinnt, also bitte hier andere Wege nutzen!
-
@homoran habs obne klargestellt. Ist für Major Updates von Node-js da
-
Alles klärchen, danke für die Klarstellung.
-
Noch eine Ergänzung von mir:
Neben dem Docker mussten auch Installationen auf wsl (Windows Subsystem for Linux) ausgeschlossen werden. Zumindest für den Moment. Und das ganze funktioniert auch nur auf Debian-basierten Linuxen (Debian, Ubuntu, Raspberry OS usw.) Das dürfte aber die absolut überwiegende Mehrheit der Linux-Installationen abdecken. Sorry an @dp20eic mit seinem arch...
Edit: Und auf den 'Nebenhosts' in einem Multi-Host-Setup funktioniert das Kommando zwar auch technisch vollständig, hier kann aber nicht die installierte nodejs-Version mit der iobroker-Empfehlung abgeglichen werden, weil die vom Haupt-System kommt. Es wird hier immer wieder eine Installation der letzten stabilen Version vorgeschlagen (und durchgeführt, wenn man das bestätigt).
Ironischerweise geht die ursprünglich anvisierte Kernfunktion der Reparatur einer nodejs-Installation etwas unter.
@apollon77 Kann man nicht noch ein Alias-Kommando namens 'iob nodejs-fix' anlegen, das auf den gleichen Code verweist?
-
@thomas-braun Alternativer Vorschlag. Lässt sich das vielleicht in das Script für „iob fix“ integrieren? Somit würde beim Aufruf nicht nur die Installation von iobroker, sondern auch gleich eine möglicherweise verwurschtelte NodeJS-Installation, auf die der iobroker aufbaut, geradegezogen?
Dann würde man auch die erreichen, die gerade mal „iob fix“ irgendwo aus dem Forum kennen, aber nie schauen, welche Befehle mit iob sonst so möglich und möglicherweise auch nötig sind.Gruss, Jürgen
-
@wildbill sagte in Neuer Befehl: "iob nodejs-update":
Lässt sich das vielleicht in das Script für „iob fix“ integrieren?
Theoretisch schon. Aber als autarkes Kommando kann man das viel besser pflegen. Der iob fix ist zu weiten Teilen eine 'Kopie' vom iob installer und ich würde da ungern die Codebasis auseinander zerren.
-
@thomas-braun sagte in Neuer Befehl: "iob nodejs-update":
Ironischerweise geht die ursprünglich anvisierte Kernfunktion der Reparatur einer nodejs-Installation etwas unter.
-
@thomas-braun Ja, hört sich auch schlüssig an. Aber bedenkt, wen ihr erreichen wollt: eher die Einsteiger, die mal was verfummeln und nicht wissen, wie sie das geradeziehen können. Je mehr Befehle die lernen sollen, desto weniger werden die Befehle im Ernstfall kennen.
„iob fix“ hat sich anscheinend bei so gut wie Allen bereits eingebrannt…Gruss, Jürgen
-
@thomas-braun sagte in Neuer Befehl: "iob nodejs-update":
@wildbill sagte in Neuer Befehl: "iob nodejs-update":
Lässt sich das vielleicht in das Script für „iob fix“ integrieren?
Theoretisch schon. Aber als autarkes Kommando kann man das viel besser pflegen. Der iob fix ist zu weiten Teilen eine 'Kopie' vom iob installer und ich würde da ungern die Codebasis auseinander zerren.
Kann man die nicht in Serie ausführen? Also 2 Skripte mit && verknüft?
-
@ticaki sagte in Neuer Befehl: "iob nodejs-update":
Kann man die nicht in Serie ausführen? Also 2 Skripte mit && verknüft?
Man könnte die Logik zum Erkennen von schiefen Installationen in den 'iob fix' integrieren. Und beim 'anschlagen' auf 'iob nodejs-fix / nodejs-update' verweisen.
-
Öhm ... muss oder sollte ich jetzt irgendetwas an meiner bestehenden Installation tun oder prüfen?
-
@bananajoe sagte in Neuer Befehl: "iob nodejs-update":
muss
das nodejs repo umstellen, falls du es noch nicht hast
@bananajoe sagte in Neuer Befehl: "iob nodejs-update":
an meiner bestehenden Installation
von der außer dir niemand Einzelheiten kennt!
-
@bananajoe sagte in Neuer Befehl: "iob nodejs-update":
Öhm ... muss oder sollte ich jetzt irgendetwas an meiner bestehenden Installation tun oder prüfen?
Das sagt dir das Skript/Kommando, wenn du es auf dein System los lässt.
-
@thomas-braun sagte in Neuer Befehl: "iob nodejs-update":
@bananajoe sagte in Neuer Befehl: "iob nodejs-update":
Öhm ... muss oder sollte ich jetzt irgendetwas an meiner bestehenden Installation tun oder prüfen?
Das sagt dir das Skript/Kommando, wenn du es auf dein System los lässt.
Danke, das wollte ich wissen. Er will tatsächlich von v18.17.1 auf 18.18.1
@Homoran ich weis, keine Infos, ich wollte aber auch wissen ob man allgemein was tun sollte.
Ich habe nun gelernt das maniob nodejs-update
auch prophylaktisch anwenden kann. -
Bei der Skript-Ausführung kommt immer noch am Ende ein Hinweis, dass man das Skript eigentlich gar nicht braucht ("you can now ...")
Nothing to do - Your installation is using the correct paths. Nothing to do - Your version is the recommended one. You can now keep your whole system up-to-date using the usual 'sudo apt update && sudo apt full-upgrade' commands. Please DO NOT USE node version managers like 'nvm', 'n' and others in parallel. They will break your current installation! martin@iobroker-test-sicher:/etc/apt/sources.list.d$
Bei mir schien auch alles "on track" zu sein, ohne das Skript. Anheben von 16.xxx auf 18.0 musste ich noch per node-fix skript, und danach scheint alles automatisch hochgezogen worden zu sein ...
Kleiner Schönheitsfehler ist, dass man an Ende der Skript-Ausführung in dem Verzeichnis bleibt, in das das Skript gewechselt ist
EDIT:
Homoran schrieb es schon:
Anschließend kann node wieder mit der üblichen Systempflege über apt aktuell gehalten werden.
(zumindest innerhalb der major version) -
@bananajoe sagte in Neuer Befehl: "iob nodejs-update":
Er will tatsächlich von v18.17.1 auf 18.18.1
Das deutet darauf hin, dass du noch die alte nodesource.list verwendest, dort werden aber keine neuen Versionen mehr angeboten, das muss also umgestellt werden. Kann man von Hand machen oder jetzt per 'iob nodejs-update'.
-
@martinp sagte in Neuer Befehl: "iob nodejs-update":
Bei der Skript-Ausführung kommt immer noch am Ende ein Hinweis, dass man das Skript eigentlich gar nicht braucht ("you can now ...")
Das Skript wuppt dich einmal auf das richtige Gleis (nodejs 16, 18, 20 oder auch alle noch kommenden Versionszweige), im weiteren wird das System wie üblich auf Stand gehalten.
Es beschränkt sich hier auch auf das eine Paket 'nodejs', es ist kein Ersatz für die allgemeine Systempflege!