NEWS
node-red-node-email Update Fehler
-
Hi, ich wollte node-red-node-email über den Palettenmanger Aktualisieren bzw. Updaten. Leider bekomme ich dabei Fehlermeldungen. Ich bin leider nicht der Linux Experte. Sehe ich das richtig, das ich die Datei. /opt/iobroker/iobroker-data/node-red/node_modules/node-red-node-email, umbennen soll?
Bei mir läuft iobroker auf einem Raspberry Pi4 mit 4 GB und Bullseye
Node.js v16.16.0
NPM 8.11.0
JS.Controller 4.0.23
Node Red Adapter Version 3.3.12022-07-27T14:07:27.183Z Installieren : node-red-node-email 1.17.0 2022-07-27T14:07:27.234Z npm install --no-audit --no-update-notifier --no-fund --save --save-prefix=~ --production --engine-strict node-red-node-email@1.17.0 2022-07-27T14:07:28.427Z [err] npm 2022-07-27T14:07:28.428Z [err] WARN 2022-07-27T14:07:28.428Z [err] config production Use `--omit=dev` instead. 2022-07-27T14:07:32.035Z [err] npm 2022-07-27T14:07:32.035Z [err] 2022-07-27T14:07:32.036Z [err] ERR! 2022-07-27T14:07:32.036Z [err] code ENOTEMPTY 2022-07-27T14:07:32.036Z [err] npm 2022-07-27T14:07:32.037Z [err] ERR! 2022-07-27T14:07:32.037Z [err] syscall 2022-07-27T14:07:32.037Z [err] rename 2022-07-27T14:07:32.037Z [err] npm ERR! 2022-07-27T14:07:32.037Z [err] path 2022-07-27T14:07:32.038Z [err] /opt/iobroker/iobroker-data/node-red/node_modules/node-red-node-email 2022-07-27T14:07:32.038Z [err] npm 2022-07-27T14:07:32.038Z [err] ERR! dest /opt/iobroker/iobroker-data/node-red/node_modules/.node-red-node-email-PS18Tehr 2022-07-27T14:07:32.039Z [err] npm ERR! 2022-07-27T14:07:32.039Z [err] errno -39 2022-07-27T14:07:32.042Z [err] npm ERR! 2022-07-27T14:07:32.042Z [err] ENOTEMPTY: directory not empty, rename '/opt/iobroker/iobroker-data/node-red/node_modules/node-red-node-email' -> '/opt/iobroker/iobroker-data/node-red/node_modules/.node-red-node-email-PS18Tehr' 2022-07-27T14:07:32.046Z [err] 2022-07-27T14:07:32.046Z [err] npm 2022-07-27T14:07:32.046Z [err] ERR! A complete log of this run can be found in: 2022-07-27T14:07:32.046Z [err] npm ERR! /home/iobroker/.npm/_logs/2022-07-27T14_07_28_351Z-debug-0.log 2022-07-27T14:07:32.062Z rc=217
-
@frankyboy73 sagte in node-red-node-email Update Fehler:
Sehe ich das richtig, das ich die Datei. /opt/iobroker/iobroker-data/node-red/node_modules/node-red-node-email, umbennen soll?
Ja, sollst du.
Das kann aber eine lange Liste an Verzeichnissen werden.Versuch mal den Zweizeiler:
cd /opt/iobroker/iobroker-data/node-red/node_modules/ for i in $(ls -d .[^.]*-*/); do rm -rf ${i%%/}; done
(Letzte Zeile GENAUSTENS eingeben, besser kopieren)
-
@thomas-braun Hi, danke, das probiere ich mal aus. Ich vertraue dir da mal.
Ich frag mich nur woran das liegen kann. Umstieg auf höhere Node Red Version, Umstieg auf Bullseye oder Umstieg auf Node.JS 16? Das hat sich bei mir nämlich seit dem letzten Update der Node geändert. Andere Updates konnte ich Fehlerfrei durchführen, z.B. node-red-contrib-cron-plus oder node-red-contrib-telegrambot oder node-red-dashboard.
Allerdings hatte ich bei node-red-node-feedparser das gleiche Problem wie bei email und auch die gleiche Fehlermeldung das die Datei /opt/iobroker/iobroker-data/node-red/node_modules/node-red-node-email umbenannt werden soll. -
Ich vermute, das hängt mit einer neueren Version von npm zusammen. Da hat sich das Format der package*.json geändert und die Konvertierung scheint da nicht immer richtig durchzulaufen.
Allerdings habe ich die Meldungen dazu nie im Zusammenhang mit node-red gesehen. Nutzt der paletten manager auch npm im Hintergrund? -
@thomas-braun Hi, vielen Dank dein Zweizeiler hat geholfen. Ich konnte die Nodes jetzt aktualisieren. Und alles läuft noch.
Ob der Palettenmanger auch npm nutzt kann ich dir leider nicht beantworten. -
Vielleicht weiß unser 'Roter-Knoten'-Spezi @mickym das ja.
-
@thomas-braun Der rote Knoten Spezi bestätigt, dass npm genutzt wird. Das sieht man ja an dem Log, das Franky gepostet hat.
-
Stimmt.
Dann gelten da natürlich die gleichen Voraussetzungen wie für die anderen Adapter auch: Am besten einen möglichst sauberen npm tree haben, bevor da npm8 ins Spiel kommt. -
@thomas-braun Hi, hatte eigentlich gedacht das es sauber ist. Ich war extra nach deiner Anleitung aus deiner Signatur vorgegangen.
Bei
cd /opt/iobroker npm ls | grep -E 'github|ERR'
wurde nichts zurück geliefert. Und
npm ls
sah auch unauffällig aus.
Hätte ich allerdings deinen zweiten Post auch noch gelesen, wäre ich wohl auf deinen Zweizeiler gestoßen. Aber da ich direkt nach dem Update auf Node,js 16 keine Probleme hatte, auch nicht mit Adapterupdates, meinte ich das wäre für mich nicht relevant.
Aber jetzt läufts ja, oder sollte ich da nochmal was kontrollieren bzw. geradeziehen?
-
@frankyboy73 Du kannst noch in das NodeRed Verzeichnis /opt/iobroker/iobroker-data/node-red gehen und schauen mit npm list ob Du einen sauberen Baum hast.
Ich hatte das gleiche Problem mit der email Node - musste aber das Ganze Verzeichnis der email Node löschen und nicht nur umbennen, weil der Palettenmanager nach jedem Neustart von NodeRed wieder gesagt hat, dass die email Node zu aktualisieren ist. Wenn dann aber ausgeführt, war alles up to date.
-
Ja, die üblichen Meldungen bei einer nicht sauber konvertierbaren package-lock stammen auch aus dem Wurzelverzeichnis des damit betriebenen nodejs-Projekts. Bei einigen komplexeren Adaptern ist es aber so, dass sozusagen innerhalb des Hauptprojekts es noch 'Unterprojekte' gibt, die wiederum ein eigenes Inhaltsverzeichnis in Form einer eigenen package*.json-Datei haben.
Bei node-red ist das der Fall. -
@mickym Ok, mache ich mal. Wenn ich das aber richtig verstanden habe, löscht der Zweizeiler von @Thomas-Braun die Verzeichnisse und benennt sie nicht um.
-
@thomas-braun Bei Node-Red wird die package-lock.json auch gepflegt, also anders als im /opt/iobroker Verzeichnis.
-
@frankyboy73 sagte in node-red-node-email Update Fehler:
@mickym Ok, mache ich mal. Wenn ich das aber richtig verstanden habe, löscht der Zweizeiler von @Thomas-Braun die Verzeichnisse und benennt sie nicht um.
Nee nichts löschen. Nun schauen. Wie gesagt NodeRed hat in dem genannten Verzeichnis ein ganz eigene NodeJS Instanz mit ihren Modulen.
-
@thomas-braun Ah, Ok, dann beim nächsten mal auch
cd /opt/iobroker/iobroker-data/node-red/node_modules/ npm ls | grep -E 'github|ERR'
ausführen?
-
@frankyboy73 Du wirfst 2 Dinge durcheinander.
/opt/iobroker ist das iobroker Verzeichnis und dessen module sind im Verzeichnis /opt/iobroker/node_modules
die Prüfung macht man immer über dem Verzeichnis wo das node_modules Verzeichnis ist. Für NodeRed also
cd /opt/iobroker/iobroker-data/node-redund hat auch nichts mit github zu tun
Schau einfach ob Du einen sauberen Baum hast:
cd /opt/iobroker/iobroker-data/node-red pi@MWHome:/opt/iobroker/iobroker-data/node-red $ ls cronplusdata flows.json lib nrchkb package-lock.json settings.js flows_cred.json homekit-persist node_modules package.json projects settings.js.orginal pi@MWHome:/opt/iobroker/iobroker-data/node-red $ npm list node-red-project@0.0.1 /opt/iobroker/iobroker-data/node-red ├── @mdi/font@5.9.55 ├── node-red-contrib-bigtimer@2.8.2 ├── node-red-contrib-buffer-parser@3.2.2 ├── node-red-contrib-cron-plus@1.5.7 ├── node-red-contrib-crypto-js@0.1.1 ├── node-red-contrib-fs-ops@1.6.0 ├── node-red-contrib-harmony-websocket@2.2.6 ├── node-red-contrib-light-scheduler@0.0.18 ├── node-red-contrib-tail-file@1.2.6 ├── node-red-contrib-ui-contextmenu@2.0.1 ├── node-red-contrib-ui-time-scheduler@1.17.1 ├── node-red-contrib-web-worldmap@2.28.3 ├── node-red-contrib-whin@0.1.14 ├── node-red-dashboard@3.1.7 ├── node-red-node-email@1.17.0 ├── node-red-node-feedparser@0.3.0 ├── node-red-node-mysql@1.0.3 ├── node-red-node-ping@0.3.1 ├── node-red-node-snmp@1.0.2 ├── node-red-node-tail@0.3.2 ├── node-red-node-ui-table@0.3.12 └── speedtest-net@2.2.0
Bei mir schaut der gut aus.
-
@mickym Ah OK, also so:
pi@raspberrypi:/opt/iobroker/iobroker-data/node-red $ ls alexa-local flows_cred.json lib package.json settings.js cronplusdata flows.json node_modules package-lock.json pi@raspberrypi:/opt/iobroker/iobroker-data/node-red $ npm list node-red-project@0.0.1 /opt/iobroker/iobroker-data/node-red ├── node-red-contrib-cron-plus@1.5.7 ├── node-red-contrib-fritzapi@0.5.2 ├── node-red-contrib-light-scheduler@0.0.18 ├── node-red-contrib-telegrambot@12.0.0 ├── node-red-dashboard@3.1.7 ├── node-red-node-email@1.17.0 ├── node-red-node-feedparser@0.3.0 ├── node-red-node-ping@0.3.1 ├── node-red-node-ui-table@0.3.12 └── speedtest-net@2.2.0
Was mich gerade wundert, das da oben alexa-local drin steht, das habe ich schon seit Jahren nicht mehr.
-
@frankyboy73 Der Baum schaut aber super sauber aus. Es gab manche Nodes - die Daten im Filesystem abgespeichert haben und die bleiben halt, selbst wenn Du die Nodes löschst. Wie gesagt mit der email Node hatte ich auch Probleme, die anderen gingen sauber zu aktualisieren.
In meinen Augen ist bei Dir alles gut.
-
@mickym OK, Danke, wieder was dazu gelernt.
Was mich jetzt wundert, ist diese Ausgabe, die hatte ich vor dem Update auf Node.JS 16 ganz sicher nicht, zu 100% sicher. Ok, der Adapter ist ne Latest Installation, da schon lange her, hatte ich das nicht mehr auf dem Schirm, aber unter Node.js 14 wurde mir das nicht ausgegeben.
pi@raspberrypi:/opt/iobroker $ npm ls | grep -E 'github|ERR' ├── iobroker.fritzdect@2.2.5 (git+ssh://git@github.com/foxthefox/ioBroker.fritzdect.git#c25e37c0054aab94b58c5fd1903c1ab681fdb96e) pi@raspberrypi:/opt/iobroker $ npm ls iobroker.inst@2.0.3 /opt/iobroker ├── colors@1.4.0 ├── fs-extra@7.0.1 ├── iobroker.admin@5.3.8 ├── iobroker.alexa2@3.11.2 ├── iobroker.broadlink2@2.1.5 ├── iobroker.deconz@1.3.21 ├── iobroker.feiertage@1.1.0 ├── iobroker.flot@1.11.0 ├── iobroker.fritzdect@2.2.5 (git+ssh://git@github.com/foxthefox/ioBroker.fritzdect.git#c25e37c0054aab94b58c5fd1903c1ab681fdb96e) ├── iobroker.ical@1.13.1 ├── iobroker.info@1.9.19 ├── iobroker.iot@1.11.8 ├── iobroker.js-controller@4.0.23 ├── iobroker.mihome@1.4.0 ├── iobroker.node-red@3.3.1 ├── iobroker.simple-api@2.7.0 ├── iobroker.socketio@4.2.0 ├── iobroker.sonoff@2.5.1 ├── iobroker.sql@2.1.7 ├── iobroker.tr-064@4.2.16 ├── iobroker.web@4.3.0 ├── iobroker@2.0.3 ├── npm@8.4.0 ├── semver@5.7.1
-
@frankyboy73 sagte in node-red-node-email Update Fehler:
Was mich jetzt wundert, ist diese Ausgabe, die hatte ich vor dem Update auf Node.JS 16 ganz sicher nicht
Was meinst du konkret?
Mir fällt aber gerade noch das Modul npm auf. Das hat imho im root-Verzeichnis des ioBrokers nix zu suchen. Das gehört da nicht hin.