NEWS
[How-to] Node.js ioBroker richtig updaten-2021/22 Edition
-
sudo ln -s /usr/bin/node /usr/bin/nodejs uname -m && type -P nodejs node npm && nodejs -v && node -v && npm -v && iob -v && whoami && groups && pwd && sudo apt update &> /dev/null && sudo apt update && apt policy nodejs
sagt jetzt?
-
@thomas-braun alles jeweils auf der neusten Version:
uname -m && type -P nodejs node npm && nodejs -v && node -v && npm -v && iob -v && whoami && groups && pwd && sudo apt update &> /dev/null && sudo apt update && apt policy nodejs armv7l /usr/bin/nodejs /usr/bin/node /usr/bin/npm v16.17.1 v16.17.1 8.15.0 4.0.23 pi pi adm dialout cdrom sudo audio video plugdev games users input netdev gpio i2c spi iobroker /home/pi OK:1 http://www.deb-multimedia.org buster InRelease OK:2 http://archive.raspberrypi.org/debian buster InRelease OK:3 http://raspbian.raspberrypi.org/raspbian buster 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. nodejs: Installiert: 16.17.1-deb-1nodesource1 Installationskandidat: 16.17.1-deb-1nodesource1 Versionstabelle: *** 16.17.1-deb-1nodesource1 500 500 https://deb.nodesource.com/node_16.x buster/main armhf Packages 100 /var/lib/dpkg/status 10.24.0~dfsg-1~deb10u1 500 500 http://raspbian.raspberrypi.org/raspbian buster/main armhf Packages
-
@claus1985-0 sagte in [How-to] Node.js ioBroker richtig updaten-2021/22 Edition:
Passt. Dann kannst du ja jetzt die influxdb.list reparieren, falls es da was zu reparieren gibt.
-
Hallo ich wollte gestern meinen ganzen Adapter aktualisieren und dies schlug fehl, ich habe zuletzt auch kein Upgrade etc. gemacht.
In der Console erhalte ich auch seltsame Fehlermeldungen
pi@iobroker:/opt/iobroker $ uname -m && type -P nodejs node npm && nodejs -v && node -v && npm -v && iob -v && whoami && groups && pwd && sudo apt update &> /dev/null && sudo apt update && apt policy nodejs armv7l /usr/bin/nodejs /usr/bin/node /usr/bin/npm v16.17.1 v16.17.1 8.15.0 node:internal/modules/cjs/loader:959 throw err; ^ Error: Cannot find module 'async/forEach' Require stack: - /opt/iobroker/node_modules/winston/lib/winston/logger.js - /opt/iobroker/node_modules/winston/lib/winston/create-logger.js - /opt/iobroker/node_modules/winston/lib/winston.js - /opt/iobroker/node_modules/@iobroker/js-controller-common/lib/common/logger.js - /opt/iobroker/node_modules/@iobroker/js-controller-common/index.js - /opt/iobroker/node_modules/iobroker.js-controller/lib/setup.js - /opt/iobroker/node_modules/iobroker.js-controller/iobroker.js at Function.Module._resolveFilename (node:internal/modules/cjs/loader:956:15) at Function.Module._load (node:internal/modules/cjs/loader:804:27) at Module.require (node:internal/modules/cjs/loader:1028:19) at require (node:internal/modules/cjs/helpers:102:18) at Object.<anonymous> (/opt/iobroker/node_modules/winston/lib/winston/logger.js:11:22) at Module._compile (node:internal/modules/cjs/loader:1126:14) at Object.Module._extensions..js (node:internal/modules/cjs/loader:1180:10) at Module.load (node:internal/modules/cjs/loader:1004:32) at Function.Module._load (node:internal/modules/cjs/loader:839:12) at Module.require (node:internal/modules/cjs/loader:1028:19) { code: 'MODULE_NOT_FOUND', requireStack: [ '/opt/iobroker/node_modules/winston/lib/winston/logger.js', '/opt/iobroker/node_modules/winston/lib/winston/create-logger.js', '/opt/iobroker/node_modules/winston/lib/winston.js', '/opt/iobroker/node_modules/@iobroker/js-controller-common/lib/common/logger.js', '/opt/iobroker/node_modules/@iobroker/js-controller-common/index.js', '/opt/iobroker/node_modules/iobroker.js-controller/lib/setup.js', '/opt/iobroker/node_modules/iobroker.js-controller/iobroker.js' ] }
komischerweise kann ich die iob starten komme auch ins Webinterface aber alle adapter bleiben rot und ich bekomme immer de Fehler : Error: Cannot find module 'async/forEach'
kann mir da jemand weiterhelfen?
-
iobroker stop cd /opt/iobroker sudo -H -u iobroker npm install iobroker.js-controller iobroker start
-
Ja das habe ich gemacht jedoch wirft er mir dabei auch schon Fehler
pi@iobroker:~ $ iobroker stop pi@iobroker:~ $ cd /opt/iobroker pi@iobroker:/opt/iobroker $ sudo -H -u iobroker npm install iobroker.js-controll er npm ERR! code ENOTEMPTY npm ERR! syscall rename npm ERR! path /opt/iobroker/node_modules/acme-http-01-standalone npm ERR! dest /opt/iobroker/node_modules/.acme-http-01-standalone-sG2kCsLK npm ERR! errno -39 npm ERR! ENOTEMPTY: directory not empty, rename '/opt/iobroker/node_modules/acme-http-01-standalone' -> '/opt/iobroker/node_modules/.acme-http-01-standalone-sG2kCsLK' npm ERR! A complete log of this run can be found in: npm ERR! /home/iobroker/.npm/_logs/2022-10-08T12_48_47_389Z-debug-0.log
Ich könnte jetzt zwar die Ordner alle löschen (weil er würde jetzt mehrere anzeigen) oder den Befehl
for i in $(find /opt/iobroker/node_modules -type d -iname ".*-????????" ! -iname ".local-chromium"); do rm -rf ${i%/}; done
nutzen, nur der Fehler mit dem
Error: Cannot find module 'async/forEach'
bleibt nach dem Neustart bestehen
ich hatte sogar den node_modules ordner schon komplett gelöscht und deine Befehlfolge ausgeführt, ohne Erfolg.
Ich nutze einen Raspi 4, kann es sein das irgendwas am Kernsystem hops gegangen ist? -
Mal jemals npm von Hand angepackt?
-
eigentlich nicht, ich hatte vor ein paar Monaten mal da upgrade auf nodejs 16 und npm 8 gemacht, bis gestern lief auf alles, ich konnte dann nur gestern kein Adapter mehr updaten und so fing das Desaster an.
-
Ich würde ja glatt behaupten das
async/forEach
wirklich kein node Modul ist. Aber wo der das jetzt hernimmt?cd /opt/iobroker npm ls async/forEach
-
dabei kommt das raus
pi@iobroker:/opt/iobroker $ cd /opt/iobroker pi@iobroker:/opt/iobroker $ npm ls async/forEach iobroker.inst@3.0.0 /opt/iobroker └── (empty)
was würdest mir empfehlen jetzt zu machen?
-
Neuinstallieren.
-
das komplette System oder "nur" den iobroker?
-
Kommt drauf an wie du da sonst unterwegs bist.
sudo apt update &> /dev/null && sudo apt update && apt policy nodejs
-
pi@iobroker:/opt/iobroker $ sudo apt update &> /dev/null && sudo apt update && apt policy nodejs OK:1 http://raspbian.raspberrypi.org/raspbian buster InRelease OK:2 https://repos.influxdata.com/debian buster InRelease OK:3 http://archive.raspberrypi.org/debian buster 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. nodejs: Installiert: 16.17.1-deb-1nodesource1 Installationskandidat: 16.17.1-deb-1nodesource1 Versionstabelle: *** 16.17.1-deb-1nodesource1 500 500 https://deb.nodesource.com/node_16.x buster/main armhf Packages 100 /var/lib/dpkg/status 10.24.0~dfsg-1~deb10u2 500 500 http://raspbian.raspberrypi.org/raspbian buster/main armhf Packages
bei mir ist nur der IoBroker auf dem Pi installiert, meine JS Skripte habe ich noch doof ist halt das ich nur noch ne älteres Backupit haben
aber wenn ich den iobroker-data Ordner sichere müsste das ja eigentlich dann auch als backup gehen, wenn ich komplett neu installiere oder? -
@ronny130286 sagte in [How-to] Node.js ioBroker richtig updaten-2021/22 Edition:
doof ist halt das ich nur noch ne älteres Backupit habe
Warum? Der macht bei mir jede Nacht automatisch ein Backup...
-
Tja das sollte er bei mir eigentlich auch machen aber scheinbar war der Adapter schon offline und ich habe es nicht gecheckt
Jetzt muss ich gucken was noch zu retten istEdit:
So läuft wieder, habe folgendes gemacht- /opt/iobroker/ umbenannt /opt/iobrokerbackup/
curl -sL https://iobroker.net/install.sh | bash -
neuinstalliert- iob stop
- aus dem Backupordner den iobroker-data in den neuen /opt/iobroker/ kopiert
- iob start
- nach gut einer halb Stunden liefe wieder alles ohne Probleme
Was für ein Schreck, unklar ist mir den noch wie das passiert ist
-
Hallo zusammen,
ich habe NodeJs nach der Anleitung aktualisiert, aber es scheint als ob immer noch die alte Version verwendet wird:
root@ioBroker:~# sudo apt install -y nodejs Reading package lists... Done Building dependency tree... Done Reading state information... Done nodejs is already the newest version (16.18.0-deb-1nodesource1). The following packages were automatically installed and are no longer required: gyp javascript-common libc-ares2 libjs-events libjs-highlight.js libjs-inherits libjs-is-typedarray libjs-typedarray-to-buffer libnode72 libssl-dev libuv1-dev node-abbrev node-agent-base node-ansi-regex node-ansi-styles node-ansistyles node-aproba node-archy node-are-we-there-yet node-asap node-balanced-match node-brace-expansion node-builtins node-chalk node-chownr node-cli-table node-clone node-color-convert node-color-name node-colors node-columnify node-console-control-strings node-core-util-is node-debug node-decompress-response node-defaults node-delegates node-depd node-encoding node-end-of-stream node-err-code node-escape-string-regexp node-events node-fancy-log node-fs-write-stream-atomic node-fs.realpath node-function-bind node-gauge node-get-stream node-glob node-got node-graceful-fs node-has-flag node-has-unicode node-hosted-git-info node-https-proxy-agent node-iconv-lite node-iferr node-imurmurhash node-indent-string node-inflight node-inherits node-ini node-ip node-ip-regex node-is-typedarray node-isarray node-isexe node-json-buffer node-json-parse-better-errors node-jsonparse node-lowercase-keys node-lru-cache node-mimic-response node-minimatch node-minipass node-ms node-mute-stream node-negotiator node-normalize-package-data node-npm-bundled node-npm-package-arg node-npmlog node-object-assign node-once node-osenv node-p-cancelable node-p-map node-path-is-absolute node-process-nextick-args node-promise-inflight node-promise-retry node-promzard node-pump node-quick-lru node-read node-read-package-json node-readable-stream node-resolve node-retry node-rimraf node-run-queue node-safe-buffer node-semver node-set-blocking node-signal-exit node-slash node-slice-ansi node-spdx-correct node-spdx-exceptions node-spdx-expression-parse node-spdx-license-ids node-ssri node-string-decoder node-string-width node-strip-ansi node-supports-color node-text-table node-time-stamp node-typedarray-to-buffer node-unique-filename node-util-deprecate node-validate-npm-package-license node-validate-npm-package-name node-wcwidth.js node-whatwg-fetch node-wide-align node-wrappy node-write-file-atomic node-yallist Use 'sudo apt autoremove' to remove them. 0 upgraded, 0 newly installed, 0 to remove and 3 not upgraded. root@ioBroker:~# node -v v12.22.9
Beim Admin Adapter werden mir nun 2 Versionen angezeigt:
Plattform: linux
RAM: 2 GB
Node.js: v12.22.9**(12.22.12 / 16.18.0)**
NPM: v6.14.15(8.19.2)Wie kann ich die neue Version verwenden?
-
sudo apt autoremove
Für weiteres schau in meiner Signatur.
Und halt nicht als root herum hampeln. -
danke. Das habe ich jetzt ausgeführt. Aber immer noch kein Unterschied.
Ich bin auch deine Anleitung durchgegangen, für mich scheint eigentlich alles funktioniert zu haben:All packages are up to date. nodejs: Installed: 16.18.0-deb-1nodesource1 Candidate: 16.18.0-deb-1nodesource1 Version table: *** 16.18.0-deb-1nodesource1 500 500 https://deb.nodesource.com/node_16.x jammy/main amd64 Packages 100 /var/lib/dpkg/status 12.22.9~dfsg-1ubuntu3 500 500 http://archive.ubuntu.com/ubuntu jammy/universe amd64 Packages
Hast du noch andere Ideen?
-
Mach einen eigenen Thread auf. Und da dann die Ausgabe zu dem 'Check' aus meinem How to rein.
Dann schauen wir weiter.