NEWS
[How-to] Node.js ioBroker richtig updaten-2021/22 Edition
-
@apollon77 Ja, das habe ich in einem separaten Tread gemacht.
Admin Reload hat übrigens nichts gebracht. -
Ich habe soeben meine Slaves auf v16 hochgezogen.
Hier funktioniert der rpi2 Adapter seitdem nicht mehr.
rpi2.4 2022-06-17 22:17:16.058 error cannot use GPIO: TypeError: Cannot read properties of null (reading 'setMode') rpi2.4 2022-06-17 22:17:15.984 error Cannot initialize GPIO: Error: The module '/opt/iobroker/node_modules/epoll/build/Release/epoll.node'was compiled against a different Node.js version usingNODE_MODULE_VERSION 83. This version of Node.js requiresNODE_MODULE_VERSION 93. Please try re-compiling or re-installingthe module (for instance, using `npm rebuild` or `npm install`). rpi2.4 2022-06-17 22:17:13.658 info starting. Version 1.2.0 in /opt/iobroker/node_modules/iobroker.rpi2, node: v16.15.1, js-controller: 4.0.23
Ein "iobroker rebuild rpi2.4 --install" brachte keine beserung.
Was kann ich noch versuchen`? -
cd /opt/iobroker npm ls epoll
-
iobroker.inst@2.0.3 /opt/iobroker └─┬ iobroker.rpi2@1.2.0 └─┬ rpi-gpio@2.1.7 └── epoll@2.0.10
-
@e-i-k-e sagte in [How-to] Node.js ioBroker richtig updaten-2021/22 Edition:
/opt/iobroker/node_modules/epoll
cd /opt/iobroker/node_modules/epoll
und dannnpm install
-
@apollon77
Habe ein update auf 1.3.2 und anschließend ein Downgrade auf 1.2.0 durchgeführt.
Jetzt läuft es! -
Ich hatte schon mal Anfang auf April auf NodeJS 16 und NPM 8 aktualisiert, hatte dann aber bei Aktualisierung diverser Adapter (z. Bsp. Backitup) dann Probleme mit Error 25. Ist das behoben, wenn ich jetzt erneut aktualisiere?
-
Error 25 sagt gar nichts konkretes aus.
Schau dir den npm tree an, vermutlich sind da auch Fehler drin. -
@thomas-braun sagte in [How-to] Node.js ioBroker richtig updaten-2021/22 Edition:
Error 25 sagt gar nichts konkretes aus.
Schau dir den npm tree an, vermutlich sind da auch Fehler drin.Ich habe noch unter nodejs 14 den Baum angeschaut und bis auf die deduped Einträge ist der Baum fehlerfrei. Kann aber sein, dass ich den mal neu aufgebaut habe.
-
npm ls | grep ERR
sagt?
Und unter node16 kommen welche Meldungen, wenn Adapter direkt per npm installiert werden? Die Meldungen dann sind ausführlicher als die vom iobroker. -
@thomas-braun Ich hab noch nicht upgedated, ich wollte mich nur im Vorfeld vergewissern.
npm ls | grep ERR
keine Ausgabe - also keine Fehler. Wie gesagt ich machs ja - aber ich wollte halt vermeiden, dass ich dann diese blöden Error 25 Fehler bekomme, wenn ich das wieder hochziehe.
-
@mickym sagte in [How-to] Node.js ioBroker richtig updaten-2021/22 Edition:
@thomas-braun Ich hab noch nicht upgedated, ich wollte mich nur im Vorfeld vergewissern.
npm ls | grep ERR
keine Ausgabe - also keine Fehler. Wie gesagt ich machs ja - aber ich wollte halt vermeiden, dass ich dann diese blöden Error 25 Fehler bekomme, wenn ich das wieder hochziehe.
Das sind aber Ungereimtheiten in deinem Setup, da kann der iobroker nichts machen. Da musst du selber ran und schauen wo es konkret klemmt.
-
@thomas-braun sagte in [How-to] Node.js ioBroker richtig updaten-2021/22 Edition:
Das sind aber Ungereimtheiten in deinem Setup, da kann der iobroker nichts machen. Da musst du selber ran und schauen wo es konkret klemmt.
Verstehe ich zwar im Moment nicht, woran Du das fest machst - ich habe derzeit mit nodejs 14 überhaupt keine Probleme - aber ich werde mal updaten und dann schauen, ob ich Probleme bekomme. Du sagst also, es müsste mit nodejs 16 und npm 8 fehlerfrei laufen. Also werde ich berichten, falls es Probleme gibt.
-
@mickym sagte in [How-to] Node.js ioBroker richtig updaten-2021/22 Edition:
Verstehe ich zwar im Moment nicht, woran Du das fest machst - ich habe derzeit mit nodejs 14 überhaupt keine Probleme -
Bei npm8 wird ein neues Format für die packages-files eingeführt. Es kann sein, das die Konvertierung bei 'krummer' Ausgangslage nicht richtig durchgeführt werden kann.
Du sagst also, es müsste mit nodejs 16 und npm 8 fehlerfrei laufen.
Bei mir war es jedenfalls unproblematisch. Aber ich hatte auch unter npm6 keinerlei Meldungen im tree.
-
@thomas-braun Ok ich habe auch keine Fehler - nur halt haufenweise die deduped Meldungen:
│ ├── graceful-fs@4.2.2 deduped │ ├── pify@2.3.0 deduped │ └── pinkie-promise@2.0.1 deduped ├── require-directory@2.1.1 ├── require-main-filename@1.0.1 ├── set-blocking@2.0.0 ├─┬ string-width@1.0.2 │ ├── code-point-at@1.1.0 │ ├─┬ is-fullwidth-code-point@1.0.0 │ │ └── number-is-nan@1.0.1 │ └── strip-ansi@3.0.1 deduped ├── which-module@1.0.0 ├── y18n@3.2.1 └─┬ yargs-parser@5.0.0 └── camelcase@3.0.0 deduped pi@MWHome:/opt/iobroker $ npm ls | grep ERR pi@MWHome:/opt/iobroker $
Ich mach mal das Update und falls wieder ein Fehler auftaucht - melde ich mich ggf. nochmals.
-
@thomas-braun So nach dem Update auf nodejs 16 und npm8 bekomme ich nun Fehler
npm ls | grep ERR npm ERR! code ELSPROBLEMS npm ERR! invalid: iobroker.mercedesme@0.0.56 /opt/iobroker/node_modules/iobroker.mercedesme npm ERR! invalid: iobroker.mqtt@4.0.3 /opt/iobroker/node_modules/iobroker.mqtt npm ERR! invalid: iobroker.node-red@3.3.1 /opt/iobroker/node_modules/iobroker.node-red npm ERR! A complete log of this run can be found in: npm ERR! /home/iobroker/.npm/_logs/2022-06-18T02_09_06_218Z-debug-0.log
Das sind komischerweise genau die Adapter, die ich über npm installiert hatte.
iobroker.inst@2.0.3 /opt/iobroker ├── colors@1.4.0 ├── fs-extra@7.0.1 ├── iobroker.admin@5.4.9 ├── iobroker.alias-manager@1.2.6 ├── iobroker.backitup@2.4.9 ├── iobroker.dwd@2.8.3 ├── iobroker.flot@1.11.0 ├── iobroker.info@1.9.19 ├── iobroker.javascript@5.7.0 ├── iobroker.js-controller@4.0.23 ├── iobroker.mercedesme@0.0.56 invalid: "github:TA2k/ioBroker.mercedesme" from the root project ├── iobroker.mqtt@4.0.5 invalid: "github:ioBroker/ioBroker.mqtt" from the root project ├── iobroker.node-red@3.3.1 invalid: "github:ioBroker/ioBroker.node-red" from the root project ├── iobroker.pi-hole@1.3.4 ├── iobroker.ping@1.5.3 ├── iobroker.simple-api@2.6.5 ├── iobroker.socketio@4.2.0 ├── iobroker.sourceanalytix@0.4.12-1 ├── iobroker.sql@1.16.2 ├── iobroker.tr-064@4.2.16 ├── iobroker.vis-hqwidgets@1.2.0 ├── iobroker.vis-materialdesign@0.5.9 ├── iobroker.vis@1.4.15 ├── iobroker.web@4.3.0 ├── iobroker.yahka@0.13.1 ├── iobroker@2.0.3 ├── semver@5.7.1 └── yargs@7.1.2
Versuche die über NPM über die Adminoberfläche neu zu installieren.
.... dauert aber Ewigkeiten. -
Ich sag ja, da ist in der Vergangenheit etwas falsch/anders gemacht worden bei den Adaptern die da jetzt aus der Kurve fliegen.
-
@thomas-braun sagte in [How-to] Node.js ioBroker richtig updaten-2021/22 Edition:
Ich sag ja, da ist in der Vergangenheit etwas falsch/anders gemacht worden bei den Adaptern die da jetzt aus der Kurve fliegen.
Also das ist dann aber ein iobroker Problem. Wie gesagt, dass sind alles Adapter, die ich über die Admin Oberfläche und npm installiert habe. Ich habe gerade mal den mercedesme-Adapter nochmals so nachinstalliert. Ist zwar ohne Fehler durchgelaufen, allerdings hat npm ls den gleichen Fehler gebracht wie unten gepostet.
iobroker.inst@2.0.3 /opt/iobroker ├── iobroker.mercedesme@0.0.56 invalid: "github:TA2k/ioBroker.mercedesme" from the root project ├── iobroker.mqtt@4.0.5 invalid: "github:ioBroker/ioBroker.mqtt" from the root project ├── iobroker.node-red@3.3.1 invalid: "github:ioBroker/ioBroker.node-red" from the root project
mqtt ist auch durchgelaufen - aber 15 Minuten - das ging früher wesentlich schneller, aber ohne Fehler:
$ iobroker url iobroker.mqtt --host MWHome install iobroker.mqtt NPM version: 8.11.0 Installing iobroker.mqtt... (System call) removed 673 packages, and changed 1191 packages in 15m101 packages are looking for funding run `npm fund` for details upload [13] mqtt.admin /opt/iobroker/node_modules/iobroker.mqtt/admin/i18n/de/translations.json i18n/de/translations.json application/json upload [12] mqtt.admin /opt/iobroker/node_modules/iobroker.mqtt/admin/i18n/en/translations.json i18n/en/translations.json application/json upload [11] mqtt.admin /opt/iobroker/node_modules/iobroker.mqtt/admin/i18n/es/translations.json i18n/es/translations.json application/json upload [10] mqtt.admin /opt/iobroker/node_modules/iobroker.mqtt/admin/i18n/fr/translations.json i18n/fr/translations.json application/json upload [9] mqtt.admin /opt/iobroker/node_modules/iobroker.mqtt/admin/i18n/it/translations.json i18n/it/translations.json application/json upload [8] mqtt.admin /opt/iobroker/node_modules/iobroker.mqtt/admin/i18n/nl/translations.json i18n/nl/translations.json application/json upload [7] mqtt.admin /opt/iobroker/node_modules/iobroker.mqtt/admin/i18n/pl/translations.json i18n/pl/translations.json application/json upload [6] mqtt.admin /opt/iobroker/node_modules/iobroker.mqtt/admin/i18n/pt/translations.json i18n/pt/translations.json application/json upload [5] mqtt.admin /opt/iobroker/node_modules/iobroker.mqtt/admin/i18n/ru/translations.json i18n/ru/translations.json application/json upload [4] mqtt.admin /opt/iobroker/node_modules/iobroker.mqtt/admin/i18n/zh-cn/translations.json i18n/zh-cn/translations.json application/json upload [3] mqtt.admin /opt/iobroker/node_modules/iobroker.mqtt/admin/index_m.html index_m.html text/html upload [2] mqtt.admin /opt/iobroker/node_modules/iobroker.mqtt/admin/jsonConfig.json jsonConfig.json application/json upload [1] mqtt.admin /opt/iobroker/node_modules/iobroker.mqtt/admin/mqtt.png mqtt.png image/png upload [0] mqtt.admin /opt/iobroker/node_modules/iobroker.mqtt/admin/words.js words.js application/javascript Update "system.adapter.mqtt.1" Update "system.adapter.mqtt.2" Process exited with code 0
Ausserdem ... irgendwas läuft da im Hintergrund noch. Je öfter ich das npm ls mache, desto mehr dieser extraneous Fehler kommen. Jedenfalls dauert alles eine Ewigkeit. Es scheint bei jedem Install - den ganzen Baum zu analysieren.
Es läuft zwar erst mal alles - aber habe keine Ahnung wie ich diese Fehler bzw. diese langsamen Updates in den Griff bekommen soll.
Update:
Selbst nach einem Löschen des gesamten node_modules Verzeichnisses unter /opt/iobroker und Neuaufbau mit npm install bleiben die Fehler:
npm ERR! code ELSPROBLEMS npm ERR! extraneous: @types/caseless@0.12.2 /opt/iobroker/node_modules/@types/caseless npm ERR! extraneous: @types/request@2.48.8 /opt/iobroker/node_modules/@types/request npm ERR! extraneous: @types/tough-cookie@4.0.2 /opt/iobroker/node_modules/@types/tough-cookie npm ERR! extraneous: coffee-compiler@0.3.2 /opt/iobroker/node_modules/coffee-compiler npm ERR! extraneous: coffee-script@1.12.7 /opt/iobroker/node_modules/coffee-script npm ERR! invalid: iobroker.mercedesme@0.0.56 /opt/iobroker/node_modules/iobroker.mercedesme npm ERR! invalid: iobroker.mqtt@4.0.5 /opt/iobroker/node_modules/iobroker.mqtt npm ERR! invalid: iobroker.node-red@3.3.1 /opt/iobroker/node_modules/iobroker.node-red npm ERR! extraneous: node-inspect@2.0.0 /opt/iobroker/node_modules/node-inspect npm ERR! extraneous: picocolors@1.0.0 /opt/iobroker/node_modules/picocolors npm ERR! extraneous: suncalc2@1.8.1 /opt/iobroker/node_modules/suncalc2 npm ERR! extraneous: typescript@4.7.4 /opt/iobroker/node_modules/typescript npm ERR! extraneous: virtual-tsc@0.6.2 /opt/iobroker/node_modules/virtual-tsc npm ERR! extraneous: vm2@3.9.9 /opt/iobroker/node_modules/vm2 npm ERR! extraneous: wake_on_lan@1.0.0 /opt/iobroker/node_modules/wake_on_lan npm ERR! A complete log of this run can be found in: npm ERR! /home/iobroker/.npm/_logs/2022-06-18T05_08_57_259Z-debug-0.log
Es funktioniert sonst - soweit ich das auf die Kürze beurteilen kann alles.
Es bleibt jedoch dabei - eine Installation eines Adapters dauert ewig und soweit ich beurteilen kann, geht er alle Checks durch als ob man ein komplettes npm install machen würde.
-
Die Module mit extraneous habe ich auch doppelt im Tree. Die kommen sämtlichst aus dem iobroker.javascript Adapter. Ich räume die immer per
npm prune
aus dem Weg. Warum die drei invalid Dinger da stehen bleiben kann ich dir allerdings auch nicht sagen, bei mir kommt das nicht vor.
Auch dauert eine Installation oder ein Upgrade von Adaptern nicht ungewöhnlich lange. -
Also ja mit npm ls sieht man was Genaunehmens Baum los ist. Aber auch das ist nicht des Weisheits letzter Schluss. Wichtig ist das alles geht. Wie und warum da komische Dinge sind bekommt man so schnell Nicht raus. Und extraneous muss brining nicht falsch sein weil es Adapter wie JavaScript oder ham gibt die npm Module am Main Package vorbei installieren. Allein deswegen ist npm ls Aussagekraft bissl fragwürdig.
Wenn bei nem Adapter install ein fehlt immer dann mit --debug nochmal machen und dann sieht man die fehler.
Zum Thema dauert lang: Haftbedingungen in /opt/iobroker ein package-lock.json?? Wenn nicht kann das der Grund sein - früher haben wir explizit die Package lock ausgeschaltet weil buggy. Inzwischen geht das. Aber einfach einschalten geht ggf auch schief … das müsste man mal probieren - im Notfall node-modules löschen und dann komplett neu aufbauen lassen. Das sollte dann mit der Package lock gehen