NEWS
Adapterupdates nicht möglich
-
@thomas-braun said in Adapterupdates nicht möglich:
@tjaden sagte in Adapterupdates nicht möglich:
root@iobroker
Murks. Kein root-login! Auch nicht im Docker.
Meinst du mit der Aussage, ich solle mich nicht als "root" einloggen? Ich logge mich da gar nicht ein, ich öffne lediglich das Terminal in Docker – man ist dort automatisch eingeloggt.
Aktualisierung für 112 Pakete verfügbar.
Halte das System auf Stand.
Das war mein Plan heute, daher hatte ich die Updates von Node, iobroker und NPM gemacht. Was sind die anderen 109 Pakete? Und wir haben ja festgestellt dass Updates im Zusammenhang mit iobroker eher kontraproduktiv sind, wenn Node 16 und NPM 8 zu neue Versionen sind.
debian stretch
Ist nicht mehr unterstützt. Installier was lebendes, buster oder bullseye.
Keine Ahnung was das ist oder wie ich etwas "lebendes" installiere.
node_16.x
und
/usr/local/bin/nodeInstallier node14, dann im richtigen Pfad.
Das Update von Node 10 zu 16 hat mich ca. zwei Stunden gekostet, da trotz erfolgreichem Update am Ende immer Version 10.6 dort stand. Ich musste die 10er-Version deinstallieren und dann habe ich offenbar die Ordner /usr/local/bin/node und /usr/bin/node verknüpft, seitdem zeigt er die Version 16 statt 10 an.Nachtrag: Der Befehl lautete
sudo ln -s /usr/bin/nodejs /usr/bin/node
Mein einziger Kontakt zu Debian/Linux ist das Terminal in Docker auf meinem Synology NAS, sonst habe ich damit nichts am Hut. Bislang hatten die Updates nie so funktioniert wie in den Anleitungen hier beschrieben.
Ich versuche nun noch mal das Downgrade zu Node 14, leider hatte ich Docker neu gestartet und daher sind die Kommandos weg, die ich vorher mühsam ergoogelt habe.
-
Was sind die anderen 109 Pakete?
Das sind offenbar veraltete Pakte vom Betriebssystem.
Und wir haben ja festgestellt dass Updates im Zusammenhang mit iobroker eher kontraproduktiv sind, wenn Node 16 und NPM 8 zu neue Versionen sind.
Nein, DU hast aktiv node16 installiert, entgegen der Empfehlung node14 zu verwenden. Das kann man durch entsprechende nodesource-Repos ja ganz wunderbar steuern.
Keine Ahnung was das ist oder wie ich etwas "lebendes" installiere.
Sind die Namen der zur Zeit 'lebendigen' Releases von Debian.
Das Update von Node 10 zu 16 hat mich ca. zwei Stunden gekostet
Das sind 1:58 zu lang. Man muss lediglich in einer Datei ein Zeichen ersetzen und dann upgraden. Dann passt es sofort. So mache ich das im HowTo aus meiner Signatur.
-
@tjaden sagte in Adapterupdates nicht möglich:
dann habe ich offenbar die Ordner /usr/local/bin/node und /usr/bin/node verknüpft, seitdem zeigt er die Version 16 statt 10 an.
Nachtrag: Der Befehl lautete
sudo ln -s /usr/bin/nodejs /usr/bin/nodeChaos... In /usr/local/bin darf node gar nicht liegen.
Der genannte ln -s Befehl verknüpft auch nichts aus /usr/local/bin. -
@tjaden sagte in Adapterupdates nicht möglich:
Bislang hatten die Updates nie so funktioniert wie in den Anleitungen hier beschrieben.
dann war bislang schon deine Intsalltion immer krumm.
Zieh die hier einmalig wirklich gerade, dann fluppt es auch bei dir.
Und lass sie dann auch gerade! -
@homoran Bislang war ich froh, dass es nach viel anfänglichem trial and error irgendwann lief – und dies nun seit 2018. Wie gesagt, jedes Update ist immer ein großer Aufwand da die Anleitungen hier nicht wirklich funktionieren. "iobroker stop" z. B. funktioniert nicht, ich nutze dafür "pkill io", was meiner Annahme nach dem Umstand geschuldet ist dass iobroker bei mir im Docker auf der Synology NAS läuft.
@thomas-braun said in Adapterupdates nicht möglich:
Chaos... In /usr/local/bin darf node gar nicht liegen.
Okay, wie ändere ich das?
Der genannte ln -s Befehl verknüpft auch nichts aus /usr/local/bin.
Seit dem "ln -s Befehl" bekomme ich aber sowohl bei "node -v" als auch bei "nodejs -v" die gleiche Version angezeigt.
Bislang habe ich mich beim iobroker ausschließlich mit JS und VIS beschäftigt – eben zwecks Automatisierung einiger Vorgänge im Haus. Das klappt auch mehr oder weniger gut (alle paar Monate muss ich einige Skripte neu starten), aktuell beschäftige ich mich wieder damit weil die Speak-Befehle von Alexa2 nicht mehr funktionieren. (Ich habe ein JS geschrieben, welches entsprechende Durchsagen im Haus macht bei gewissen E-Mails. Das lief auch bis vor kurzem noch einwandfrei)
Sehr gerne würde ich das System geradeziehen und bin offen für Vorschläge. Leider fehlt mir das Hintergrundwissen, wie ich das mache.
-
@tjaden sagte in Adapterupdates nicht möglich:
ich nutze dafür "pkill io", was meiner Annahme nach dem Umstand geschuldet ist dass iobroker bei mir im Docker auf der Synology NAS läuft.
Ja!
aber warum tust du dir einen Docker an, wenn du mit
@tjaden sagte in Adapterupdates nicht möglich:
Debian/Linux ... damit nichts am Hut.
hast?
Ein Container erfordert immer deutlich mehr Kenntnisse/Aufwand als eine Installation auf reinem Linux.
Und bei Linux brauchst du auch nicht wirklich mehr Kenntnisse als bei einem Windows-Rechner.
Da programmierst du ja auch nicht auf Betriebssystemebene -
@tjaden Mal in das bereits genannte HowTo zu nodeJS geschaut?
Da steht soweit eigentlich alles drin. -
@tjaden sagte in Adapterupdates nicht möglich:
Wie gesagt, jedes Update ist immer ein großer Aufwand da die Anleitungen hier nicht wirklich funktionieren.
Freche Behauptung.
-
@thomas-braun sagte in Adapterupdates nicht möglich:
@tjaden sagte in Adapterupdates nicht möglich:
Wie gesagt, jedes Update ist immer ein großer Aufwand da die Anleitungen hier nicht wirklich funktionieren.
Freche Behauptung.
Naja,
Wenn @Tjaden sich ungefiltert die Linux-Anleitungen ansieht.
Da muss er schon bei Docker-Anleitungen nachsehen.
Die klappen dann auch -
Nur der Richtigkeithalber:
Seit Node 12 funktioniert pkill io nicht mehr wie erwartet. Stattdessen pkill node oder pkill -u iobroker
-
@thomas-braun Pardon, das ist meine persönliche Erfahrung – kein Vorwurf. Was machst du beruflich, bist du angewandter Informatiker? Ich nicht. Ich würde gerne sehr individuell Hausautomation einrichten und habe mir selbst in verschiedenen Sprachen Programmieren beigebracht (JS, Java, C++, C#, PHP). Ansonsten bin ich Windows-Nutzer und mache selten einen Ausflug in andere Gefilde. Manchmal lässt sich das leider nicht umgehen, z. B. beim Pi oder eben beim iobroker. Das Problem ist dabei stets dass die Anleitungen zu diesen speziellen Anwendungsfällen nie davon ausgehen, dass jemand keine Ahnung von Linux hat. Da werden einem Befehle hingeklatscht die man dann brav blind abtippt und darauf hofft, dass das dann so passt. Das ist bei meiner Konstellation eben selten der Fall. Leider gehen die Autoren immer davon aus, dass man fast auf ihrem eigenen Wissensstand ist, wodurch einem der Einstieg nach Feierabend sehr schwer gemacht wird.
Und da ich nicht täglich damit arbeite, muss ich mir jedes Mal aufs Neue anlesen, wie das Ganze funktioniert. In der Regel schreibe ich mir dann selbst eine Anleitung, jedoch kommt immer mal was Neues dazu, wie nun z. B. das Downgrade von NPM 8 auf 6. Das habe ich übrigens immer noch nicht geschafft:
-
@haselchen Danke, dann nehme ich das so in meine Notizen zum Update vom js-controller auf:
iobroker update pkill node //oder pkill -u iobroker iobroker upgrade self iobroker plugin disable sentry iobroker start
-
@tjaden
Nein, ich bin auch kein Informatiker.Dann knall ich dir auch noch ein paar Befehle hin:
rm /usr/local/bin/node rm /usr/local/bin/npm
Dann per
nano /etc/apt/sources.list.d/nodesource.list
aus der 16 eine 14 machen, mit STRG-X abspeichern und nano verlassen.
apt update apt install --reinstall nodejs
-
@thomas-braun Vielen Dank. Das mit dem "rm" hatte ich auch grade hier gefunden: https://medium.com/@Quigley_Ja/specifying-npm-version-in-dockerfile-ee6e71a60945 und dank https://docs.docker.com/engine/reference/commandline/rm/ weiß ich nun dass das "remove" ist (wobei ich ja etwas wie "del" als Befehl erwarten würde)
"Nano" kennt mein Docker nicht:
root@iobroker:/opt/iobroker# nano /etc/apt/sources.list.d/nodesource.list bash: nano: Kommando nicht gefunden.
Und das ist wieder typisch. Nun bist du so nett mir hier zu helfen und ich renne gleich wieder in das nächste Problem
-
@tjaden sagte in Adapterupdates nicht möglich:
(wobei ich ja etwas wie "del" als Befehl erwarten würde)
Andere Baustelle. Linux ist nicht Windows.
Wenn nano nicht drauf ist, dann installier es nach:
apt install nano
Und bitte beschränke dich auf diesen Thread, ich kann nicht sehen was du da ggf. noch von gottweißwoher noch an Anleitungen anschleppst. Das gibt nur Chaos.
-
@thomas-braun Das mit dem node hätte ich mir wohl schenken können, denn die 14 stand bereits drin:
Okay, jetzt habe ich:
root@iobroker:/opt/iobroker# nodejs -v v14.18.1 root@iobroker:/opt/iobroker# node -v bash: /usr/local/bin/node: Datei oder Verzeichnis nicht gefunden root@iobroker:/opt/iobroker# npm -v bash: /usr/local/bin/npm: Datei oder Verzeichnis nicht gefunden
Nun weiß ich nicht, woher er weiß in welchem Ordner node und npm liegen müssen. Wenn ich dich recht verstanden habe, ist /local immer falsch. Gibt es da so etwas wie eine Registry, die den Anfragen nach der Versionsnummer sagt, in welchem Ordner sie nachschauen muss?
Oder sind node und npm schlicht nicht mehr installiert, dank rm?
Wo ist der Unterschied zwischen node und nodejs?
In deiner Anleitung steht:
"Finger weg und ignorieren! npm wird am besten nur wie üblich via apt (ist im Paket nodejs enthalten) aktuell gehalten. Dann passt die Version auch zum Rest."Wie funktioniert das?
Einfach apt install npm? Oder "npm6"?
-
Gibt es da so etwas wie eine Registry, die den Anfragen nach der Versionsnummer sagt, in welchem Ordner sie nachschauen muss?
Nein, es gibt keine Registry. Wenn ein Befehl abgesetzt wird sucht das System im sog. $PATH danach.
Das ist bei dir aber noch ein alter Eintrag, deswegen findet das System im Moment die richtige Version noch nicht. Einmal ausloggen und wieder einloggen.Wo ist der Unterschied zwischen node und nodejs?
Es gibt keinen. Das ist das gleiche bin-file. Wird nur aus historischen Gründen miteinander verlinkt. In ganz aktuellen Versionen wird nodejs auch gar nicht mehr angelegt.
Wie funktioniert das?
Das funktioniert jetzt wie alle anderen Updates auch.
Aber das hast du offenbar ja nie gemacht.Mit
apt update apt dist-upgrade
bringst du das ganze Konstrukt mit zwei Befehlen auf Stand.
Docker bitte danach einmal neustarten.Einfach apt install npm? Oder "npm6"?
Weder noch. npm wird nicht separat installiert, das ist Bestandteil des Paketes 'nodejs'.
-
@thomas-braun Danke für deine Geduld. Langsam wird ein Schuh draus.
Ich habe natürlich genau so wie für node immer nach einem Einzelupdate gesucht. APT ist dann also ein Paketmanager und via "apt update" mache ich quasi ein "fetch" und per "apt dist-upgrade" ein "pull" für die gesamte Distribution(?)
Warum ist node dann nicht auch darin enthalten? Das ist eben das Unpraktische an einem Terminal: Wenn man nach 1/2 Jahr nicht mehr weiß, was man gemacht hat (und das auch nicht wusste, während man es tat), "sieht" man das auch ohne entsprechende Befehle nicht mehr und tappst im Dunkeln herum. Ich hätte jetzt glatt gedacht (wenngleich ich das auch als sehr unpraktisch und daher merkwürdig empfunden hätte), dass ich alle Pakete einzeln updaten muss, genau so wie node.
Ergebnis nach Neustart :
root@iobroker:/opt/iobroker# npm -v 6.14.15 root@iobroker:/opt/iobroker# node -v v14.18.1
$ iobroker upgrade alexa2@3.11.2 Update alexa2 from @3.9.3 to @3.11.2 NPM version: 6.14.15 npm install iobroker.alexa2@3.11.2 --loglevel error --unsafe-perm --prefix "/opt/iobroker" (System call) Update "system.adapter.alexa2.0" upload [20] alexa2.admin /opt/iobroker/node_modules/iobroker.alexa2/admin/icons/raspi.png icons/raspi.png image/png upload [19] alexa2.admin /opt/iobroker/node_modules/iobroker.alexa2/admin/icons/multiroom.png icons/multiroom.png image/png upload [18] alexa2.admin /opt/iobroker/node_modules/iobroker.alexa2/admin/icons/microphone.png icons/microphone.png image/png upload [17] alexa2.admin /opt/iobroker/node_modules/iobroker.alexa2/admin/icons/firetv.png icons/firetv.png image/png upload [16] alexa2.admin /opt/iobroker/node_modules/iobroker.alexa2/admin/icons/firetab.png icons/firetab.png image/png upload [15] alexa2.admin /opt/iobroker/node_modules/iobroker.alexa2/admin/icons/echo_sub.png icons/echo_sub.png image/png upload [14] alexa2.admin /opt/iobroker/node_modules/iobroker.alexa2/admin/icons/echo_studio.png icons/echo_studio.png image/png upload [13] alexa2.admin /opt/iobroker/node_modules/iobroker.alexa2/admin/icons/echo_show5.png icons/echo_show5.png image/png upload [12] alexa2.admin /opt/iobroker/node_modules/iobroker.alexa2/admin/icons/echo_show2.png icons/echo_show2.png image/png upload [11] alexa2.admin /opt/iobroker/node_modules/iobroker.alexa2/admin/icons/echo_show.png icons/echo_show.png image/png upload [10] alexa2.admin /opt/iobroker/node_modules/iobroker.alexa2/admin/icons/echo_plus2.png icons/echo_plus2.png image/png upload [9] alexa2.admin /opt/iobroker/node_modules/iobroker.alexa2/admin/icons/echo_flex.png icons/echo_flex.png image/png upload [8] alexa2.admin /opt/iobroker/node_modules/iobroker.alexa2/admin/icons/echo_dot4.png icons/echo_dot4.png image/png upload [7] alexa2.admin /opt/iobroker/node_modules/iobroker.alexa2/admin/icons/echo_dot3.png icons/echo_dot3.png image/png upload [6] alexa2.admin /opt/iobroker/node_modules/iobroker.alexa2/admin/icons/echo_dot.png icons/echo_dot.png image/png upload [5] alexa2.admin /opt/iobroker/node_modules/iobroker.alexa2/admin/icons/echo4.png icons/echo4.png image/png upload [4] alexa2.admin /opt/iobroker/node_modules/iobroker.alexa2/admin/icons/echo2.png icons/echo2.png image/png upload [3] alexa2.admin /opt/iobroker/node_modules/iobroker.alexa2/admin/icons/echo.png icons/echo.png image/png upload [2] alexa2.admin /opt/iobroker/node_modules/iobroker.alexa2/admin/icons/echo-input.png icons/echo-input.png image/png upload [1] alexa2.admin /opt/iobroker/node_modules/iobroker.alexa2/admin/icons/apps.png icons/apps.png image/png upload [0] alexa2.admin /opt/iobroker/node_modules/iobroker.alexa2/admin/alexa.png alexa.png image/png Adapter "alexa2" updated Process exited with code 0
Also vielen lieben Dank vor allem für deine, als auch die Hilfe der anderen!
-
APT ist dann also ein Paketmanager und via "apt update" mache ich quasi ein "fetch" und per "apt dist-upgrade" ein "pull" für die gesamte Distribution(?)
Ja, 'apt update' schlägt die Tages-Karte auf und schaut was es Neues im Angebot gibt, 'apt dist-upgrade' gibt dann die Bestellung der neuen Köstlichkeiten auf.
Warum ist node dann nicht auch darin enthalten?
Was meinst du? Richtig konfiguriert ist node ja enthalten.
nodesource baut das Paket nodejs als 'rundumglücklich Angebot' zusammen, debian macht das mit den eigenen Paketen anders, da müsste man jedes node-Modul einzeln installieren und aktuell halten. Hat beides Vor- und Nachteile.Was sagt jetzt
which nodejs node npm && nodejs -v && node -v && npm -v && apt update && apt update && apt policy nodejs
-
@homoran Deine Nachricht hatte ich bisher wohl übersehen:
Warum tue ich mir Docker an? Weil ich damals nach einer Lösung für die Heimautomation suchte und diese gerne auf meinem NAS laufen lassen wollte. Ich sah dann dass es die Möglichkeit in Docker gibt und Docker läuft ja nativ auf dem NAS.
Wenn du so fragst kann man da sicher auch via VM Linux drauf laufen lassen. Aber da kommt man nicht drauf, wenn man normalerweise kein Linux nutzt. Ich ging damals naiv davon aus dass man iobroker ein mal installiert (in Docker) und dann alle Updates direkt über die Weboberfläche laufen. Ich könnte mir auch vorstellen, dass eine VM meine ohnehin recht beanspruchte DS218+ dann überbeansprucht, bzw. zumindest mehr belastet als der iobroker-Docker-Container.