NEWS
iobroker kaputt nach NodeJS Update
-
Liebes Forum,
nach 3 Jahren ohne Probleme mit iobroker hat es ich nun erwischt, kann mir jemand bitte helfen?
Nachdem ich einen Adapter (glaube es war der Worx) nicht mehr aktualisieren konnte, habe ich heute NodeJS auf 16 (NPM 8.15) aktualisiert. Seither konnte ich zunächst keine Adapter mehr installieren oder aktualisieren, Fehlermeldungen "directory not empty, rename XYZ"
Ich habe zwar ein aktuelles Backup, kann es aber inzwischen nicht wiederherstellen, weil ich iobroker nicht mehr starten kann. (Habe sehr viel in iobroker gebastelt/konfiguriert, das alles neu zu machen.. mir wird schlecht).
Was ich den Foreneinträgen nach zunächst schon alles probiert habe, um Adapter wieder installieren/aktualisieren zu können, leider erfolglos:
-
NodeJS löschen und neu installieren
https://www.iobroker.net/#de/documentation/install/linux.md -
versteckte Ordner in /opt/iobroker/node_modules löschen
Skript Lösung: https://forum.iobroker.net/topic/57337/fehler-25-bei-adapter-install-update-mit-npm8/2
Per Hand löschen: https://forum.iobroker.net/topic/45728/npm-err-code-enotempty-adapter-upgrade-nicht-mehr-möglich
-
iobroker install fixer Skript
https://forum.iobroker.net/topic/20211/iobroker-installation-fixer-beta-verfügbar -
Installierte Versionen
which node: /usr/bin/node 16.17.1
which nodejs: /usr/bin/nodejs 16.17.1
which npm: /usr/bin/npm 8.15.0
npm doctor zeigt überall OK außer bei Version steht "recommendation Use npm v8.19.2" aber hier nehme ich an soll ich nicht manuell Hand anlegen..
-
iobroker neu installieren (über die bestehende Installation) - meine Einstellungen waren zwar noch da, aber die Adapter konnten trotzdem nicht installiert werden (beim ersten Versuch; jetzt ist die Installation aber auch schon kaputt, siehe weiter untern)
-
Paket Aktualisierungen durchgeführt (sudo apt-get update, upgrade..)
-
npm rebuild
-
Aktualisierung NodeJS nach dieser Anleitung
https://forum.iobroker.net/topic/22867/how-to-node-js-für-iobroker-richtig-updaten
UPDATE
Inzwischen sind meine "Reparatur Versuche" soweit fehlgeschlagen, dass iobroker überhaupt nicht mehr startet. Bei einer Neuinstallation erscheint folgender Fehler:
npm ERR! code 22
npm ERR! path /opt/iobroker/node_modules/iobroker.js-controller
npm ERR! command failed
npm ERR! command sh /tmp/install-e3ed2990.sh
npm ERR! No connection to databases possible ...Und iobroker start führt zu:
Error: Cannot find module '/opt/iobroker/node_modules/iobroker.js-controller/iobroker.jswas ich auch nicht mehr mit einem "nopm install iobroker.js-controller" beheben kann, das endet in:
npm ERR! code 1
npm ERR! path /opt/iobroker/node_modules/iobroker.js-controller
npm ERR! command failed
npm ERR! command sh /tmp/install-c5de2d03.sh
npm ERR! node:internal/modules/cjs/loader:372
npm ERR! throw err;
npm ERR! ^
npm ERR!
npm ERR! Error: Cannot find module '/opt/iobroker/node_modules/jsonwebtoken/index.js'. Please verify that the package.json has a valid "main" entryJa und jetzt stehe ich komplett an: was mache ich jetzt? Ohne iobroker überhaupt neu installieren zu können, hilft mir ja auch das Backup nichts (BackItUp)?
-
-
@michaelheiml sagte in iobroker kaputt nach NodeJS Update:
Seither konnte ich zunächst keine Adapter mehr installieren oder aktualisieren, Fehlermeldungen "directory not empty, rename XYZ"
Wäre vermutlich leicht zu beheben gewesen:
https://forum.iobroker.net/topic/57337/fehler-25-bei-adapter-install-update-mit-npm8
Jetzt kann man kaum noch nachvollziehen was da alles gemacht wurde.
-
Ich habe diesen Schritt als erstes durchgeführt und das auch in meinem Text beschrieben (unter 2). Das hatte nichts geändert/geholfen, Adapter konnten trotzdem nicht aktualisiert werden.
Problem jetzt ist ja vielmehr, dass ich iobroker überhaupt nicht mehr starten kann. (siehe letzter Fehler).
Gibt es einen Weg, iobroker sicher zu löschen und neu zu installieren, damit ich anschließend zumindest versuchen kann, das Backup wieder einzuspielen von BackItUp? (/opt/iobroker löschen reicht?)
-
@michaelheiml sagte in iobroker kaputt nach NodeJS Update:
Das hatte nichts geändert/geholfen, Adapter konnten trotzdem nicht aktualisiert werden.
Mit welchen Meldungen? (Vermutlich jetzt müßig...)
Erstmal schauen wie du da jetzt überhaupt unterwegs bist:
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
-
@thomas-braun
sudo ln -s /usr/bin/node /usr/bin/nodejsAusgabe:
ln: die symbolische Verknüpfung '/usr/bin/nodejs' konnte nicht angelegt werden: Die Datei existiert bereitsuname -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
Ausgabe:
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 '/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 Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:81:12)
at node:internal/main/run_main_module:17:47 {
code: 'MODULE_NOT_FOUND',
requireStack: []
} -
uname -m && type -P nodejs node npm && nodejs -v && node -v && npm -v && whoami && groups && pwd && sudo apt update &> /dev/null && sudo apt update && apt policy nodejs
-
@thomas-braun said in iobroker kaputt nach NodeJS Update:
uname -m && type -P nodejs node npm && nodejs -v && node -v && npm -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
pi
pi adm dialout cdrom sudo audio video plugdev games users input netdev lpadmin gpio i2c spi iobroker
/opt/iobroker -
-
Ja.. gerade bemerkt.. einen Moment
-
armv7l /usr/bin/nodejs /usr/bin/node /usr/bin/npm v16.17.1 v16.17.1 8.15.0 pi pi adm dialout cdrom sudo audio video plugdev games users input netdev lpadmin gpio i2c spi iobroker /opt/iobroker OK:1 http://raspbian.raspberrypi.org/raspbian buster InRelease OK:2 http://archive.raspberrypi.org/debian buster InRelease OK:3 https://downloads.plex.tv/repo/deb public InRelease OK:4 https://deb.nodesource.com/node_16.x buster InRelease OK:5 https://linux.teamviewer.com/deb stable 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
-
Was willst du denn mit teamviewer auf einem Server? Kommandozeile per RemoteDesktop? SSH und Terminal ist angesagt...
-
iobroker stop pkill -u iobroker cd /opt/iobroker sudo -H -u iobroker npm install iobroker.js-controller
-
Ja Kommandozeile via Remote Desktop.
-
@michaelheiml sagte in iobroker kaputt nach NodeJS Update:
Ja Kommandozeile via Remote Desktop.
Ziemlicher Quark, oder?
-
Nö weil ich auch andere Sachen mit dem Raspi mache, die ich via GUI schneller erledigen kann.
-
Ist trotzdem Quark, wenn ich per SSH mit viel weniger Overhead auf die Kiste komme.
Ausgaben zu den Befehlen? -
@thomas-braun said in iobroker kaputt nach NodeJS Update:
Mit welchen Meldungen? (Vermutlich jetzt müßig...)
Es kam exakt wieder dieselbe Meldung mit Fehler 25. Und ich konnte die Adapter, die sich nicht mehr aktualisieren ließen, dennoch deinstallieren, aber dann nicht mehr neu installieren. Auch das manuelle Löschen der .-XYZ Ordner hat daran nichts verändert.
Das letzte Logfile von heute, bevor iobroker nicht mehr startete, hätte ich sogar noch falls es dich interessiert.
-
npm WARN deprecated dgram@1.0.1: npm is holding this package for security reasons. As it's a core Node module, we will not transfer it over to other users. You may safely remove the package from your dependencies. npm WARN deprecated har-validator@5.1.5: this library is no longer supported npm WARN deprecated uuid@3.4.0: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142 npm ERR! code 1 npm ERR! path /opt/iobroker/node_modules/iobroker.js-controller npm ERR! command failed npm ERR! command sh /tmp/install-d8eb892e.sh npm ERR! node:internal/modules/cjs/loader:372 npm ERR! throw err; npm ERR! ^ npm ERR! npm ERR! Error: Cannot find module '/opt/iobroker/node_modules/jsonwebtoken/index.js'. Please verify that the package.json has a valid "main" entry npm ERR! at tryPackage (node:internal/modules/cjs/loader:364:19) npm ERR! at Function.Module._findPath (node:internal/modules/cjs/loader:577:18) npm ERR! at Function.Module._resolveFilename (node:internal/modules/cjs/loader:942:27) npm ERR! at Function.Module._load (node:internal/modules/cjs/loader:804:27) npm ERR! at Module.require (node:internal/modules/cjs/loader:1028:19) npm ERR! at require (node:internal/modules/cjs/helpers:102:18) npm ERR! at Object.<anonymous> (/opt/iobroker/node_modules/@iobroker/js-controller-common/lib/common/tools.js:10:13) npm ERR! at Module._compile (node:internal/modules/cjs/loader:1126:14) npm ERR! at Object.Module._extensions..js (node:internal/modules/cjs/loader:1180:10) npm ERR! at Module.load (node:internal/modules/cjs/loader:1004:32) { npm ERR! code: 'MODULE_NOT_FOUND', npm ERR! path: '/opt/iobroker/node_modules/jsonwebtoken/package.json', npm ERR! requestPath: 'jsonwebtoken' npm ERR! } npm ERR! A complete log of this run can be found in: npm ERR! /home/iobroker/.npm/_logs/2022-10-10T19_34_15_220Z-debug-0.log
-
cat /opt/iobroker/node_modules/jsonwebtoken/index.js
-
cat: /opt/iobroker/node_modules/jsonwebtoken/index.js: Datei oder Verzeichnis nicht gefunden