NEWS
[How-to] Node.js ioBroker richtig updaten-2021/22 Edition
-
@thomas-braun sagte in [How-to] Node.js ioBroker richtig updaten-2021/22 Edition:
Ja, scheint jetzt wieder zu passen.
Was nimmst du jetzt mit?
Softwarepakete nie 'irgendwie' am Paketmanager vorbei in das System kloppen und github ist KEINE reguläre Quelle für iobroker-Adapter. Auch da immer die Adapter aus den Repos holen, zuerst aus Stable, dann aus Beta.Ich habe wie gesagt bisher wann immer möglich nur im stable gearbeitet, genau um solche Dinge möglichst zu vermeiden. Da Sourceanalytix dort nicht existent ist, habe ich statt auf Beta zu schalten gleich die Version von Github geholt. Das war wohl nicht der schlauste Weg, wie ich nun lernen durfte. Bei Renault habe ich aus dem Forum direkt den Link auf Github genutzt (heute installiert) statt zuvor nach einer Version in iobroker zu schauen - das war deutlich nicht der schlauste Weg. PV Forecast habe ich installiert, als es noch keine stable gab und da blieben wohl Reste...ist immer ein Risiko, aber muss auch wieder löschbar sein.
Der Rest war einfach leider dem dann doch nicht so perfekten System geschuldet, denn warum man das Verzeichnis nach Deinstallation manuell löschen musste, ist sicher auch vom Erfinder des Paketmanagers so nicht gedacht...Jedenfalls meine ich wieder etwas über die Umgebung gelernt zu haben...vielleicht verstehe ich ja auch mal die größeren Zusammenhänge von Linux und dem darin laufenden iobroker irgendwann. Danke nochmal und Gute Nacht!
-
@joergh sagte in [How-to] Node.js ioBroker richtig updaten-2021/22 Edition:
denn warum man das Verzeichnis nach Deinstallation manuell löschen musste
Das kam durch die doppelte Installation von npm zustande. Einmal hast du es via 'nodejs' über den Paketmanager des OS installiert und dann daran vorbei via npm selber nochmal global. Das sorgt natürlich für Huddel, weil dann im Dateisystem aufeinmal Dateien auftauchen, die apt/dpkg da nicht hingelegt hat.
Weil diese irgendwie duch äußere Einflüsse zustande gekommene Situation nicht vom Paketmanager ohne Rückfrage beim admin aufgelöst werden kann ist die manuelle Löschung dieser Dateien das einzig sinnvolle.
Als admin willst du kein Programm haben, das auf eigene Faust Dateien löscht, die nicht von ihm selber angelegt worden ist. So schlau sind die Manager dann nicht, insbesondere wenn von extern die eigene innere Struktur überschrieben wird.Works as designed.
Daher kann man nicht behaupten:
Der Rest war einfach leider dem dann doch nicht so perfekten System geschuldet,
Das System hat versucht das Beste aus dem dann doch nicht so perfekten Installationsgefrickel des Admins zu machen.
-
Habe soeben auf node.js 16 updated und meine ioBroker laufen soweit ok, mit der Ausnahme des mbus Adapters.
Da dieser nach meinem Verständnis den serialport benutzt habe ich auch wie Eingangs erwähnt versucht das Problem manuell zu lösen und im Verzeichnis/opt/iobroker/node_modules/node-mbus/node_modules
den Befehl:
npm install --production
ausgeführt. Da es nicht den gewünschten Effekt brachte, werde ich wohl etwas falsch gemacht haben.
Hat jemand eine Idee dazu ? -
Wie stellt sich ein (Neu)-Start des Adapters im log file dar?
-
host.iobroker-slave 2022-07-21 15:24:20.079 info Rebuild for adapter system.adapter.mbus.0 not successful in 3 tries. Adapter will not be restarted again. Please execute "npm install --production" in adapter directory manually. host.iobroker-slave 2022-07-21 15:24:20.079 error instance system.adapter.mbus.0 terminated with code 1 (JS_CONTROLLER_STOPPED) host.iobroker-slave 2022-07-21 15:24:20.079 error Caught by controller[0]: } host.iobroker-slave 2022-07-21 15:24:20.079 error Caught by controller[0]: code: 'ERR_DLOPEN_FAILED' host.iobroker-slave 2022-07-21 15:24:20.078 error Caught by controller[0]: at Module.load (node:internal/modules/cjs/loader:981:32) { host.iobroker-slave 2022-07-21 15:24:20.078 error Caught by controller[0]: at Object.Module._extensions..js (node:internal/modules/cjs/loader:1159:10) host.iobroker-slave 2022-07-21 15:24:20.078 error Caught by controller[0]: at Module._compile (node:internal/modules/cjs/loader:1105:14) host.iobroker-slave 2022-07-21 15:24:20.078 error Caught by controller[0]: at Object.<anonymous> (/opt/iobroker/node_modules/node-mbus/index.js:7:40) host.iobroker-slave 2022-07-21 15:24:20.075 error Caught by controller[0]: at bindings (/opt/iobroker/node_modules/node-mbus/node_modules/bindings/bindings.js:112:48) host.iobroker-slave 2022-07-21 15:24:20.075 error Caught by controller[0]: at require (node:internal/modules/cjs/helpers:102:18) host.iobroker-slave 2022-07-21 15:24:20.075 error Caught by controller[0]: at Module.require (node:internal/modules/cjs/loader:1005:19) host.iobroker-slave 2022-07-21 15:24:20.074 error Caught by controller[0]: at Function.Module._load (node:internal/modules/cjs/loader:822:12) host.iobroker-slave 2022-07-21 15:24:20.074 error Caught by controller[0]: at Module.load (node:internal/modules/cjs/loader:981:32) host.iobroker-slave 2022-07-21 15:24:20.074 error Caught by controller[0]: at Object.Module._extensions..node (node:internal/modules/cjs/loader:1189:18) host.iobroker-slave 2022-07-21 15:24:20.074 error Caught by controller[0]: the module (for instance, using `npm rebuild` or `npm install`). host.iobroker-slave 2022-07-21 15:24:20.074 error Caught by controller[0]: NODE_MODULE_VERSION 93. Please try re-compiling or re-installing host.iobroker-slave 2022-07-21 15:24:20.074 error Caught by controller[0]: NODE_MODULE_VERSION 83. This version of Node.js requires host.iobroker-slave 2022-07-21 15:24:20.074 error Caught by controller[0]: was compiled against a different Node.js version using host.iobroker-slave 2022-07-21 15:24:20.074 error Caught by controller[0]: Error: The module '/opt/iobroker/node_modules/node-mbus/build/Release/mbus.node' host.iobroker-slave 2022-07-21 15:24:20.073 error Caught by controller[0]: ^ host.iobroker-slave 2022-07-21 15:24:20.073 error Caught by controller[0]: throw e; host.iobroker-slave 2022-07-21 15:24:20.073 error Caught by controller[0]: /opt/iobroker/node_modules/node-mbus/node_modules/bindings/bindings.js:121
Dies ist mein output im log
-
@marlan99 sagte in [How-to] Node.js ioBroker richtig updaten-2021/22 Edition:
was compiled against a different Node.js version using
wie hast du denn den das update durchgeführt?
-
@homoran äähm, ich hatte vorher node.js 14 am laufen und das update gemäss erstem post hier auf node-js 16 gemacht ?
Oder ich verstehe deine Frage nicht ?
curl -sL https://deb.nodesource.com/setup_16.x | sudo -E bash - sudo apt install -y nodejs
nun sieht es so aus:
pi@iobroker-slave:~ $ node -v v16.16.0 pi@iobroker-slave:~ $ npm -v 8.11.0
-
Zeig mal den output zu
sudo ln -s /usr/bin/node /usr/bin/nodejs uname -m && type -P nodejs node npm && nodejs -v && node -v && npm -v && whoami && pwd && sudo apt update &> /dev/null && sudo apt update && apt policy nodejs
-
@thomas-braun said in [How-to] Node.js ioBroker richtig updaten-2021/22 Edition:
uname -m && type -P nodejs node npm && nodejs -v && node -v && npm -v && whoami && pwd && sudo apt update &> /dev/null && sudo apt update && apt policy nodejs
pi@iobroker-slave:~ $ sudo ln -s /usr/bin/node /usr/bin/nodejs ln: failed to create symbolic link '/usr/bin/nodejs': File exists pi@iobroker-slave:~ $ uname -m && type -P nodejs node npm && nodejs -v && node -v && npm -v && whoami && pwd && sudo apt update &> /dev/null && sudo apt update && apt policy nodejs armv7l /usr/bin/nodejs /usr/bin/node /usr/bin/npm v16.16.0 v16.16.0 8.11.0 pi /home/pi Hit:1 http://archive.raspberrypi.org/debian buster InRelease Hit:2 http://raspbian.raspberrypi.org/raspbian buster InRelease Hit:3 https://repos.influxdata.com/debian buster InRelease Hit:4 https://deb.nodesource.com/node_16.x buster InRelease Reading package lists... Done Building dependency tree Reading state information... Done 1 package can be upgraded. Run 'apt list --upgradable' to see it. nodejs: Installed: 16.16.0-deb-1nodesource1 Candidate: 16.16.0-deb-1nodesource1 Version table: *** 16.16.0-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
-
@marlan99 sagte in [How-to] Node.js ioBroker richtig updaten-2021/22 Edition:
/opt/iobroker/node_modules/node-mbus/
Naja in dem Fall meckert er über das native node_mbus und nicht über serialport ...
also (blöd das der rebuild net tut)
cd /opt/iobroker/node_modules/node-mbus/
npm rebuildoder wenn das nicht tat "npm install"
PS: Bzw kannst gern mal das volle ipbroker log aller drei rebuild versuche posten. Welcher jscontroller ist eim EInsatz?
-
@apollon77 sagte in [How-to] Node.js ioBroker richtig updaten-2021/22 Edition:
oder wenn das nicht tat "npm install"
Hat er ja schon gemacht. War die Ausführung korrekt?
@marlan99 sagte in [How-to] Node.js ioBroker richtig updaten-2021/22 Edition:
habe ich auch wie Eingangs erwähnt versucht das Problem manuell zu lösen und im Verzeichnis
/opt/iobroker/node_modules/node-mbus/node_modules
den Befehl:
npm install --production
ausgeführt -
@homoran Da ist ein node_modules am Ende zuviel ...
-
@apollon77 sagte in [How-to] Node.js ioBroker richtig updaten-2021/22 Edition:
@homoran Da ist ein node_modules am Ende zu viel ...
-
hierbei bekomme ich folgenden Output:
js-controller version : 4.0.23
npm rebuild
pi@iobroker-slave:/opt/iobroker/node_modules/node-mbus $ npm rebuild npm ERR! code 1 npm ERR! path /opt/iobroker/node_modules/node-mbus npm ERR! command failed npm ERR! command sh -c node-gyp rebuild npm ERR! node:internal/modules/cjs/loader:936 npm ERR! throw err; npm ERR! ^ npm ERR! npm ERR! Error: Cannot find module 'object-assign' npm ERR! Require stack: npm ERR! - /usr/lib/node_modules/npm/node_modules/node-gyp/node_modules/gauge/render-template.js npm ERR! - /usr/lib/node_modules/npm/node_modules/node-gyp/node_modules/gauge/plumbing.js npm ERR! - /usr/lib/node_modules/npm/node_modules/node-gyp/node_modules/gauge/index.js npm ERR! - /usr/lib/node_modules/npm/node_modules/node-gyp/node_modules/npmlog/log.js npm ERR! - /usr/lib/node_modules/npm/node_modules/node-gyp/lib/node-gyp.js npm ERR! - /usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js npm ERR! at Function.Module._resolveFilename (node:internal/modules/cjs/loader:933:15) npm ERR! at Function.Module._load (node:internal/modules/cjs/loader:778:27) npm ERR! at Module.require (node:internal/modules/cjs/loader:1005:19) npm ERR! at require (node:internal/modules/cjs/helpers:102:18) npm ERR! at Object.<anonymous> (/usr/lib/node_modules/npm/node_modules/node-gyp/node_modules/gauge/render-template.js:4:20) npm ERR! at Module._compile (node:internal/modules/cjs/loader:1105:14) npm ERR! at Object.Module._extensions..js (node:internal/modules/cjs/loader:1159:10) npm ERR! at Module.load (node:internal/modules/cjs/loader:981:32) npm ERR! at Function.Module._load (node:internal/modules/cjs/loader:822:12) npm ERR! at Module.require (node:internal/modules/cjs/loader:1005:19) { npm ERR! code: 'MODULE_NOT_FOUND', npm ERR! requireStack: [ npm ERR! '/usr/lib/node_modules/npm/node_modules/node-gyp/node_modules/gauge/render-template.js', npm ERR! '/usr/lib/node_modules/npm/node_modules/node-gyp/node_modules/gauge/plumbing.js', npm ERR! '/usr/lib/node_modules/npm/node_modules/node-gyp/node_modules/gauge/index.js', npm ERR! '/usr/lib/node_modules/npm/node_modules/node-gyp/node_modules/npmlog/log.js', npm ERR! '/usr/lib/node_modules/npm/node_modules/node-gyp/lib/node-gyp.js', npm ERR! '/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js' npm ERR! ] npm ERR! } npm ERR! A complete log of this run can be found in: npm ERR! /home/iobroker/.npm/_logs/2022-07-21T13_44_59_646Z-debug-0.log
bei "npm install" dann diesen output:
pi@iobroker-slave:/opt/iobroker/node_modules/node-mbus $ npm install > node-mbus@2.0.0 install > node-gyp rebuild node:internal/modules/cjs/loader:936 throw err; ^ Error: Cannot find module 'object-assign' Require stack: - /usr/lib/node_modules/npm/node_modules/node-gyp/node_modules/gauge/render-template.js - /usr/lib/node_modules/npm/node_modules/node-gyp/node_modules/gauge/plumbing.js - /usr/lib/node_modules/npm/node_modules/node-gyp/node_modules/gauge/index.js - /usr/lib/node_modules/npm/node_modules/node-gyp/node_modules/npmlog/log.js - /usr/lib/node_modules/npm/node_modules/node-gyp/lib/node-gyp.js - /usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js at Function.Module._resolveFilename (node:internal/modules/cjs/loader:933:15) at Function.Module._load (node:internal/modules/cjs/loader:778:27) at Module.require (node:internal/modules/cjs/loader:1005:19) at require (node:internal/modules/cjs/helpers:102:18) at Object.<anonymous> (/usr/lib/node_modules/npm/node_modules/node-gyp/node_modules/gauge/render-template.js:4:20) at Module._compile (node:internal/modules/cjs/loader:1105:14) at Object.Module._extensions..js (node:internal/modules/cjs/loader:1159:10) at Module.load (node:internal/modules/cjs/loader:981:32) at Function.Module._load (node:internal/modules/cjs/loader:822:12) at Module.require (node:internal/modules/cjs/loader:1005:19) { code: 'MODULE_NOT_FOUND', requireStack: [ '/usr/lib/node_modules/npm/node_modules/node-gyp/node_modules/gauge/render-template.js', '/usr/lib/node_modules/npm/node_modules/node-gyp/node_modules/gauge/plumbing.js', '/usr/lib/node_modules/npm/node_modules/node-gyp/node_modules/gauge/index.js', '/usr/lib/node_modules/npm/node_modules/node-gyp/node_modules/npmlog/log.js', '/usr/lib/node_modules/npm/node_modules/node-gyp/lib/node-gyp.js', '/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js' ] } npm ERR! code 1 npm ERR! path /opt/iobroker/node_modules/node-mbus npm ERR! command failed npm ERR! command sh -c node-gyp rebuild npm ERR! A complete log of this run can be found in: npm ERR! /home/iobroker/.npm/_logs/2022-07-21T13_45_14_702Z-debug-0.log
-
@marlan99 ok, dann 'back to node js installarions prüfung mit Thomas Braun " ... da ist was broken in deiner installation von nodejs/npm
-
-
@thomas-braun wenn ich richtig verstehe soll ich die beiden Befehle ausführen? Manuell habe ich nie was verändert. Das gesamte System wurde mit node.js 12 aufgesetzt, einmal vor Monaten auf node.js 14 updated (null Probleme) und heute auf node.js 16.
Habe soeben node.js nochmal komplett neu installiert und habe dieselben Fehlermeldung wie oben.Hier der output mit npm -g i npm
pi@iobroker-slave:/opt/iobroker/node_modules/node-mbus $ npm -g i npm npm WARN config global `--global`, `--local` are deprecated. Use `--location=global` instead. npm ERR! code EACCES npm ERR! syscall rename npm ERR! path /usr/lib/node_modules/npm npm ERR! dest /usr/lib/node_modules/.npm-qUIFSsiV npm ERR! errno -13 npm ERR! Error: EACCES: permission denied, rename '/usr/lib/node_modules/npm' -> '/usr/lib/node_modules/.npm-qUIFSsiV' npm ERR! [Error: EACCES: permission denied, rename '/usr/lib/node_modules/npm' -> '/usr/lib/node_modules/.npm-qUIFSsiV'] { npm ERR! errno: -13, npm ERR! code: 'EACCES', npm ERR! syscall: 'rename', npm ERR! path: '/usr/lib/node_modules/npm', npm ERR! dest: '/usr/lib/node_modules/.npm-qUIFSsiV' npm ERR! } npm ERR! npm ERR! The operation was rejected by your operating system. npm ERR! It is likely you do not have the permissions to access this file as the current user npm ERR! npm ERR! If you believe this might be a permissions issue, please double-check the npm ERR! permissions of the file and its containing directories, or try running npm ERR! the command again as root/Administrator. npm ERR! A complete log of this run can be found in: npm ERR! /home/iobroker/.npm/_logs/2022-07-21T14_13_53_258Z-debug-0.log
und hier der output vom Befehl apt policy npm node-gyp
pi@iobroker-slave:/opt/iobroker/node_modules/node-mbus $ apt policy npm node-gyp npm: Installed: (none) Candidate: 5.8.0+ds6-4+deb10u2 Version table: 5.8.0+ds6-4+deb10u2 500 500 http://raspbian.raspberrypi.org/raspbian buster/main armhf Packages node-gyp: Installed: (none) Candidate: 3.8.0-6 Version table: 3.8.0-6 500 500 http://raspbian.raspberrypi.org/raspbian buster/main armhf Packages
-
@marlan99 was machst du auf dem Slave?
bei richtiger Konfiguration des Multihost läuft alles über den Master
-
@homoran der heisst nur so. Sorry wenn das verwirrt.
Sind beides unabhängige ioBroker Instanzen auf je einem raspberry pi am laufen. Die handvoll Objekte welche ich auf dem anderen ioBroker benötige tausche ich via mqtt aus."Mein" Master ist ebenfalls bereits auf node.js 16 updated und dort laufen alle Adapter (auch der zigbee )
der zweite Raspi hier (mit namen slave) hat nur eine handvoll Adapter drauf und hier kann nur der mbus nicht mehr gestartet werden -
@marlan99 sagte in [How-to] Node.js ioBroker richtig updaten-2021/22 Edition:
Hier der output mit npm -g i npm
das sollzest du ja auch gar nicht machen! ist böse!
Deswegen hat @thomas-braun ja gefragt ob du das vielleicht mal benutzt hattest