NEWS
Updates sowie Löschen von Adaptern nicht möglich
-
Hallo zusammen,
ich wollte meinen hm-rpc-Adapter updaten von 1.15.16 auf 1.15.18. Allerdings verlangte dieses Update Nodejs v16. Bis dato lief bei mir v14, da mir dies damals hier empfohlen wurde (https://forum.iobroker.net/post/710982). Nun habe ich entsprechend der Anleitung von damals per
nano /etc/apt/sources.list.d/nodesource.list
wieder eine 16 aus der 14 gemacht und mittels
apt update apt install --reinstall nodejs
Auf v16.20.1 upgedatet. Seitdem funktioniert leider weder
iobroker update iobroker upgrade self
noch andere Adapterupdates
$ iobroker upgrade bshb@0.2.4 Update bshb from @0.2.1 to @0.2.4 NPM version: 8.19.4 Installing iobroker.bshb@0.2.4... (System call) host.iobroker Cannot install iobroker.bshb@0.2.4: 254 ERROR: Process exited with code 25
bzw.
root@iobroker:/opt/iobroker# iobroker -v 4.0.23 root@iobroker:/opt/iobroker# iobroker upgrade self Update js-controller from @4.0.23 to @4.0.24 Stopped Objects DB Stopped States DB NPM version: 8.19.4 Installing iobroker.js-controller@4.0.24... (System call) host.iobroker Cannot install iobroker.js-controller@4.0.24: 254
Ja, immer noch als root weil Docker. Oder geht das mittlerweile auch anders?
Auch die Deinstallation von Adaptern (hier direkt vom iobroker aus) schlägt fehl:
$ iobroker del bring Delete adapter "bring" host.iobroker Counted 1 instances of bring host.iobroker Counted 1 meta of bring host.iobroker Counted 1 adapter for bring host.iobroker Counted 1 channels of bring host.iobroker Counted 2 states of bring host.iobroker Counted 14 states of system.adapter.bring host.iobroker Counted 1 states (io.bring.*) from states host.iobroker Counted 15 states (system.adapter.bring.*) from states host.iobroker file vis/widgets/bring deleted host.iobroker file vis/widgets/bring.html deleted host.iobroker file bring.admin deleted host.iobroker object bring deleted host.iobroker object bring.admin deletedhost.iobroker Deleting 20 object(s). host.iobroker Deleting 16 state(s). Error deleting adapter bring from disk: host.iobroker: Cannot uninstall iobroker.bring: 254 You might have to delete it yourself! Process exited with code 0
Meine NPM-Version ist 8.19.4, die Node-Version 16.20.1 und iobroker läuft mit 4.0.23.
Nun habe ich gerade diesen Post hier gefunden (https://forum.iobroker.net/topic/35090/howto-nodejs-installation-und-upgrades-unter-debian) und lese nun erst die Warnung vor dem direkten Update von nodejs 14 auf 16.
cd /opt/iobroker npm ls | grep -E 'github|ERR'
liefert nun ausschließlich "npm ERR! extraneous"-Meldungen, auch nach
cd /opt/iobroker && npm prune
ioBroker läuft augenscheinlich so weit wie zuvor, jedoch eben ohne die Möglichkeit für Updates oder Deinstallationen.
Das Ganze läuft bei mir nach wie vor in Docker (
StretchBuster).Hätte ich bei v14 nodejs und v6 npm bleiben sollen?
Kann mir jemand den Ausweg aus dieser Misere weisen?
Schimpfen ist definitiv erlaubt.
-
@tjaden sagte in Updates sowie Löschen von Adaptern nicht möglich:
(Stretch)
nicht Dein ernst jetzt ?!
Du hast wohl noch nie upgedated ?!
Himmel
die Ausgabe von
iob diag
mal zeigen (wenn die bei Deinem toten System überhaupt funktioniert)
und bitte in CODETAGS
-
@djmarc75
Wir waren hier 2021 zu dem Schluss gekommen, dass eine höhere Version als Stretch nicht mit Docker verwendet werden kann. Seitdem hatte ich nur dort Updates gemacht.root@iobroker:/opt/iobroker# iob diag bash: iob: Kommando nicht gefunden root@iobroker:/opt/iobroker# iobroker diag mpact group management iobroker plugin iobroker [command] Commands: iobroker setup Setup ioBroker iobroker start [all|<adapter>.<instance>] Starts the js-controller or a specified adapter instance iobroker stop [<adapter>.<instance>] stops the js-controller or a specified adapter instance iobroker restart [<adapter>.<instance>] Restarts js-controller or a specified adapter instance [aliases: r] iobroker debug <adapter>[.<instance>] Starts a Node.js debugging session for the adapter instance iobroker info Shows the host info iobroker logs [<adapter>] Monitor log iobroker add <adapter> [desiredNumber] Add instance of adapter [aliases: a] iobroker install <adapter> Installs a specified adapter [aliases: i] iobroker rebuild [<module>] Rebuild all native modules or path iobroker url <url> [<name>] Install adapter from specified url, e.g. GitHub iobroker del <adapter> Remove adapter and all instances from this host [aliases: delete] iobroker del <adapter>.<instance> Remove adapter instance [aliases: delete] iobroker update [<repositoryUrl>] Update repository and list adapters iobroker upgrade Upgrade management iobroker upload [all|<adapter>] Upload management [aliases: u] iobroker object Object management [aliases: o] iobroker state State management [aliases: s] iobroker message <adapter>[.instance] <command> [<message>] Send message to adapter instance/s iobroker list <type> [<filter>] List all entries, like objects iobroker chmod <mode> <file> Change file rights iobroker chown <user> <group> <file> Change file ownership iobroker touch <file> Touch file iobroker rm <file> Remove file iobroker file File management iobroker user User commands iobroker group group management iobroker host <hostname> Set host to given hostname iobroker set <adapter>.<instance> Change settings of adapter config iobroker license <license.file or license.text> Update license by given file iobroker cert Certificate management iobroker clean <yes> Clears all objects and states iobroker backup Create backup iobroker restore <backup name or path> Restore a specified backup iobroker validate <backup name or path> Validate a specified backup iobroker status [all|<adapter>.<instance>] Status of ioBroker or adapter instance [aliases: isrun] iobroker repo [<name>] Show repo information iobroker uuid Show uuid of the installation [aliases: id] iobroker unsetup Reset license, installation secret and language iobroker fix Execute the installation fixer script, this updates your ioBroker installation iobroker multihost Multihost management iobroker compact co Plugin management iobroker version [<adapter>] Show version of js-controller or specified adapter [aliases: v] Options: --help Show help [boolean]
-
Na ich glaube das macht keinen Sinn mehr - Stretch ist doch seit Jahren abgekündigt. Inzwischen sind wir ja nun schon 3 Major-Versionen weiter - oder für Raspberry 2 Major Versionen. Dann läuft das auch noch unter Docker. - Also ich glaube Du wirst nicht um eine Neuinstallation kommen. Ich habe leider keine Erfahrung mit Docker - und kann Dir sonst nicht weiter helfen.
Dein Betriebssystem ist seit dem 18.07.2020 abgekündigt.
-
@mickym Moment... https://forum.iobroker.net/post/711409 ich schreibe da selbst dass ich auf Buster upgedatet hatte.
Dann stimmt der Verweis auf Stretch in /etc/apt/sources.list.d/nodesource.list nicht:
deb [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_16.x stretch main deb-src [signed-by=/usr/share/keyrings/nodesource.gpg] https://deb.nodesource.com/node_16.x stretch main
root@iobroker:/opt/iobroker# apt update OK:1 http://security.debian.org/debian-security buster/updates InRelease OK:2 http://deb.debian.org/debian buster InRelease OK:3 http://deb.debian.org/debian buster-updates InRelease OK:4 https://deb.nodesource.com/node_16.x stretch InRelease Paketlisten werden gelesen... Fertig Abhängigkeitsbaum wird aufgebaut. Statusinformationen werden eingelesen.... Fertig Alle Pakete sind aktuell.
Soll ich stretch durch buster ersetzen und versuchen, node neu zu installieren?
-
@tjaden Ja klar - dass muss immer matchen.
Du musst nodejs nicht neu installieren - sondern
apt update apt upgrade
langt, wenn Du die Quellen geändert hast.
-
@tjaden sagte in Updates sowie Löschen von Adaptern nicht möglich:
Seitdem hatte ich nur dort Updates gemacht.
Wo ist DORT ?
Quasi im realen Leben immer nur das Auto Deines Nachbarn betankt ?
"versuch" mal
iob stop iob fix iob start iob diag
-
root@iobroker:/opt/iobroker# apt update OK:1 http://security.debian.org/debian-security buster/updates InRelease OK:2 http://deb.debian.org/debian buster InRelease OK:3 http://deb.debian.org/debian buster-updates InRelease OK:4 https://deb.nodesource.com/node_16.x buster InRelease Paketlisten werden gelesen... Fertig Abhängigkeitsbaum wird aufgebaut. Statusinformationen werden eingelesen.... Fertig Alle Pakete sind aktuell. root@iobroker:/opt/iobroker# apt upgrade Paketlisten werden gelesen... Fertig Abhängigkeitsbaum wird aufgebaut. Statusinformationen werden eingelesen.... Fertig Paketaktualisierung (Upgrade) wird berechnet... Fertig 0 aktualisiert, 0 neu installiert, 0 zu entfernen und 0 nicht aktualisiert. root@iobroker:/opt/iobroker# iobroker upgrade self Update js-controller from @4.0.23 to @4.0.24 Stopped Objects DB Stopped States DB NPM version: 8.19.4 Installing iobroker.js-controller@4.0.24... (System call) host.iobroker Cannot install iobroker.js-controller@4.0.24: 254
root@iobroker:/opt/iobroker# iob stop bash: iob: Kommando nicht gefunden. root@iobroker:/opt/iobroker# iobroker stop iobroker controller daemon is not running root@iobroker:/opt/iobroker# iobroker fix iobroker fix Execute the installation fixer script, this updates your ioBroker installation Options: --help Show help [boolean] root@iobroker:/opt/iobroker# iobroker start Starting iobroker controller daemon... iobroker controller daemon started. PID: 12489 root@iobroker:/opt/iobroker# iobroker diag mpact group management iobroker plugin Plugin management iobroker version [<adapter>] Show version of js-controller or specified adapter [aliases: v] Options: --help Show help [boolean] iobroker [command] Commands: iobroker setup Setup ioBroker iobroker start [all|<adapter>.<instance>] Starts the js-controller or a specified adapter instance iobroker stop [<adapter>.<instance>] stops the js-controller or a specified adapter instance iobroker restart [<adapter>.<instance>] Restarts js-controller or a specified adapter instance [aliases: r] iobroker debug <adapter>[.<instance>] Starts a Node.js debugging session for the adapter instance iobroker info Shows the host info iobroker logs [<adapter>] Monitor log iobroker add <adapter> [desiredNumber] Add instance of adapter [aliases: a] iobroker install <adapter> Installs a specified adapter [aliases: i] iobroker rebuild [<module>] Rebuild all native modules or path iobroker url <url> [<name>] Install adapter from specified url, e.g. GitHub iobroker del <adapter> Remove adapter and all instances from this host [aliases: delete] iobroker del <adapter>.<instance> Remove adapter instance [aliases: delete] iobroker update [<repositoryUrl>] Update repository and list adapters iobroker upgrade Upgrade management iobroker upload [all|<adapter>] Upload management [aliases: u] iobroker object Object management [aliases: o] iobroker state State management [aliases: s] iobroker message <adapter>[.instance] <command> [<message>] Send message to adapter instance/s iobroker list <type> [<filter>] List all entries, like objects iobroker chmod <mode> <file> Change file rights iobroker chown <user> <group> <file> Change file ownership iobroker touch <file> Touch file iobroker rm <file> Remove file iobroker file File management iobroker user User commands iobroker group group management iobroker host <hostname> Set host to given hostname iobroker set <adapter>.<instance> Change settings of adapter config iobroker license <license.file or license.text> Update license by given file iobroker cert Certificate management iobroker clean <yes> Clears all objects and states iobroker backup Create backup iobroker restore <backup name or path> Restore a specified backup iobroker validate <backup name or path> Validate a specified backup iobroker status [all|<adapter>.<instance>] Status of ioBroker or adapter instance [aliases: isrun] iobroker repo [<name>] Show repo information iobroker uuid Show uuid of the installation [aliases: id] iobroker unsetup Reset license, installation secret and language iobroker fix Execute the installation fixer script, this updates your ioBroker installation iobroker multihost Multihost management iobroker compact coroot@iobroker:/opt/iobroker#
@djmarc75 said in Updates sowie Löschen von Adaptern nicht möglich:
Wo ist DORT ?
Innerhalb von Buster. Den Autotank-Vergleich verstehe ich nicht. Die Updates habe ich ja auf meinem System ausgeführt.
-
Ich weiss nicht ob das mit dem iob fix funktioniert. Dort werden ja Berechtigungen gesetzt und soweit ich weiß muss man im Docker unter root arbeiten? - Aber wie gesagt ich hab da keine Ahnung.
-
@mickym So wurde mir das zumindest 2021 vermittelt. Immer suboptimal als root unterwegs.
-
@tjaden sagte in Updates sowie Löschen von Adaptern nicht möglich:
@mickym So wurde mir das zumindest 2021 vermittelt. Immer suboptimal als root unterwegs.
Ich frag mich nur, ob der Vorteil einer Dockerinstallation ad absurdum geführt wird, wenn man das nicht updaten kann. Im Prinzip macht man eine Dockerinstallation doch wegen leichterer Portierbarkeit - nimmt dafür aber in Kauf, dass man das System quasi einfriert und so wie es ist - auf ein anderes System überträgt.
Wäre eine normale Installation nicht sinnvoller? Nur mal so meine Überlegung.
-
@mickym Docker läuft bei mir auf meinem Synology DS218+. Das NAS läuft ohnehin und da es die Möglichkeit mit Docker gab bzw. gibt war ich damals diesen Umweg gegangen, um nicht noch einen Pi zusätzlich laufen lassen zu müssen. Zum einen wegen des Stromverbrauchs, zum anderen weil in einem Pi verwendete SD-Karten wohl nicht zum Dauerbetrieb ausgelegt sind.
Bislang war es zwar umständlich aber es lief und ich konnte alle Adapter up-to-date halten. Bis eben Nodejs 16 verlangt wurde.
-
@tjaden Ist jetzt auf nodejs 16 upgedated?
-
@mickym Ja
root@iobroker:/opt/iobroker# node -v v16.20.1
Die Versionsnummer hat sich zwar nicht geändert, aber nachdem ich die /etc/apt/sources.list.d/nodesource.list geändert hatte (Stretch->Buster) wurde via --reinstall tatsächlich die Installation ausgeführt. Zuvor (vorgestern) hatte ich noch versucht, wieder auf 14 zu ändern und da schlug die Installation mittels --reinstall fehl.
-
@tjaden
Wenn ja und Du quasi ein Backup machen kannst, um auf Dein Stand wieder zurückzukehren - wenn gar nichts mehr geht, dann kannst Du versuchen das node_modules Verzeichnis komplett neu aufzubauen. Aber ggf. das Risko - das nichts mehr geht - deswegen ein Backup wie Du wieder auf den jetzigen Stand ggf. zurückkehren kann.Hier habe ich mal ein Vorgehen beschrieben.
https://forum.iobroker.net/post/845093
Im Prinzip machst Du den Neuaufbau so: https://forum.iobroker.net/post/831638
Du musst halt das sudo weglassen, da Du ja immer mit root arbeitest.
Wichtig ist dass Du die package.json (in /opt/iobroker) aufhebst (das ist Deine wichtigste Datei -also wegsichern und dann erst bereinigst) und bereinigst - damit Du das node_modules Verzeichnis neu aufbauen kannst.
Im Prinzip musst Du bei den dependencies alle Module rausschmeisst, die nicht mit iobroker anfangen: siehe hier: https://forum.iobroker.net/post/835824Aber das ist wirklich eine Radikalkur (hat aber bei mir funktioniert). Die sanftere Tour ist hier: https://forum.iobroker.net/topic/57337/fehler-25-217-oder-enotempty-bei-adapter-install-update
Nur wenn gar nichts mehr geht - ist das halt langwierig einzelne Verzeichnisse zu löschen, da fand ich den Neuaufbau mit einer sauberen package.json besser. Dannach lief bei mir alles wieder wie ein geschmiert.
-
@mickym vielen Dank. Ich werde mich damit später auseinandersetzen und dann Rückmeldung geben.
Das Backup habe ich mittels
iobroker backup host.iobroker 21276 states saved host.iobroker 25967 objects saved Backup created: /opt/iobroker/backups/2023_07_15-01_40_11_backupiobroker.tar.gz
schon mal durchgeführt. Jetzt muss ich nur noch herausfinden, wie ich auf die Datei zugreifen kann.
-
@tjaden Na es langt nicht das Backup vom iobroker. Kannst Du nicht ein komplettes Backup des gesamten Systems machen, dass Du wieder auf den jetzigen Zustand zugreifen kannst. Also quasi eine Image-Sicherung oder Komplettsicherung Deiner Synology?
Sonst arbeitest Du halt mit Netz ohne doppelten Boden und müsstest ggf. alles NEU machen. Auch wenn das bei mir immer gut geklappt hat, würde ich oder kann ich nicht die Verantwortung dafür übernehmen, wenn dann gar nichts mehr geht.
-
@mickym
dann exportiere ich den ganzen Container
Den Export werde ich dann erstmal versuchsweise in einem neuen Container hosten. Sollte der einwandfrei laufen, werde ich diesen neuen Container als Versuchskaninchen nutzen.
-
@tjaden sagte in Updates sowie Löschen von Adaptern nicht möglich:
@mickym
dann exportiere ich den ganzen Container
Das musst Du wissen - es geht nur darum, dass Du quasi auf den jetzigen Zustand wieder zurück kommst, wenn nichts mehr geht. Aber ich geh mal davon aus, dass das irgendwie geht, da es ja der Sinn von diesen Container ist, diese auch leicht auf andere Systeme übertragen zu können.
-
@tjaden sagte in Updates sowie Löschen von Adaptern nicht möglich:
Sollte der einwandfrei laufen, werde ich diesen neuen Container als Versuchskaninchen nutzen.
Sehr gute Idee.
- nur wenn Du auf irgendwelche USB Sticks am System zugreifst, wird das ein Problem geben - sonst aber sollte das funktionieren.