NEWS
[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. -
@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
-
@apollon77 sagte in [How-to] Node.js ioBroker richtig updaten-2021/22 Edition:
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.
Also um es vorwegzunehmen: Es funktioniert alles
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
Das habe ich tatsächlich gemacht und das Ganze node_modules Verzeichnis gelöscht und komplett neu aufbauen lassen. Es funktionierte auch - die Meldungen waren jedoch die gleichen, wie vor dem Löschvorgang. So und das Problem mit der Geschwindigkeit. Ich wage beinahe zu behaupten, dass der Neuaufbau des node_modules Verzeichnis ebenso lange dauert, wie eine Adapterinstallation. Irgendwie scheint jedes Modul zu analysiert zu werden. Jedenfalls dauert es im Moment ca. 15 Minuten im Schnitt bis man einen Adapter installiert hat, was vorher in max. 3-5 Minuten passiert ist.
Haftbedingungen in /opt/iobroker ein package-lock.json??
Was genau meinst Du damit?
Das Teil schaut bei mir ewig groß und alt aus:
-rwxrwxrwx+ 1 iobroker iobroker 1297 14. Jun 17:54 package.json -rwxrwxrwx+ 1 iobroker iobroker 167018 8. Sep 2019 package-lock.json
Kann ich die package-lock.json einfach löschen?
Update:
Ich hab die pacakge-lock.json einfach gelöscht und siehe da, war in 1 min fertig ohne Fehler!! (sieht man ja in 28 s statt 15 min) Dann war diese Datei wohl das Problem.$ iobroker url iobroker.mercedesme --host MWHome install iobroker.mercedesme NPM version: 8.12.2 Installing iobroker.mercedesme... (System call) removed 592 packages, and changed 3 packages in 28s101 packages are looking for funding run `npm fund` for details upload [4] mercedesme.admin /opt/iobroker/node_modules/iobroker.mercedesme/admin/admin.d.ts admin.d.ts video/mp2t upload [3] mercedesme.admin /opt/iobroker/node_modules/iobroker.mercedesme/admin/index_m.html index_m.html text/html upload [2] mercedesme.admin /opt/iobroker/node_modules/iobroker.mercedesme/admin/mercedesme.png mercedesme.png image/png upload [1] mercedesme.admin /opt/iobroker/node_modules/iobroker.mercedesme/admin/style.css style.css text/css upload [0] mercedesme.admin /opt/iobroker/node_modules/iobroker.mercedesme/admin/words.js words.js application/javascript Process exited with code 0
Interessant ist auch, dass dann die ganzen extraneous Fehler erst mal weg sind:
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 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.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! A complete log of this run can be found in: npm ERR! /home/iobroker/.npm/_logs/2022-06-18T13_15_16_256Z-debug-0.log
und dieser Pfad, der wohl hier moniert wrd steht so in der package.json
cat package.json { "name": "iobroker.inst", "version": "2.0.3", "private": true, "description": "Automation platform in node.js", "scripts": { "install": "node lib/checkVersions.js", "postinstall": "node lib/install.js", "test": "node node_modules/mocha/bin/mocha --exit" }, "dependencies": { "colors": "^1.3.3", "fs-extra": "^7.0.1", "iobroker": "^2.0.3", "iobroker.admin": "5.4.9", "iobroker.alias-manager": "^1.2.4", "iobroker.backitup": "2.4.9", "iobroker.dwd": "2.8.3", "iobroker.flot": "^1.10.7", "iobroker.info": "^1.9.19", "iobroker.javascript": "5.7.0", "iobroker.js-controller": "4.0.23", "iobroker.mercedesme": "github:TA2k/ioBroker.mercedesme", "iobroker.mqtt": "github:ioBroker/ioBroker.mqtt", "iobroker.node-red": "github:ioBroker/ioBroker.node-red", "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": "1.4.15", "iobroker.vis-hqwidgets": "1.2.0", "iobroker.vis-materialdesign": "0.5.9", "iobroker.web": "4.3.0", "iobroker.yahka": "^0.13.1", "semver": "^5.6.0", "yargs": "^7.0.2" } }
-
@mickym Hast DU dann jetzt eine neue package-lock?
-
@apollon77 Nein. Kam keine Neue. Habe aber auch keine neue Version, sondern die gleiche von den Mercedes Adapter nochmal installiert. Bin as uch aktuell unterwegs. Jedenfalls hat sich die Installation um mehr als das 15 fache verbessert.
-
@mickym sagte in [How-to] Node.js ioBroker richtig updaten-2021/22 Edition:
Wie schaut denn das mit den anderen beiden Adaptern aus.
Hattest du die drei (vielleicht auch irgendwann in der Vergangenheit) über git und nicht über npm oder stable installiert? -
@thomas-braun Ja. Allerdings bringt das Nachinstallieren über npm nichts. Wenn ich daheim bin, trage ich mal die korrekten Versionsnummern ein. Beispiel: mqtt Adapter via wurde via github auf 4.0.3 installiert. Dann vis npm auf 4.0.5 aktualisiert. Der komische Fehler bzw. der gleichlautende Eintrag in der package.json wurde nicht angepasst lediglich die Versionsnummern.
Aber richtig alle 3 Adapter wurden irgendwann über github aktualisiert
-
Stehen die vielleicht noch mit dem git-Eintrag bei dir drin?
Das hab ich bei mir z. B. auch drin, allerdings sind die drei bei mir wirklich über git installiert.echad@chet:/opt/iobroker $ npm ls | grep github ├── iobroker.govee@0.0.5 (git+ssh://git@github.com/nbuenger/ioBroker.govee.git#0d983c49135b87ac2f88f9d832a6d632c4889606) ├── iobroker.samsung@0.5.11 (git+ssh://git@github.com/iobroker-community-adapters/ioBroker.samsung.git#70366ba038c0f5092731db63f09d16db8eb56e65) ├── iobroker.switchbot-hub@0.1.2 (git+ssh://git@github.com/DrozmotiX/ioBroker.switchbot-hub.git#de8c1ad97edafedb16cbbb2c6dc14b032848df8e)
-
@thomas-braun ja wie gesagt die wurden über github installiert. Die Einträge aber als invalide gekennzeichnehab unten ja die package.json gepostet. Nur mit einem nom drüber installieren korrugieren sich die Einträge nicht. Wenn ich daheim bin, werde ich die Version mal manuell eintragen, da alle Versionen ja inzwischen über npm zu installieren sind.