NEWS
[gelöst] Canvas - compiled against a different Node.js vers,
-
So ging es schonmal nicht:
pi@raspberrypi:/opt/iobroker$ cd /opt/iobroker pi@raspberrypi:/opt/iobroker$ npm install canvas npm ERR! code 1 npm ERR! path /opt/iobroker/node_modules/canvas npm ERR! command failed npm ERR! command sh -c -- node-pre-gyp install --fallback-to-build --update-binary npm ERR! Failed to execute '/usr/bin/node /usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js clean' (1) npm ERR! node-pre-gyp info it worked if it ends with ok npm ERR! node-pre-gyp info using node-pre-gyp@1.0.10 npm ERR! node-pre-gyp info using node@16.18.1 | linux | arm npm ERR! node-pre-gyp http GET https://github.com/Automattic/node-canvas/releases/download/v2.10.2/canvas-v2.10.2-node-v93-linux-glibc-arm.tar.gz npm ERR! node-pre-gyp ERR! install response status 404 Not Found on https://github.com/Automattic/node-canvas/releases/download/v2.10.2/canvas-v2.10.2-node-v93-linux-glibc-arm.tar.gz npm ERR! node-pre-gyp WARN Pre-built binaries not installable for canvas@2.10.2 and node@16.18.1 (node-v93 ABI, glibc) (falling back to source compile with node-gyp) npm ERR! node-pre-gyp WARN Hit error response status 404 Not Found on https://github.com/Automattic/node-canvas/releases/download/v2.10.2/canvas-v2.10.2-node-v93-linux-glibc-arm.tar.gz npm ERR! node:internal/modules/cjs/loader:988 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:985:15) npm ERR! at Function.Module._load (node:internal/modules/cjs/loader:833:27)npm ERR! at Module.require (node:internal/modules/cjs/loader:1057:19) npm ERR! at require (node:internal/modules/cjs/helpers:103: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:1155:14) npm ERR! at Object.Module._extensions..js (node:internal/modules/cjs/loader:1209:10) npm ERR! at Module.load (node:internal/modules/cjs/loader:1033:32) npm ERR! at Function.Module._load (node:internal/modules/cjs/loader:868:12)npm ERR! at Module.require (node:internal/modules/cjs/loader:1057: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! node-pre-gyp ERR! build error npm ERR! node-pre-gyp ERR! stack Error: Failed to execute '/usr/bin/node /usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js clean' (1) npm ERR! node-pre-gyp ERR! stack at ChildProcess.<anonymous> (/opt/iobroker/node_modules/@mapbox/node-pre-gyp/lib/util/compile.js:89:23) npm ERR! node-pre-gyp ERR! stack at ChildProcess.emit (node:events:513:28) npm ERR! node-pre-gyp ERR! stack at maybeClose (node:internal/child_process:1100:16) npm ERR! node-pre-gyp ERR! stack at Process.ChildProcess._handle.onexit (node:internal/child_process:304:5) npm ERR! node-pre-gyp ERR! System Linux 5.10.103-v7l+ npm ERR! node-pre-gyp ERR! command "/usr/bin/node" "/opt/iobroker/node_modules/.bin/node-pre-gyp" "install" "--fallback-to-build" "--update-binary" npm ERR! node-pre-gyp ERR! cwd /opt/iobroker/node_modules/canvas npm ERR! node-pre-gyp ERR! node -v v16.18.1 npm ERR! node-pre-gyp ERR! node-pre-gyp -v v1.0.10 npm ERR! node-pre-gyp ERR! not ok npm ERR! A complete log of this run can be found in: npm ERR! /home/pi/.npm/_logs/2022-11-20T14_47_51_909Z-debug-0.log
Werde dann man den eCharts Adapter neu installieren
-
@mickym Auch nach der De- und Neuinstallation von eCahrts sieht es so aus:
pi@raspberrypi:/opt/iobroker$ npm list canvas iobroker.core@1.0.0 /opt/iobroker └── (empty) pi@raspberrypi:/opt/iobroker$ cd /opt/iobroker/node_modules pi@raspberrypi:/opt/iobroker/node_modules$ npm list canvas iobroker.core@1.0.0 /opt/iobroker └── (empty)
Skript gibt den selben Fehler aus:
Cannot find required modules: Error: Cannot find module 'canvas'Require stack:- /opt/iobroker/node_modules/iobroker.echarts/main.js
-
@anno171986 Na ich sehe Du bist auch noch auf buster und altem Betriebssystem. Man könnte nochmal versuchen, dass komplette nodejs runterzuschmeissen und neu zu installieren. Im Prinzip scheitert die Installation vom dem canvas ja an irgendeinem Module der node-js.
Wie gesagt - wenn Du eh nichts mehr zu verlieren hast, würde ich das noch versuchen.
Also iob stoppen - nodejs deinstallieren die ganzen npm Verzeichnisse manuell löschen und nodejs neu installieren.also
sudo apt remove nodejs
dann schauen, ob
nodejs -v npm -v
keine Ausgaben mehr liefert und unter /usr/lib keine node_modules Verzeichnis mehr gibt.
Wenn alles weg ist - dann mit
sudo apt install nodejs
wieder installieren
Ich habe den echarts Adapter auf meiner Testmaschine installiert ohne Probleme - das canvas Verzeichnis taucht dann auch auf. Also wie gesagt denke ich, dass da irgendwas uralt ist, deswegen bekommst Du da auch keinen schönen Baum hin. - Ab jetzt bin ich mit meiner Weisheit denke ich auch am Ende.
-
@mickym Hatte ein Systemupdate nach der Anleitungt versucht, klappt aber auch nicht
-
@anno171986 sagte in Canvas -> compiled against a different Node.js version:
@mickym Hatte ein Systemupdate nach der Anleitungt versucht, klappt aber auch nicht
Wie gesagt probier mal node-js neu zu installieren - iob stoppen.
Das gesamte Update von buster auf bullseye versuche lieber die Anleitung von @Thomas-Braun
https://forum.iobroker.net/topic/47213/upgrade-von-debian-10-buster-auf-11-bullseye
Ich hab zumindest auf meiner Testmaschine mal nodejs komplett runtergeschmissen und neu installiert und das hat funktioniert.
-
@mickym Das Update auf bullseye hat er jetzt nach der Anleitung von @Thomas-Braun thomas gemacht.
-
@anno171986 Na das ist doch schon mal gut - wie sieht die nodejs Version aus, hast Du die nodesource.list auch editiert
-
pi@raspberrypi:/opt/iobroker$ which nodejs && nodejs -v && which node && node -v && which npm && npm -v && apt policy nodejs /usr/bin/nodejs v16.18.1 /usr/bin/node v16.18.1 /usr/bin/npm 8.19.2 nodejs: Installiert: 16.18.1-deb-1nodesource1 Installationskandidat: 16.18.1-deb-1nodesource1 Versionstabelle: *** 16.18.1-deb-1nodesource1 500 500 https://deb.nodesource.com/node_16.x bullseye/main armhf Packages 100 /var/lib/dpkg/status 12.22.12~dfsg-1~deb11u1 500 500 http://raspbian.raspberrypi.org/raspbian bullseye/main armhf Packages
Das mit dem nodejs habe ich noch nicht gemacht. Habe jetzt öeider auch keine Zeit mehr. Muss dann morgen Abend weiter versuchen
-
@anno171986 Na vielleicht gehts ja auch so schon
-
@mickym Nein, leider nicht. Auch Neuinstallation von echarts ädnert nichts. Er scheint canvas nicht zu installieren und auch manuell geht es nicht.
Nach dem Update auf Bullseye geht mein SQl Adapter nicht mehr. Irgendwas ist mit der Datenbank "kaputt". Komme auch nicht mit HEidiSQL mehr drauf
-
@anno171986 Na dann musst erst mal schauen, ob die mysql Service läuft.
Schau mal
systemctl status mysql
-
@mickym said in Canvas -> compiled against a different Node.js version:
systemctl status mysql
pi@raspberrypi:~$ systemctl status mysql ● mariadb.service - MariaDB 10.5.15 database server Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2022-11-20 17:40:49 CET; 24min ago Docs: man:mariadbd(8) https://mariadb.com/kb/en/library/systemd/ Process: 545 ExecStartPre=/usr/bin/install -m 755 -o mysql -g root -d /var/run/mysqld (code=exited, status=0/SUCCESS) Process: 555 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS) Process: 576 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && VAR= || VAR=`cd /usr/bin/..; /usr/bin/galera_recovery`; [ $? -eq 0 ] && systemctl set> Process: 685 ExecStartPost=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS) Process: 688 ExecStartPost=/etc/mysql/debian-start (code=exited, status=0/SUCCESS) Main PID: 665 (mariadbd) Status: "Taking your SQL requests now..." Tasks: 8 (limit: 4915) CPU: 2.701s CGroup: /system.slice/mariadb.service └─665 /usr/sbin/mariadbd Nov 20 17:40:49 raspberrypi systemd[1]: Started MariaDB 10.5.15 database server. Nov 20 17:40:49 raspberrypi /etc/mysql/debian-start[690]: Upgrading MySQL tables if necessary. Nov 20 17:40:49 raspberrypi /etc/mysql/debian-start[693]: /usr/bin/mysql_upgrade: the '--basedir' option is always ignored Nov 20 17:40:49 raspberrypi /etc/mysql/debian-start[693]: Looking for 'mysql' as: /usr/bin/mysql Nov 20 17:40:49 raspberrypi /etc/mysql/debian-start[693]: Looking for 'mysqlcheck' as: /usr/bin/mysqlcheck Nov 20 17:40:49 raspberrypi /etc/mysql/debian-start[693]: This installation of MariaDB is already upgraded to 10.5.15-MariaDB. Nov 20 17:40:49 raspberrypi /etc/mysql/debian-start[693]: There is no need to run mysql_upgrade again for 10.5.15-MariaDB. Nov 20 17:40:49 raspberrypi /etc/mysql/debian-start[693]: You can use --force if you still want to run mysql_upgrade Nov 20 17:40:49 raspberrypi /etc/mysql/debian-start[701]: Checking for insecure root accounts. Nov 20 17:40:49 raspberrypi /etc/mysql/debian-start[705]: Triggering myisam-recover for all MyISAM tables and aria-recover for all Aria tables
Scheint zu laufen. Jetzt muss ich wirklich los
-
@anno171986 Ok - dann viel Spaß.
-
@mickym said in Canvas -> compiled against a different Node.js version:
@anno171986 Na ich sehe Du bist auch noch auf buster und altem Betriebssystem. Man könnte nochmal versuchen, dass komplette nodejs runterzuschmeissen und neu zu installieren. Im Prinzip scheitert die Installation vom dem canvas ja an irgendeinem Module der node-js.
Wie gesagt - wenn Du eh nichts mehr zu verlieren hast, würde ich das noch versuchen.
Also iob stoppen - nodejs deinstallieren die ganzen npm Verzeichnisse manuell löschen und nodejs neu installieren.also
sudo apt remove nodejs
dann schauen, ob
nodejs -v npm -v
keine Ausgaben mehr liefert und unter /usr/lib keine node_modules Verzeichnis mehr gibt.
Wenn alles weg ist - dann mit
sudo apt install nodejs
wieder installieren
Ich habe den echarts Adapter auf meiner Testmaschine installiert ohne Probleme - das canvas Verzeichnis taucht dann auch auf. Also wie gesagt denke ich, dass da irgendwas uralt ist, deswegen bekommst Du da auch keinen schönen Baum hin. - Ab jetzt bin ich mit meiner Weisheit denke ich auch am Ende.
Ich probiere jetzt erstmal das mit nodejs zu machen. DIe MySQl DAtenbank sehe ich erstmal als nachgelagert Problem an.
-
@mickym Es gibt noch einen node_modules Ordner in /usr/lib/.
pi@raspberrypi:/usr/lib/node_modules$ ls n node-gyp npm
Einfach mit
rm node_modules
löschen?
-
habe den Ordner /usr/lib/node_modules mittels
sudo rm -r node_modules
gelöscht.
danach dann nodejs neuinstalliert, eCharts Adapter deinstalliert, das hate etwas länger gedauert und er hat dabei auch was installiert. Habe dann aus Neugier mal nach canvas gesucht:pi@raspberrypi:/opt/iobroker$ npm ls canvas iobroker.core@1.0.0 /opt/iobroker ├─┬ iobroker.iot@1.11.9 │ ├── canvas@2.10.2 │ └─┬ jsdom@19.0.0 │ └── canvas@2.10.2 deduped └─┬ iobroker.mihome-vacuum@3.8.6 └── canvas@2.10.2 deduped
Und er hat es wohl installiert.
Danach dann den eCharts Adapter installiert. Canvas Abfrage sieht jetzt so aus:pi@raspberrypi:/opt/iobroker$ npm ls canvas iobroker.core@1.0.0 /opt/iobroker ├─┬ iobroker.echarts@1.0.12 │ ├── canvas@2.10.2 │ └─┬ jsdom@19.0.0 │ └── canvas@2.10.2 deduped ├─┬ iobroker.iot@1.11.9 │ └── canvas@2.10.2 deduped └─┬ iobroker.mihome-vacuum@3.8.6 └── canvas@2.10.2 deduped
Verglichen zu meiner Ausgangssituation hat er jetzt canvas von Version 2.9.3 auf 2.10.2 geupdated.
Das Skript zum erzeugen des Diagramm Bildes gestartet: Kein Fehler. Aber: Jetzt ist SQl das Problem, da keine SQL Adapter läuft ist auch kein Diagramm da. Hast du eine Idee wie ich die SQL DAtenbank wieder ans laufen bekomme?● mariadb.service - MariaDB 10.5.15 database server Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2022-11-20 17:40:49 CET; 16h ago Docs: man:mariadbd(8) https://mariadb.com/kb/en/library/systemd/ Process: 545 ExecStartPre=/usr/bin/install -m 755 -o mysql -g root -d /var/run/mysqld (code=exited, status=0/SUCCESS) Process: 555 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS) Process: 576 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && VAR= || VAR=`cd /usr/bin/..; /usr/bin/galera_recovery`; [ $?> Process: 685 ExecStartPost=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS) Process: 688 ExecStartPost=/etc/mysql/debian-start (code=exited, status=0/SUCCESS) Main PID: 665 (mariadbd) Status: "Taking your SQL requests now..." Tasks: 8 (limit: 4915) CPU: 17.251s CGroup: /system.slice/mariadb.service └─665 /usr/sbin/mariadbd Nov 20 17:40:49 raspberrypi systemd[1]: Started MariaDB 10.5.15 database server. Nov 20 17:40:49 raspberrypi /etc/mysql/debian-start[690]: Upgrading MySQL tables if necessary. Nov 20 17:40:49 raspberrypi /etc/mysql/debian-start[693]: /usr/bin/mysql_upgrade: the '--basedir' option is always ignored Nov 20 17:40:49 raspberrypi /etc/mysql/debian-start[693]: Looking for 'mysql' as: /usr/bin/mysql Nov 20 17:40:49 raspberrypi /etc/mysql/debian-start[693]: Looking for 'mysqlcheck' as: /usr/bin/mysqlcheck Nov 20 17:40:49 raspberrypi /etc/mysql/debian-start[693]: This installation of MariaDB is already upgraded to 10.5.15-MariaDB. Nov 20 17:40:49 raspberrypi /etc/mysql/debian-start[693]: There is no need to run mysql_upgrade again for 10.5.15-MariaDB. Nov 20 17:40:49 raspberrypi /etc/mysql/debian-start[693]: You can use --force if you still want to run mysql_upgrade Nov 20 17:40:49 raspberrypi /etc/mysql/debian-start[701]: Checking for insecure root accounts. Nov 20 17:40:49 raspberrypi /etc/mysql/debian-start[705]: Triggering myisam-recover for all MyISAM tables and aria-recover for all Aria tabl>~
-
@anno171986 na erst mal Glückwunsch, das war doch das Hauptproblem. Canvas unter dem charts Adapter ist genau richtig. Der MySQL läuft ja eigentlich. Hast du schon mal versucht, die Daten aus einem MySQL Backup wieder herzustellen? (aus backitup Adapter)? Ansonsten musst mal googlen, wie man das Root Passwort des MySQL Servers zurücksetzt, da muss man ein paar Befehle auf der Kommandozeile eingeben. Meines Erachtens läuft die Datenbank ja und du hast ein Problem mit der Authentifizierung.
-
@mickym Denke ich auch.
Wenn ich mich per Konsole einlogge scheint es zu gehen:
pi@raspberrypi:/opt/iobroker$ mariadb -u iobroker -p Enter password: Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 33 Server version: 10.5.15-MariaDB-0+deb11u1 Raspbian 11 Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]>
-
@anno171986 gib mal im Adapter nochmal das Passwort ein. Das muss gehen oder auch nochmal Port 3306 etc. du musst aber auch Mel schauen, ob du auf der Kommandozeile die iobroker Datenbank Listen kannst. Wie gesagt im backitup müsstest du doch MySQL Datenbanken gesondert gesichert haben.
-
@mickym Geht nicht. Bin jetzt via Konsole mal in die entsprechende DB gegangen, das geht.
MariaDB [(none)]> \u iobroker Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Database changed MariaDB [iobroker]> \s -------------- mariadb Ver 15.1 Distrib 10.5.15-MariaDB, for debian-linux-gnueabihf (armv8l) using EditLine wrapper Connection id: 33 Current database: iobroker Current user: iobroker@localhost SSL: Not in use Current pager: stdout Using outfile: '' Using delimiter: ; Server: MariaDB Server version: 10.5.15-MariaDB-0+deb11u1 Raspbian 11 Protocol version: 10 Connection: Localhost via UNIX socket Server characterset: utf8mb4 Db characterset: utf8 Client characterset: utf8 Conn. characterset: utf8 UNIX socket: /run/mysqld/mysqld.sock Uptime: 16 hours 47 min 30 sec Threads: 1 Questions: 71 Slow queries: 0 Opens: 38 Open tables: 31 Queries per second avg: 0.001
kann man sich anzeigen lassen, auf welchen port die DB hört?