NEWS
[How-to] Node.js ioBroker richtig updaten-2021/22 Edition
-
@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.
-
Ich meine, ob die im Moment noch so im tree ausgewiesen werden.
Denn eigentlich biegt sich das (bei höheren Versionsnummern) wieder auf die Version aus dem jeweiligen aktiven Repo um. -
@thomas-braun Ja werden noch als invalide über non kist ausgewiesen. Habe ich ja gepostet:
iobroker.node-red@3.3.1 invalid: "github:ioBroker/ioBroker.node-red" from the root project
-
Das ist ja aus der Zusammenfassung am Ende des Trees, oder nicht?
Und im tree selber steht der Adapter wie drin? -
@thomas-braun Ich poste wenn ich daheim bin die komplette Ausgabe von npm list. Im Moment bin ich unterwegs
-
Also ich habe gerade meinen IO-Broker (Windows 10 64bit) auf die NPM 16.5.1 hochgezogen (von 14.19.3) Ich habe die NPM MSI Datei heruntergeladen und einfach installiert - ohne Probleme.
-
@thomas-braun sagte in [How-to] Node.js ioBroker richtig updaten-2021/22 Edition:
Das ist ja aus der Zusammenfassung am Ende des Trees, oder nicht?
Und im tree selber steht der Adapter wie drin?So nein - hier die Gesamtausgabe:
pi@MWHome:~ $ cd /opt/iobroker pi@MWHome:/opt/iobroker $ npm list 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-18T19_06_51_429Z-debug-0.log
-
Was auffällt: Alle drei Adapter gibt es in gleicher Version auch über npm/das Beta Repo.
Wenn du die alle nochmal gezielt über diese Schiene ziehst?