NEWS
Kann keine Updates mehr installieren
-
Systemdata Bitte Ausfüllen Hardwaresystem: Pi3 Arbeitsspeicher: 4GB Festplattenart: SD-Karte Betriebssystem: Ubuntu Node-Version: 12.20.0 Nodejs-Version: 12.20.0 NPM-Version: 6.14.8 Installationsart: Manuell Image genutzt: Nein Ort/Name der Imagedatei: https://www.raspberrypi.org/software/operating-systems/#raspberry-pi-os-32-bit Ich wollte ein Adapter updaten und bekomme immer Fehlermeldungen. Vorher habe ich den MIHOME-VACUUM Adapter istalliert. Bei diesem musste ich folgendes machen.
Error at installation
if your installation runs in error. The canvas package could not be install
npm ERR! canvas@2.6.1 install: node-pre-gyp install --fallback-to-build npm ERR! Exit status 1
Please install canvas and the libs manually with:
sudo apt-get install build-essential libcairo2-dev libpango1.0-dev libjpeg-dev libgif-dev librsvg2-dev
sudo npm install canvas --unsafe-perm=truelogin as: pi pi@192.168.0.79's password: Linux HWS-Raum-ioBroker 5.4.79-v7l+ #1373 SMP Mon Nov 23 13:27:40 GMT 2020 armv7 l The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Wed Dec 30 20:34:41 2020 from 192.168.0.4 pi@HWS-Raum-ioBroker:~ $ sudo apt-get install build-essential libcairo2-dev libp ango1.0-dev libjpeg-dev libgif-dev librsvg2-dev Paketlisten werden gelesen... Fertig Abhängigkeitsbaum wird aufgebaut. Statusinformationen werden eingelesen.... Fertig build-essential ist schon die neueste Version (12.6). libgif-dev ist schon die neueste Version (5.1.4-3). libpango1.0-dev ist schon die neueste Version (1.42.4-8~deb10u1). librsvg2-dev ist schon die neueste Version (2.44.10-2.1+rpi1). libcairo2-dev ist schon die neueste Version (1.16.0-4+rpt1). Das folgende Paket wurde automatisch installiert und wird nicht mehr benötigt: rpi-eeprom-images Verwenden Sie »sudo apt autoremove«, um es zu entfernen. Die folgenden zusätzlichen Pakete werden installiert: libjpeg62-turbo-dev Die folgenden NEUEN Pakete werden installiert: libjpeg-dev libjpeg62-turbo-dev 0 aktualisiert, 2 neu installiert, 0 zu entfernen und 6 nicht aktualisiert. Es müssen 239 kB an Archiven heruntergeladen werden. Nach dieser Operation werden 546 kB Plattenplatz zusätzlich benutzt. Möchten Sie fortfahren? [J/n] J Holen:1 http://ftp.halifax.rwth-aachen.de/raspbian/raspbian buster/main armhf li bjpeg62-turbo-dev armhf 1:1.5.2-2+deb10u1 [181 kB] Holen:2 http://ftp.halifax.rwth-aachen.de/raspbian/raspbian buster/main armhf li bjpeg-dev all 1:1.5.2-2+deb10u1 [57,7 kB] Es wurden 239 kB in 0 s geholt (554 kB/s). Vormals nicht ausgewähltes Paket libjpeg62-turbo-dev:armhf wird gewählt. (Lese Datenbank ... 49228 Dateien und Verzeichnisse sind derzeit installiert.) Vorbereitung zum Entpacken von .../libjpeg62-turbo-dev_1%3a1.5.2-2+deb10u1_armhf .deb ... Entpacken von libjpeg62-turbo-dev:armhf (1:1.5.2-2+deb10u1) ... Vormals nicht ausgewähltes Paket libjpeg-dev wird gewählt. Vorbereitung zum Entpacken von .../libjpeg-dev_1%3a1.5.2-2+deb10u1_all.deb ... Entpacken von libjpeg-dev (1:1.5.2-2+deb10u1) ... libjpeg62-turbo-dev:armhf (1:1.5.2-2+deb10u1) wird eingerichtet ... libjpeg-dev (1:1.5.2-2+deb10u1) wird eingerichtet ... pi@HWS-Raum-ioBroker:~ $ sudo npm install canvas --unsafe-perm=true > canvas@2.6.1 install /home/pi/node_modules/canvas > node-pre-gyp install --fallback-to-build node-pre-gyp WARN Using needle for node-pre-gyp https download node-pre-gyp WARN Tried to download(404): https://github.com/node-gfx/node-canva s-prebuilt/releases/download/v2.6.1/canvas-v2.6.1-node-v72-linux-glibc-arm.tar.g z node-pre-gyp WARN Pre-built binaries not found for canvas@2.6.1 and node@12.20.0 (node-v72 ABI, glibc) (falling back to source compile with node-gyp) make: Verzeichnis „/home/pi/node_modules/canvas/build“ wird betreten SOLINK_MODULE(target) Release/obj.target/canvas-postbuild.node COPY Release/canvas-postbuild.node CXX(target) Release/obj.target/canvas/src/backend/Backend.o CXX(target) Release/obj.target/canvas/src/backend/ImageBackend.o CXX(target) Release/obj.target/canvas/src/backend/PdfBackend.o CXX(target) Release/obj.target/canvas/src/backend/SvgBackend.o CXX(target) Release/obj.target/canvas/src/bmp/BMPParser.o ../src/bmp/BMPParser.cc: In member function ‘void BMPParser::Parser::parse(uint8_t*, int, uint8_t*)’: ../src/bmp/BMPParser.cc:189:16: warning: comparison of integer expressions of different signedness: ‘in t’ and ‘unsigned int’ [-Wsign-compare] E(ptr - data > imgdOffset, "image data overlaps with another structure"); ~~~~~~~~~~~^~~~~~~~~~~~ ../src/bmp/BMPParser.cc:10:25: note: in definition of macro ‘E’ #define E(cond, msg) if(cond) return setErr(msg) ^~~~ ../src/bmp/BMPParser.cc:204:27: warning: comparison of integer expressions of different signedness: ‘ui nt32_t’ {aka ‘unsigned int’} and ‘int’ [-Wsign-compare] E(ptr - data + imgdSize > len, "not enough image data"); ~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../src/bmp/BMPParser.cc:10:25: note: in definition of macro ‘E’ #define E(cond, msg) if(cond) return setErr(msg) ^~~~ CXX(target) Release/obj.target/canvas/src/Backends.o CXX(target) Release/obj.target/canvas/src/Canvas.o ../src/Canvas.cc: In static member function ‘static Nan::NAN_METHOD_RETURN_TYPE Canvas::ToBuffer(Nan::NAN_METHOD_ARGS_TYPE)’: ../src/Canvas.cc:415:26: warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘unsigned int’} [-Wsign-compare] if (canvas->nBytes() > node::Buffer::kMaxLength) { ~~~~~~~~~~~~~~~~~^~~~~~ ../src/Canvas.cc:479:79: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] uv_queue_work(uv_default_loop(), req, ToPngBufferAsync, (uv_after_work_cb)ToBufferAsyncAfter); ^~~~~~~~~~~~~~~~~~ ../src/Canvas.cc:520:80: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] uv_queue_work(uv_default_loop(), req, ToJpegBufferAsync, (uv_after_work_cb)ToBufferAsyncAfter); ^~~~~~~~~~~~~~~~~~ CXX(target) Release/obj.target/canvas/src/CanvasGradient.o CXX(target) Release/obj.target/canvas/src/CanvasPattern.o CXX(target) Release/obj.target/canvas/src/CanvasRenderingContext2d.o CXX(target) Release/obj.target/canvas/src/closure.o CXX(target) Release/obj.target/canvas/src/color.o CXX(target) Release/obj.target/canvas/src/Image.o CXX(target) Release/obj.target/canvas/src/ImageData.o CXX(target) Release/obj.target/canvas/src/init.o In file included from ../../nan/nan.h:56, from ../src/backend/Backend.h:6, from ../src/Backends.h:3, from ../src/init.cc:17: /root/.cache/node-gyp/12.20.0/include/node/node.h:737:43: warning: cast between incompatible function types from ‘void (*)(Nan::ADDON_REGISTER_FUNCTION_ARGS_TYPE)’ {aka ‘void (*)(v8::Local<v8::Object>)’} to ‘node::addon_register_func’ {aka ‘void (*)(v8::Local<v8::Object>, v8::Local<v8::Value>, void*)’} [-Wcast-function-type] (node::addon_register_func) (regfunc), \ ^ /root/.cache/node-gyp/12.20.0/include/node/node.h:771:3: note: in expansion of macro ‘NODE_MODULE_X’ NODE_MODULE_X(modname, regfunc, NULL, 0) // NOLINT (readability/null_usage) ^~~~~~~~~~~~~ ../src/init.cc:88:1: note: in expansion of macro ‘NODE_MODULE’ NODE_MODULE(canvas, init); ^~~~~~~~~~~ CXX(target) Release/obj.target/canvas/src/register_font.o SOLINK_MODULE(target) Release/obj.target/canvas.node COPY Release/canvas.node make: Verzeichnis „/home/pi/node_modules/canvas/build“ wird verlassen npm WARN saveError ENOENT: no such file or directory, open '/home/pi/package.json' npm WARN enoent ENOENT: no such file or directory, open '/home/pi/package.json' npm WARN pi No description npm WARN pi No repository field. npm WARN pi No README data npm WARN pi No license field. + canvas@2.6.1 added 72 packages from 36 contributors and audited 72 packages in 63.288sEs kann sein das es damit zusammen hängt.
$ ./iobroker upgrade discovery Update discovery from @2.3.11 to @2.4.1 NPM version: 6.14.8 npm install iobroker.discovery@2.4.1 --loglevel error --prefix "/opt/iobroker" (System call) ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Open(Nan::NAN_METHOD_ARGS_TYPE)’:../src/serialport.cpp:78:69: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] uv_queue_work(uv_default_loop(), req, EIO_Open, (uv_after_work_cb)EIO_AfterOpen); ^~~~~~~~~~~~~ ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Update(Nan::NAN_METHOD_ARGS_TYPE)’:../src/serialport.cpp:135:71: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] uv_queue_work(uv_default_loop(), req, EIO_Update, (uv_after_work_cb)EIO_AfterUpdate); ^~~~~~~~~~~~~~~ ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Close(Nan::NAN_METHOD_ARGS_TYPE)’:../src/serialport.cpp:175:70: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] uv_queue_work(uv_default_loop(), req, EIO_Close, (uv_after_work_cb)EIO_AfterClose); ^~~~~~~~~~~~~~ ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Flush(Nan::NAN_METHOD_ARGS_TYPE)’:../src/serialport.cpp:215:70: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] uv_queue_work(uv_default_loop(), req, EIO_Flush, (uv_after_work_cb)EIO_AfterFlush); ^~~~~~~~~~~~~~ ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Set(Nan::NAN_METHOD_ARGS_TYPE)’:../src/serialport.cpp:270:68: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] uv_queue_work(uv_default_loop(), req, EIO_Set, (uv_after_work_cb)EIO_AfterSet); ^~~~~~~~~~~~ ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Get(Nan::NAN_METHOD_ARGS_TYPE)’:../src/serialport.cpp:314:68: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] uv_queue_work(uv_default_loop(), req, EIO_Get, (uv_after_work_cb)EIO_AfterGet); ^~~~~~~~~~~~ ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE GetBaudRate(Nan::NAN_METHOD_ARGS_TYPE)’:../src/serialport.cpp:363:76: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] uv_queue_work(uv_default_loop(), req, EIO_GetBaudRate, (uv_after_work_cb)EIO_AfterGetBaudRate); ^~~~~~~~~~~~~~~~~~~~ ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Drain(Nan::NAN_METHOD_ARGS_TYPE)’:../src/serialport.cpp:409:70: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] uv_queue_work(uv_default_loop(), req, EIO_Drain, (uv_after_work_cb)EIO_AfterDrain); ^~~~~~~~~~~~~~ ../src/serialport.cpp: At global scope:../src/serialport.cpp:430:28: warning: unnecessary parentheses in declaration of ‘ToParityEnum’ [-Wparentheses] SerialPortParity NAN_INLINE(ToParityEnum(const v8::Local<v8::String>& v8str)) { ^ ../src/serialport.cpp:449:30: warning: unnecessary parentheses in declaration of ‘ToStopBitEnum’ [-Wparentheses] SerialPortStopBits NAN_INLINE(ToStopBitEnum(double stopBits)) { ^ In file included from ../node_modules/nan/nan.h:56, from ../src/./serialport.h:6, from ../src/serialport.cpp:1:/home/iobroker/.cache/node-gyp/12.20.0/include/node/node.h:737:43: warning: cast between incompatible function types from ‘void (*)(Nan::ADDON_REGISTER_FUNCTION_ARGS_TYPE)’ {aka ‘void (*)(v8::Local<v8::Object>)’} to ‘node::addon_register_func’ {aka ‘void (*)(v8::Local<v8::Object>, v8::Local<v8::Value>, void*)’} [-Wcast-function-type] (node::addon_register_func) (regfunc), \ ^/home/iobroker/.cache/node-gyp/12.20.0/include/node/node.h:771:3: note: in expansion of macro ‘NODE_MODULE_X’ NODE_MODULE_X(modname, regfunc, NULL, 0) // NOLINT (readability/null_usage) ^~~~~~~~~~~~~../src/serialport.cpp:483:1: note: in expansion of macro ‘NODE_MODULE’ NODE_MODULE(serialport, init); ^~~~~~~~~~~ ../src/serialport_unix.cpp: In function ‘int setup(int, OpenBaton*)’:../src/serialport_unix.cpp:176:60: warning: ‘%s’ directive output may be truncated writing up to 1023 bytes into a region of size 1005 [-Wformat-truncation=] snprintf(data->errorString, sizeof(data->errorString), "Error %s Cannot open %s", strerror(errno), data->path); ^~~~~~~~~~~~~~~~~~~~~~~~~../src/serialport_unix.cpp:176:13: note: ‘snprintf’ output 20 or more bytes (assuming 1043) into a destination of size 1024 snprintf(data->errorString, sizeof(data->errorString), "Error %s Cannot open %s", strerror(errno), data->path); ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../src/serialport_unix.cpp: In function ‘void EIO_Open(uv_work_t*)’:../src/serialport_unix.cpp:86:60: warning: ‘%s’ directive output may be truncated writing up to 1023 bytes into a region of size 1003 [-Wformat-truncation=] snprintf(data->errorString, sizeof(data->errorString), "Error: %s, cannot open %s", strerror(errno), data->path); ^~~~~~~~~~~~~~~~~~~~~~~~~~~../src/serialport_unix.cpp:86:13: note: ‘snprintf’ output 22 or more bytes (assuming 1045) into a destination of size 1024 snprintf(data->errorString, sizeof(data->errorString), "Error: %s, cannot open %s", strerror(errno), data->path); ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from ../src/backend/Backend.h:6, from ../src/backend/Backend.cc:1:../../nan/nan.h: In function ‘void Nan::AsyncQueueWorker(Nan::AsyncWorker*)’:../../nan/nan.h:2298:62: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete) ^ In file included from ../src/backend/Backend.h:6, from ../src/backend/ImageBackend.h:3, from ../src/backend/ImageBackend.cc:1:../../nan/nan.h: In function ‘void Nan::AsyncQueueWorker(Nan::AsyncWorker*)’:../../nan/nan.h:2298:62: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete) ^ In file included from ../src/backend/PdfBackend.h:4, from ../src/backend/PdfBackend.cc:1:../src/backend/../closure.h:6:10: fatal error: jpeglib.h: Datei oder Verzeichnis nicht gefunden #include <jpeglib.h> ^~~~~~~~~~~ compilation terminated. make: *** [canvas.target.mk:156: Release/obj.target/canvas/src/backend/PdfBackend.o] Fehler 1 gyp ERR! build error gyp ERR! stack Error: `make` failed with exit code: 2gyp ERR! stack at ChildProcess.onExit (/usr/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23)gyp ERR! stack at ChildProcess.emit (events.js:314:20)gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:276:12)gyp ERR! System Linux 5.4.79-v7l+gyp ERR! command "/usr/bin/node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "build" "--fallback-to-build" "--module=/opt/iobroker/node_modules/canvas/build/Release/canvas.node" "--module_name=canvas" "--module_path=/opt/iobroker/node_modules/canvas/build/Release" "--napi_version=7" "--node_abi_napi=napi" "--napi_build_version=0" "--node_napi_label=node-v72"gyp ERR! cwd /opt/iobroker/node_modules/canvasgyp ERR! node -v v12.20.0gyp ERR! node-gyp -v v5.1.0gyp ERR! not ok node-pre-gyp ERR! build error 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 build --fallback-to-build --module=/opt/iobroker/node_modules/canvas/build/Release/canvas.node --module_name=canvas --module_path=/opt/iobroker/node_modules/canvas/build/Release --napi_version=7 --node_abi_napi=napi --napi_build_version=0 --node_napi_label=node-v72' (1)node-pre-gyp ERR! stack at ChildProcess.<anonymous> (/opt/iobroker/node_modules/node-pre-gyp/lib/util/compile.js:83:29)node-pre-gyp ERR! stack at ChildProcess.emit (events.js:314:20)node-pre-gyp ERR! stack at maybeClose (internal/child_process.js:1022:16)node-pre-gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:287:5)node-pre-gyp ERR! System Linux 5.4.79-v7l+node-pre-gyp ERR! command "/usr/bin/node" "/opt/iobroker/node_modules/.bin/node-pre-gyp" "install" "--fallback-to-build"node-pre-gyp ERR! cwd /opt/iobroker/node_modules/canvasnode-pre-gyp ERR! node -v v12.20.0node-pre-gyp ERR! node-pre-gyp -v v0.11.0node-pre-gyp ERR! not ok npm ERR! code ELIFECYCLEnpm ERR! errno 1 npm ERR! canvas@2.6.1 install: `node-pre-gyp install --fallback-to-build`npm ERR! Exit status 1npm ERR! npm ERR! Failed at the canvas@2.6.1 install script.npm ERR! This is probably not a problem with npm. There is likely additional logging output above. npm ERR! A complete log of this run can be found in:npm ERR! /home/iobroker/.npm/_logs/2020-12-30T19_45_50_833Z-debug.log upload [6] discovery.admin /opt/iobroker/node_modules/iobroker.discovery/admin/words.js words.js application/javascript upload [5] discovery.admin /opt/iobroker/node_modules/iobroker.discovery/admin/translateTools.js translateTools.js application/javascript upload [4] discovery.admin /opt/iobroker/node_modules/iobroker.discovery/admin/settings_m.html settings_m.html text/html upload [3] discovery.admin /opt/iobroker/node_modules/iobroker.discovery/admin/settings.html settings.html text/html upload [2] discovery.admin /opt/iobroker/node_modules/iobroker.discovery/admin/index_m.html index_m.html text/html upload [1] discovery.admin /opt/iobroker/node_modules/iobroker.discovery/admin/index.html index.html text/html upload [0] discovery.admin /opt/iobroker/node_modules/iobroker.discovery/admin/discovery.png discovery.png image/png Adapter "discovery" updated process exited with code 0 -
Systemdata Bitte Ausfüllen Hardwaresystem: Pi3 Arbeitsspeicher: 4GB Festplattenart: SD-Karte Betriebssystem: Ubuntu Node-Version: 12.20.0 Nodejs-Version: 12.20.0 NPM-Version: 6.14.8 Installationsart: Manuell Image genutzt: Nein Ort/Name der Imagedatei: https://www.raspberrypi.org/software/operating-systems/#raspberry-pi-os-32-bit Ich wollte ein Adapter updaten und bekomme immer Fehlermeldungen. Vorher habe ich den MIHOME-VACUUM Adapter istalliert. Bei diesem musste ich folgendes machen.
Error at installation
if your installation runs in error. The canvas package could not be install
npm ERR! canvas@2.6.1 install: node-pre-gyp install --fallback-to-build npm ERR! Exit status 1
Please install canvas and the libs manually with:
sudo apt-get install build-essential libcairo2-dev libpango1.0-dev libjpeg-dev libgif-dev librsvg2-dev
sudo npm install canvas --unsafe-perm=truelogin as: pi pi@192.168.0.79's password: Linux HWS-Raum-ioBroker 5.4.79-v7l+ #1373 SMP Mon Nov 23 13:27:40 GMT 2020 armv7 l The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Wed Dec 30 20:34:41 2020 from 192.168.0.4 pi@HWS-Raum-ioBroker:~ $ sudo apt-get install build-essential libcairo2-dev libp ango1.0-dev libjpeg-dev libgif-dev librsvg2-dev Paketlisten werden gelesen... Fertig Abhängigkeitsbaum wird aufgebaut. Statusinformationen werden eingelesen.... Fertig build-essential ist schon die neueste Version (12.6). libgif-dev ist schon die neueste Version (5.1.4-3). libpango1.0-dev ist schon die neueste Version (1.42.4-8~deb10u1). librsvg2-dev ist schon die neueste Version (2.44.10-2.1+rpi1). libcairo2-dev ist schon die neueste Version (1.16.0-4+rpt1). Das folgende Paket wurde automatisch installiert und wird nicht mehr benötigt: rpi-eeprom-images Verwenden Sie »sudo apt autoremove«, um es zu entfernen. Die folgenden zusätzlichen Pakete werden installiert: libjpeg62-turbo-dev Die folgenden NEUEN Pakete werden installiert: libjpeg-dev libjpeg62-turbo-dev 0 aktualisiert, 2 neu installiert, 0 zu entfernen und 6 nicht aktualisiert. Es müssen 239 kB an Archiven heruntergeladen werden. Nach dieser Operation werden 546 kB Plattenplatz zusätzlich benutzt. Möchten Sie fortfahren? [J/n] J Holen:1 http://ftp.halifax.rwth-aachen.de/raspbian/raspbian buster/main armhf li bjpeg62-turbo-dev armhf 1:1.5.2-2+deb10u1 [181 kB] Holen:2 http://ftp.halifax.rwth-aachen.de/raspbian/raspbian buster/main armhf li bjpeg-dev all 1:1.5.2-2+deb10u1 [57,7 kB] Es wurden 239 kB in 0 s geholt (554 kB/s). Vormals nicht ausgewähltes Paket libjpeg62-turbo-dev:armhf wird gewählt. (Lese Datenbank ... 49228 Dateien und Verzeichnisse sind derzeit installiert.) Vorbereitung zum Entpacken von .../libjpeg62-turbo-dev_1%3a1.5.2-2+deb10u1_armhf .deb ... Entpacken von libjpeg62-turbo-dev:armhf (1:1.5.2-2+deb10u1) ... Vormals nicht ausgewähltes Paket libjpeg-dev wird gewählt. Vorbereitung zum Entpacken von .../libjpeg-dev_1%3a1.5.2-2+deb10u1_all.deb ... Entpacken von libjpeg-dev (1:1.5.2-2+deb10u1) ... libjpeg62-turbo-dev:armhf (1:1.5.2-2+deb10u1) wird eingerichtet ... libjpeg-dev (1:1.5.2-2+deb10u1) wird eingerichtet ... pi@HWS-Raum-ioBroker:~ $ sudo npm install canvas --unsafe-perm=true > canvas@2.6.1 install /home/pi/node_modules/canvas > node-pre-gyp install --fallback-to-build node-pre-gyp WARN Using needle for node-pre-gyp https download node-pre-gyp WARN Tried to download(404): https://github.com/node-gfx/node-canva s-prebuilt/releases/download/v2.6.1/canvas-v2.6.1-node-v72-linux-glibc-arm.tar.g z node-pre-gyp WARN Pre-built binaries not found for canvas@2.6.1 and node@12.20.0 (node-v72 ABI, glibc) (falling back to source compile with node-gyp) make: Verzeichnis „/home/pi/node_modules/canvas/build“ wird betreten SOLINK_MODULE(target) Release/obj.target/canvas-postbuild.node COPY Release/canvas-postbuild.node CXX(target) Release/obj.target/canvas/src/backend/Backend.o CXX(target) Release/obj.target/canvas/src/backend/ImageBackend.o CXX(target) Release/obj.target/canvas/src/backend/PdfBackend.o CXX(target) Release/obj.target/canvas/src/backend/SvgBackend.o CXX(target) Release/obj.target/canvas/src/bmp/BMPParser.o ../src/bmp/BMPParser.cc: In member function ‘void BMPParser::Parser::parse(uint8_t*, int, uint8_t*)’: ../src/bmp/BMPParser.cc:189:16: warning: comparison of integer expressions of different signedness: ‘in t’ and ‘unsigned int’ [-Wsign-compare] E(ptr - data > imgdOffset, "image data overlaps with another structure"); ~~~~~~~~~~~^~~~~~~~~~~~ ../src/bmp/BMPParser.cc:10:25: note: in definition of macro ‘E’ #define E(cond, msg) if(cond) return setErr(msg) ^~~~ ../src/bmp/BMPParser.cc:204:27: warning: comparison of integer expressions of different signedness: ‘ui nt32_t’ {aka ‘unsigned int’} and ‘int’ [-Wsign-compare] E(ptr - data + imgdSize > len, "not enough image data"); ~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../src/bmp/BMPParser.cc:10:25: note: in definition of macro ‘E’ #define E(cond, msg) if(cond) return setErr(msg) ^~~~ CXX(target) Release/obj.target/canvas/src/Backends.o CXX(target) Release/obj.target/canvas/src/Canvas.o ../src/Canvas.cc: In static member function ‘static Nan::NAN_METHOD_RETURN_TYPE Canvas::ToBuffer(Nan::NAN_METHOD_ARGS_TYPE)’: ../src/Canvas.cc:415:26: warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘unsigned int’} [-Wsign-compare] if (canvas->nBytes() > node::Buffer::kMaxLength) { ~~~~~~~~~~~~~~~~~^~~~~~ ../src/Canvas.cc:479:79: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] uv_queue_work(uv_default_loop(), req, ToPngBufferAsync, (uv_after_work_cb)ToBufferAsyncAfter); ^~~~~~~~~~~~~~~~~~ ../src/Canvas.cc:520:80: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] uv_queue_work(uv_default_loop(), req, ToJpegBufferAsync, (uv_after_work_cb)ToBufferAsyncAfter); ^~~~~~~~~~~~~~~~~~ CXX(target) Release/obj.target/canvas/src/CanvasGradient.o CXX(target) Release/obj.target/canvas/src/CanvasPattern.o CXX(target) Release/obj.target/canvas/src/CanvasRenderingContext2d.o CXX(target) Release/obj.target/canvas/src/closure.o CXX(target) Release/obj.target/canvas/src/color.o CXX(target) Release/obj.target/canvas/src/Image.o CXX(target) Release/obj.target/canvas/src/ImageData.o CXX(target) Release/obj.target/canvas/src/init.o In file included from ../../nan/nan.h:56, from ../src/backend/Backend.h:6, from ../src/Backends.h:3, from ../src/init.cc:17: /root/.cache/node-gyp/12.20.0/include/node/node.h:737:43: warning: cast between incompatible function types from ‘void (*)(Nan::ADDON_REGISTER_FUNCTION_ARGS_TYPE)’ {aka ‘void (*)(v8::Local<v8::Object>)’} to ‘node::addon_register_func’ {aka ‘void (*)(v8::Local<v8::Object>, v8::Local<v8::Value>, void*)’} [-Wcast-function-type] (node::addon_register_func) (regfunc), \ ^ /root/.cache/node-gyp/12.20.0/include/node/node.h:771:3: note: in expansion of macro ‘NODE_MODULE_X’ NODE_MODULE_X(modname, regfunc, NULL, 0) // NOLINT (readability/null_usage) ^~~~~~~~~~~~~ ../src/init.cc:88:1: note: in expansion of macro ‘NODE_MODULE’ NODE_MODULE(canvas, init); ^~~~~~~~~~~ CXX(target) Release/obj.target/canvas/src/register_font.o SOLINK_MODULE(target) Release/obj.target/canvas.node COPY Release/canvas.node make: Verzeichnis „/home/pi/node_modules/canvas/build“ wird verlassen npm WARN saveError ENOENT: no such file or directory, open '/home/pi/package.json' npm WARN enoent ENOENT: no such file or directory, open '/home/pi/package.json' npm WARN pi No description npm WARN pi No repository field. npm WARN pi No README data npm WARN pi No license field. + canvas@2.6.1 added 72 packages from 36 contributors and audited 72 packages in 63.288sEs kann sein das es damit zusammen hängt.
$ ./iobroker upgrade discovery Update discovery from @2.3.11 to @2.4.1 NPM version: 6.14.8 npm install iobroker.discovery@2.4.1 --loglevel error --prefix "/opt/iobroker" (System call) ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Open(Nan::NAN_METHOD_ARGS_TYPE)’:../src/serialport.cpp:78:69: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] uv_queue_work(uv_default_loop(), req, EIO_Open, (uv_after_work_cb)EIO_AfterOpen); ^~~~~~~~~~~~~ ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Update(Nan::NAN_METHOD_ARGS_TYPE)’:../src/serialport.cpp:135:71: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] uv_queue_work(uv_default_loop(), req, EIO_Update, (uv_after_work_cb)EIO_AfterUpdate); ^~~~~~~~~~~~~~~ ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Close(Nan::NAN_METHOD_ARGS_TYPE)’:../src/serialport.cpp:175:70: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] uv_queue_work(uv_default_loop(), req, EIO_Close, (uv_after_work_cb)EIO_AfterClose); ^~~~~~~~~~~~~~ ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Flush(Nan::NAN_METHOD_ARGS_TYPE)’:../src/serialport.cpp:215:70: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] uv_queue_work(uv_default_loop(), req, EIO_Flush, (uv_after_work_cb)EIO_AfterFlush); ^~~~~~~~~~~~~~ ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Set(Nan::NAN_METHOD_ARGS_TYPE)’:../src/serialport.cpp:270:68: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] uv_queue_work(uv_default_loop(), req, EIO_Set, (uv_after_work_cb)EIO_AfterSet); ^~~~~~~~~~~~ ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Get(Nan::NAN_METHOD_ARGS_TYPE)’:../src/serialport.cpp:314:68: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] uv_queue_work(uv_default_loop(), req, EIO_Get, (uv_after_work_cb)EIO_AfterGet); ^~~~~~~~~~~~ ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE GetBaudRate(Nan::NAN_METHOD_ARGS_TYPE)’:../src/serialport.cpp:363:76: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] uv_queue_work(uv_default_loop(), req, EIO_GetBaudRate, (uv_after_work_cb)EIO_AfterGetBaudRate); ^~~~~~~~~~~~~~~~~~~~ ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Drain(Nan::NAN_METHOD_ARGS_TYPE)’:../src/serialport.cpp:409:70: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] uv_queue_work(uv_default_loop(), req, EIO_Drain, (uv_after_work_cb)EIO_AfterDrain); ^~~~~~~~~~~~~~ ../src/serialport.cpp: At global scope:../src/serialport.cpp:430:28: warning: unnecessary parentheses in declaration of ‘ToParityEnum’ [-Wparentheses] SerialPortParity NAN_INLINE(ToParityEnum(const v8::Local<v8::String>& v8str)) { ^ ../src/serialport.cpp:449:30: warning: unnecessary parentheses in declaration of ‘ToStopBitEnum’ [-Wparentheses] SerialPortStopBits NAN_INLINE(ToStopBitEnum(double stopBits)) { ^ In file included from ../node_modules/nan/nan.h:56, from ../src/./serialport.h:6, from ../src/serialport.cpp:1:/home/iobroker/.cache/node-gyp/12.20.0/include/node/node.h:737:43: warning: cast between incompatible function types from ‘void (*)(Nan::ADDON_REGISTER_FUNCTION_ARGS_TYPE)’ {aka ‘void (*)(v8::Local<v8::Object>)’} to ‘node::addon_register_func’ {aka ‘void (*)(v8::Local<v8::Object>, v8::Local<v8::Value>, void*)’} [-Wcast-function-type] (node::addon_register_func) (regfunc), \ ^/home/iobroker/.cache/node-gyp/12.20.0/include/node/node.h:771:3: note: in expansion of macro ‘NODE_MODULE_X’ NODE_MODULE_X(modname, regfunc, NULL, 0) // NOLINT (readability/null_usage) ^~~~~~~~~~~~~../src/serialport.cpp:483:1: note: in expansion of macro ‘NODE_MODULE’ NODE_MODULE(serialport, init); ^~~~~~~~~~~ ../src/serialport_unix.cpp: In function ‘int setup(int, OpenBaton*)’:../src/serialport_unix.cpp:176:60: warning: ‘%s’ directive output may be truncated writing up to 1023 bytes into a region of size 1005 [-Wformat-truncation=] snprintf(data->errorString, sizeof(data->errorString), "Error %s Cannot open %s", strerror(errno), data->path); ^~~~~~~~~~~~~~~~~~~~~~~~~../src/serialport_unix.cpp:176:13: note: ‘snprintf’ output 20 or more bytes (assuming 1043) into a destination of size 1024 snprintf(data->errorString, sizeof(data->errorString), "Error %s Cannot open %s", strerror(errno), data->path); ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../src/serialport_unix.cpp: In function ‘void EIO_Open(uv_work_t*)’:../src/serialport_unix.cpp:86:60: warning: ‘%s’ directive output may be truncated writing up to 1023 bytes into a region of size 1003 [-Wformat-truncation=] snprintf(data->errorString, sizeof(data->errorString), "Error: %s, cannot open %s", strerror(errno), data->path); ^~~~~~~~~~~~~~~~~~~~~~~~~~~../src/serialport_unix.cpp:86:13: note: ‘snprintf’ output 22 or more bytes (assuming 1045) into a destination of size 1024 snprintf(data->errorString, sizeof(data->errorString), "Error: %s, cannot open %s", strerror(errno), data->path); ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from ../src/backend/Backend.h:6, from ../src/backend/Backend.cc:1:../../nan/nan.h: In function ‘void Nan::AsyncQueueWorker(Nan::AsyncWorker*)’:../../nan/nan.h:2298:62: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete) ^ In file included from ../src/backend/Backend.h:6, from ../src/backend/ImageBackend.h:3, from ../src/backend/ImageBackend.cc:1:../../nan/nan.h: In function ‘void Nan::AsyncQueueWorker(Nan::AsyncWorker*)’:../../nan/nan.h:2298:62: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete) ^ In file included from ../src/backend/PdfBackend.h:4, from ../src/backend/PdfBackend.cc:1:../src/backend/../closure.h:6:10: fatal error: jpeglib.h: Datei oder Verzeichnis nicht gefunden #include <jpeglib.h> ^~~~~~~~~~~ compilation terminated. make: *** [canvas.target.mk:156: Release/obj.target/canvas/src/backend/PdfBackend.o] Fehler 1 gyp ERR! build error gyp ERR! stack Error: `make` failed with exit code: 2gyp ERR! stack at ChildProcess.onExit (/usr/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23)gyp ERR! stack at ChildProcess.emit (events.js:314:20)gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:276:12)gyp ERR! System Linux 5.4.79-v7l+gyp ERR! command "/usr/bin/node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "build" "--fallback-to-build" "--module=/opt/iobroker/node_modules/canvas/build/Release/canvas.node" "--module_name=canvas" "--module_path=/opt/iobroker/node_modules/canvas/build/Release" "--napi_version=7" "--node_abi_napi=napi" "--napi_build_version=0" "--node_napi_label=node-v72"gyp ERR! cwd /opt/iobroker/node_modules/canvasgyp ERR! node -v v12.20.0gyp ERR! node-gyp -v v5.1.0gyp ERR! not ok node-pre-gyp ERR! build error 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 build --fallback-to-build --module=/opt/iobroker/node_modules/canvas/build/Release/canvas.node --module_name=canvas --module_path=/opt/iobroker/node_modules/canvas/build/Release --napi_version=7 --node_abi_napi=napi --napi_build_version=0 --node_napi_label=node-v72' (1)node-pre-gyp ERR! stack at ChildProcess.<anonymous> (/opt/iobroker/node_modules/node-pre-gyp/lib/util/compile.js:83:29)node-pre-gyp ERR! stack at ChildProcess.emit (events.js:314:20)node-pre-gyp ERR! stack at maybeClose (internal/child_process.js:1022:16)node-pre-gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:287:5)node-pre-gyp ERR! System Linux 5.4.79-v7l+node-pre-gyp ERR! command "/usr/bin/node" "/opt/iobroker/node_modules/.bin/node-pre-gyp" "install" "--fallback-to-build"node-pre-gyp ERR! cwd /opt/iobroker/node_modules/canvasnode-pre-gyp ERR! node -v v12.20.0node-pre-gyp ERR! node-pre-gyp -v v0.11.0node-pre-gyp ERR! not ok npm ERR! code ELIFECYCLEnpm ERR! errno 1 npm ERR! canvas@2.6.1 install: `node-pre-gyp install --fallback-to-build`npm ERR! Exit status 1npm ERR! npm ERR! Failed at the canvas@2.6.1 install script.npm ERR! This is probably not a problem with npm. There is likely additional logging output above. npm ERR! A complete log of this run can be found in:npm ERR! /home/iobroker/.npm/_logs/2020-12-30T19_45_50_833Z-debug.log upload [6] discovery.admin /opt/iobroker/node_modules/iobroker.discovery/admin/words.js words.js application/javascript upload [5] discovery.admin /opt/iobroker/node_modules/iobroker.discovery/admin/translateTools.js translateTools.js application/javascript upload [4] discovery.admin /opt/iobroker/node_modules/iobroker.discovery/admin/settings_m.html settings_m.html text/html upload [3] discovery.admin /opt/iobroker/node_modules/iobroker.discovery/admin/settings.html settings.html text/html upload [2] discovery.admin /opt/iobroker/node_modules/iobroker.discovery/admin/index_m.html index_m.html text/html upload [1] discovery.admin /opt/iobroker/node_modules/iobroker.discovery/admin/index.html index.html text/html upload [0] discovery.admin /opt/iobroker/node_modules/iobroker.discovery/admin/discovery.png discovery.png image/png Adapter "discovery" updated process exited with code 0@fenger Mehrere Fehler.
Halte dein System auf Stand.sudo apt update sudo apt dist-upgrade sudo reboot sudo apt autoremoveDanach sollten alle Pakete aktuell sein und bei
sudo apt updatekeine Updates mehr ausstehen.
Dann stehst du im falschen Verzeichnis.
cd /opt/iobrokerDann dort per
npm install canvas --productiondas Modul nachinstallieren. Dabei wird KEIN sudo verwendet!
-
Systemdata Bitte Ausfüllen Hardwaresystem: Pi3 Arbeitsspeicher: 4GB Festplattenart: SD-Karte Betriebssystem: Ubuntu Node-Version: 12.20.0 Nodejs-Version: 12.20.0 NPM-Version: 6.14.8 Installationsart: Manuell Image genutzt: Nein Ort/Name der Imagedatei: https://www.raspberrypi.org/software/operating-systems/#raspberry-pi-os-32-bit Ich wollte ein Adapter updaten und bekomme immer Fehlermeldungen. Vorher habe ich den MIHOME-VACUUM Adapter istalliert. Bei diesem musste ich folgendes machen.
Error at installation
if your installation runs in error. The canvas package could not be install
npm ERR! canvas@2.6.1 install: node-pre-gyp install --fallback-to-build npm ERR! Exit status 1
Please install canvas and the libs manually with:
sudo apt-get install build-essential libcairo2-dev libpango1.0-dev libjpeg-dev libgif-dev librsvg2-dev
sudo npm install canvas --unsafe-perm=truelogin as: pi pi@192.168.0.79's password: Linux HWS-Raum-ioBroker 5.4.79-v7l+ #1373 SMP Mon Nov 23 13:27:40 GMT 2020 armv7 l The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Wed Dec 30 20:34:41 2020 from 192.168.0.4 pi@HWS-Raum-ioBroker:~ $ sudo apt-get install build-essential libcairo2-dev libp ango1.0-dev libjpeg-dev libgif-dev librsvg2-dev Paketlisten werden gelesen... Fertig Abhängigkeitsbaum wird aufgebaut. Statusinformationen werden eingelesen.... Fertig build-essential ist schon die neueste Version (12.6). libgif-dev ist schon die neueste Version (5.1.4-3). libpango1.0-dev ist schon die neueste Version (1.42.4-8~deb10u1). librsvg2-dev ist schon die neueste Version (2.44.10-2.1+rpi1). libcairo2-dev ist schon die neueste Version (1.16.0-4+rpt1). Das folgende Paket wurde automatisch installiert und wird nicht mehr benötigt: rpi-eeprom-images Verwenden Sie »sudo apt autoremove«, um es zu entfernen. Die folgenden zusätzlichen Pakete werden installiert: libjpeg62-turbo-dev Die folgenden NEUEN Pakete werden installiert: libjpeg-dev libjpeg62-turbo-dev 0 aktualisiert, 2 neu installiert, 0 zu entfernen und 6 nicht aktualisiert. Es müssen 239 kB an Archiven heruntergeladen werden. Nach dieser Operation werden 546 kB Plattenplatz zusätzlich benutzt. Möchten Sie fortfahren? [J/n] J Holen:1 http://ftp.halifax.rwth-aachen.de/raspbian/raspbian buster/main armhf li bjpeg62-turbo-dev armhf 1:1.5.2-2+deb10u1 [181 kB] Holen:2 http://ftp.halifax.rwth-aachen.de/raspbian/raspbian buster/main armhf li bjpeg-dev all 1:1.5.2-2+deb10u1 [57,7 kB] Es wurden 239 kB in 0 s geholt (554 kB/s). Vormals nicht ausgewähltes Paket libjpeg62-turbo-dev:armhf wird gewählt. (Lese Datenbank ... 49228 Dateien und Verzeichnisse sind derzeit installiert.) Vorbereitung zum Entpacken von .../libjpeg62-turbo-dev_1%3a1.5.2-2+deb10u1_armhf .deb ... Entpacken von libjpeg62-turbo-dev:armhf (1:1.5.2-2+deb10u1) ... Vormals nicht ausgewähltes Paket libjpeg-dev wird gewählt. Vorbereitung zum Entpacken von .../libjpeg-dev_1%3a1.5.2-2+deb10u1_all.deb ... Entpacken von libjpeg-dev (1:1.5.2-2+deb10u1) ... libjpeg62-turbo-dev:armhf (1:1.5.2-2+deb10u1) wird eingerichtet ... libjpeg-dev (1:1.5.2-2+deb10u1) wird eingerichtet ... pi@HWS-Raum-ioBroker:~ $ sudo npm install canvas --unsafe-perm=true > canvas@2.6.1 install /home/pi/node_modules/canvas > node-pre-gyp install --fallback-to-build node-pre-gyp WARN Using needle for node-pre-gyp https download node-pre-gyp WARN Tried to download(404): https://github.com/node-gfx/node-canva s-prebuilt/releases/download/v2.6.1/canvas-v2.6.1-node-v72-linux-glibc-arm.tar.g z node-pre-gyp WARN Pre-built binaries not found for canvas@2.6.1 and node@12.20.0 (node-v72 ABI, glibc) (falling back to source compile with node-gyp) make: Verzeichnis „/home/pi/node_modules/canvas/build“ wird betreten SOLINK_MODULE(target) Release/obj.target/canvas-postbuild.node COPY Release/canvas-postbuild.node CXX(target) Release/obj.target/canvas/src/backend/Backend.o CXX(target) Release/obj.target/canvas/src/backend/ImageBackend.o CXX(target) Release/obj.target/canvas/src/backend/PdfBackend.o CXX(target) Release/obj.target/canvas/src/backend/SvgBackend.o CXX(target) Release/obj.target/canvas/src/bmp/BMPParser.o ../src/bmp/BMPParser.cc: In member function ‘void BMPParser::Parser::parse(uint8_t*, int, uint8_t*)’: ../src/bmp/BMPParser.cc:189:16: warning: comparison of integer expressions of different signedness: ‘in t’ and ‘unsigned int’ [-Wsign-compare] E(ptr - data > imgdOffset, "image data overlaps with another structure"); ~~~~~~~~~~~^~~~~~~~~~~~ ../src/bmp/BMPParser.cc:10:25: note: in definition of macro ‘E’ #define E(cond, msg) if(cond) return setErr(msg) ^~~~ ../src/bmp/BMPParser.cc:204:27: warning: comparison of integer expressions of different signedness: ‘ui nt32_t’ {aka ‘unsigned int’} and ‘int’ [-Wsign-compare] E(ptr - data + imgdSize > len, "not enough image data"); ~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../src/bmp/BMPParser.cc:10:25: note: in definition of macro ‘E’ #define E(cond, msg) if(cond) return setErr(msg) ^~~~ CXX(target) Release/obj.target/canvas/src/Backends.o CXX(target) Release/obj.target/canvas/src/Canvas.o ../src/Canvas.cc: In static member function ‘static Nan::NAN_METHOD_RETURN_TYPE Canvas::ToBuffer(Nan::NAN_METHOD_ARGS_TYPE)’: ../src/Canvas.cc:415:26: warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘unsigned int’} [-Wsign-compare] if (canvas->nBytes() > node::Buffer::kMaxLength) { ~~~~~~~~~~~~~~~~~^~~~~~ ../src/Canvas.cc:479:79: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] uv_queue_work(uv_default_loop(), req, ToPngBufferAsync, (uv_after_work_cb)ToBufferAsyncAfter); ^~~~~~~~~~~~~~~~~~ ../src/Canvas.cc:520:80: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] uv_queue_work(uv_default_loop(), req, ToJpegBufferAsync, (uv_after_work_cb)ToBufferAsyncAfter); ^~~~~~~~~~~~~~~~~~ CXX(target) Release/obj.target/canvas/src/CanvasGradient.o CXX(target) Release/obj.target/canvas/src/CanvasPattern.o CXX(target) Release/obj.target/canvas/src/CanvasRenderingContext2d.o CXX(target) Release/obj.target/canvas/src/closure.o CXX(target) Release/obj.target/canvas/src/color.o CXX(target) Release/obj.target/canvas/src/Image.o CXX(target) Release/obj.target/canvas/src/ImageData.o CXX(target) Release/obj.target/canvas/src/init.o In file included from ../../nan/nan.h:56, from ../src/backend/Backend.h:6, from ../src/Backends.h:3, from ../src/init.cc:17: /root/.cache/node-gyp/12.20.0/include/node/node.h:737:43: warning: cast between incompatible function types from ‘void (*)(Nan::ADDON_REGISTER_FUNCTION_ARGS_TYPE)’ {aka ‘void (*)(v8::Local<v8::Object>)’} to ‘node::addon_register_func’ {aka ‘void (*)(v8::Local<v8::Object>, v8::Local<v8::Value>, void*)’} [-Wcast-function-type] (node::addon_register_func) (regfunc), \ ^ /root/.cache/node-gyp/12.20.0/include/node/node.h:771:3: note: in expansion of macro ‘NODE_MODULE_X’ NODE_MODULE_X(modname, regfunc, NULL, 0) // NOLINT (readability/null_usage) ^~~~~~~~~~~~~ ../src/init.cc:88:1: note: in expansion of macro ‘NODE_MODULE’ NODE_MODULE(canvas, init); ^~~~~~~~~~~ CXX(target) Release/obj.target/canvas/src/register_font.o SOLINK_MODULE(target) Release/obj.target/canvas.node COPY Release/canvas.node make: Verzeichnis „/home/pi/node_modules/canvas/build“ wird verlassen npm WARN saveError ENOENT: no such file or directory, open '/home/pi/package.json' npm WARN enoent ENOENT: no such file or directory, open '/home/pi/package.json' npm WARN pi No description npm WARN pi No repository field. npm WARN pi No README data npm WARN pi No license field. + canvas@2.6.1 added 72 packages from 36 contributors and audited 72 packages in 63.288sEs kann sein das es damit zusammen hängt.
$ ./iobroker upgrade discovery Update discovery from @2.3.11 to @2.4.1 NPM version: 6.14.8 npm install iobroker.discovery@2.4.1 --loglevel error --prefix "/opt/iobroker" (System call) ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Open(Nan::NAN_METHOD_ARGS_TYPE)’:../src/serialport.cpp:78:69: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] uv_queue_work(uv_default_loop(), req, EIO_Open, (uv_after_work_cb)EIO_AfterOpen); ^~~~~~~~~~~~~ ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Update(Nan::NAN_METHOD_ARGS_TYPE)’:../src/serialport.cpp:135:71: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] uv_queue_work(uv_default_loop(), req, EIO_Update, (uv_after_work_cb)EIO_AfterUpdate); ^~~~~~~~~~~~~~~ ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Close(Nan::NAN_METHOD_ARGS_TYPE)’:../src/serialport.cpp:175:70: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] uv_queue_work(uv_default_loop(), req, EIO_Close, (uv_after_work_cb)EIO_AfterClose); ^~~~~~~~~~~~~~ ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Flush(Nan::NAN_METHOD_ARGS_TYPE)’:../src/serialport.cpp:215:70: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] uv_queue_work(uv_default_loop(), req, EIO_Flush, (uv_after_work_cb)EIO_AfterFlush); ^~~~~~~~~~~~~~ ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Set(Nan::NAN_METHOD_ARGS_TYPE)’:../src/serialport.cpp:270:68: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] uv_queue_work(uv_default_loop(), req, EIO_Set, (uv_after_work_cb)EIO_AfterSet); ^~~~~~~~~~~~ ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Get(Nan::NAN_METHOD_ARGS_TYPE)’:../src/serialport.cpp:314:68: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] uv_queue_work(uv_default_loop(), req, EIO_Get, (uv_after_work_cb)EIO_AfterGet); ^~~~~~~~~~~~ ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE GetBaudRate(Nan::NAN_METHOD_ARGS_TYPE)’:../src/serialport.cpp:363:76: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] uv_queue_work(uv_default_loop(), req, EIO_GetBaudRate, (uv_after_work_cb)EIO_AfterGetBaudRate); ^~~~~~~~~~~~~~~~~~~~ ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Drain(Nan::NAN_METHOD_ARGS_TYPE)’:../src/serialport.cpp:409:70: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] uv_queue_work(uv_default_loop(), req, EIO_Drain, (uv_after_work_cb)EIO_AfterDrain); ^~~~~~~~~~~~~~ ../src/serialport.cpp: At global scope:../src/serialport.cpp:430:28: warning: unnecessary parentheses in declaration of ‘ToParityEnum’ [-Wparentheses] SerialPortParity NAN_INLINE(ToParityEnum(const v8::Local<v8::String>& v8str)) { ^ ../src/serialport.cpp:449:30: warning: unnecessary parentheses in declaration of ‘ToStopBitEnum’ [-Wparentheses] SerialPortStopBits NAN_INLINE(ToStopBitEnum(double stopBits)) { ^ In file included from ../node_modules/nan/nan.h:56, from ../src/./serialport.h:6, from ../src/serialport.cpp:1:/home/iobroker/.cache/node-gyp/12.20.0/include/node/node.h:737:43: warning: cast between incompatible function types from ‘void (*)(Nan::ADDON_REGISTER_FUNCTION_ARGS_TYPE)’ {aka ‘void (*)(v8::Local<v8::Object>)’} to ‘node::addon_register_func’ {aka ‘void (*)(v8::Local<v8::Object>, v8::Local<v8::Value>, void*)’} [-Wcast-function-type] (node::addon_register_func) (regfunc), \ ^/home/iobroker/.cache/node-gyp/12.20.0/include/node/node.h:771:3: note: in expansion of macro ‘NODE_MODULE_X’ NODE_MODULE_X(modname, regfunc, NULL, 0) // NOLINT (readability/null_usage) ^~~~~~~~~~~~~../src/serialport.cpp:483:1: note: in expansion of macro ‘NODE_MODULE’ NODE_MODULE(serialport, init); ^~~~~~~~~~~ ../src/serialport_unix.cpp: In function ‘int setup(int, OpenBaton*)’:../src/serialport_unix.cpp:176:60: warning: ‘%s’ directive output may be truncated writing up to 1023 bytes into a region of size 1005 [-Wformat-truncation=] snprintf(data->errorString, sizeof(data->errorString), "Error %s Cannot open %s", strerror(errno), data->path); ^~~~~~~~~~~~~~~~~~~~~~~~~../src/serialport_unix.cpp:176:13: note: ‘snprintf’ output 20 or more bytes (assuming 1043) into a destination of size 1024 snprintf(data->errorString, sizeof(data->errorString), "Error %s Cannot open %s", strerror(errno), data->path); ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../src/serialport_unix.cpp: In function ‘void EIO_Open(uv_work_t*)’:../src/serialport_unix.cpp:86:60: warning: ‘%s’ directive output may be truncated writing up to 1023 bytes into a region of size 1003 [-Wformat-truncation=] snprintf(data->errorString, sizeof(data->errorString), "Error: %s, cannot open %s", strerror(errno), data->path); ^~~~~~~~~~~~~~~~~~~~~~~~~~~../src/serialport_unix.cpp:86:13: note: ‘snprintf’ output 22 or more bytes (assuming 1045) into a destination of size 1024 snprintf(data->errorString, sizeof(data->errorString), "Error: %s, cannot open %s", strerror(errno), data->path); ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from ../src/backend/Backend.h:6, from ../src/backend/Backend.cc:1:../../nan/nan.h: In function ‘void Nan::AsyncQueueWorker(Nan::AsyncWorker*)’:../../nan/nan.h:2298:62: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete) ^ In file included from ../src/backend/Backend.h:6, from ../src/backend/ImageBackend.h:3, from ../src/backend/ImageBackend.cc:1:../../nan/nan.h: In function ‘void Nan::AsyncQueueWorker(Nan::AsyncWorker*)’:../../nan/nan.h:2298:62: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete) ^ In file included from ../src/backend/PdfBackend.h:4, from ../src/backend/PdfBackend.cc:1:../src/backend/../closure.h:6:10: fatal error: jpeglib.h: Datei oder Verzeichnis nicht gefunden #include <jpeglib.h> ^~~~~~~~~~~ compilation terminated. make: *** [canvas.target.mk:156: Release/obj.target/canvas/src/backend/PdfBackend.o] Fehler 1 gyp ERR! build error gyp ERR! stack Error: `make` failed with exit code: 2gyp ERR! stack at ChildProcess.onExit (/usr/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23)gyp ERR! stack at ChildProcess.emit (events.js:314:20)gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:276:12)gyp ERR! System Linux 5.4.79-v7l+gyp ERR! command "/usr/bin/node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "build" "--fallback-to-build" "--module=/opt/iobroker/node_modules/canvas/build/Release/canvas.node" "--module_name=canvas" "--module_path=/opt/iobroker/node_modules/canvas/build/Release" "--napi_version=7" "--node_abi_napi=napi" "--napi_build_version=0" "--node_napi_label=node-v72"gyp ERR! cwd /opt/iobroker/node_modules/canvasgyp ERR! node -v v12.20.0gyp ERR! node-gyp -v v5.1.0gyp ERR! not ok node-pre-gyp ERR! build error 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 build --fallback-to-build --module=/opt/iobroker/node_modules/canvas/build/Release/canvas.node --module_name=canvas --module_path=/opt/iobroker/node_modules/canvas/build/Release --napi_version=7 --node_abi_napi=napi --napi_build_version=0 --node_napi_label=node-v72' (1)node-pre-gyp ERR! stack at ChildProcess.<anonymous> (/opt/iobroker/node_modules/node-pre-gyp/lib/util/compile.js:83:29)node-pre-gyp ERR! stack at ChildProcess.emit (events.js:314:20)node-pre-gyp ERR! stack at maybeClose (internal/child_process.js:1022:16)node-pre-gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:287:5)node-pre-gyp ERR! System Linux 5.4.79-v7l+node-pre-gyp ERR! command "/usr/bin/node" "/opt/iobroker/node_modules/.bin/node-pre-gyp" "install" "--fallback-to-build"node-pre-gyp ERR! cwd /opt/iobroker/node_modules/canvasnode-pre-gyp ERR! node -v v12.20.0node-pre-gyp ERR! node-pre-gyp -v v0.11.0node-pre-gyp ERR! not ok npm ERR! code ELIFECYCLEnpm ERR! errno 1 npm ERR! canvas@2.6.1 install: `node-pre-gyp install --fallback-to-build`npm ERR! Exit status 1npm ERR! npm ERR! Failed at the canvas@2.6.1 install script.npm ERR! This is probably not a problem with npm. There is likely additional logging output above. npm ERR! A complete log of this run can be found in:npm ERR! /home/iobroker/.npm/_logs/2020-12-30T19_45_50_833Z-debug.log upload [6] discovery.admin /opt/iobroker/node_modules/iobroker.discovery/admin/words.js words.js application/javascript upload [5] discovery.admin /opt/iobroker/node_modules/iobroker.discovery/admin/translateTools.js translateTools.js application/javascript upload [4] discovery.admin /opt/iobroker/node_modules/iobroker.discovery/admin/settings_m.html settings_m.html text/html upload [3] discovery.admin /opt/iobroker/node_modules/iobroker.discovery/admin/settings.html settings.html text/html upload [2] discovery.admin /opt/iobroker/node_modules/iobroker.discovery/admin/index_m.html index_m.html text/html upload [1] discovery.admin /opt/iobroker/node_modules/iobroker.discovery/admin/index.html index.html text/html upload [0] discovery.admin /opt/iobroker/node_modules/iobroker.discovery/admin/discovery.png discovery.png image/png Adapter "discovery" updated process exited with code 0 -
Systemdata Bitte Ausfüllen Hardwaresystem: Pi3 Arbeitsspeicher: 4GB Festplattenart: SD-Karte Betriebssystem: Ubuntu Node-Version: 12.20.0 Nodejs-Version: 12.20.0 NPM-Version: 6.14.8 Installationsart: Manuell Image genutzt: Nein Ort/Name der Imagedatei: https://www.raspberrypi.org/software/operating-systems/#raspberry-pi-os-32-bit Ich wollte ein Adapter updaten und bekomme immer Fehlermeldungen. Vorher habe ich den MIHOME-VACUUM Adapter istalliert. Bei diesem musste ich folgendes machen.
Error at installation
if your installation runs in error. The canvas package could not be install
npm ERR! canvas@2.6.1 install: node-pre-gyp install --fallback-to-build npm ERR! Exit status 1
Please install canvas and the libs manually with:
sudo apt-get install build-essential libcairo2-dev libpango1.0-dev libjpeg-dev libgif-dev librsvg2-dev
sudo npm install canvas --unsafe-perm=truelogin as: pi pi@192.168.0.79's password: Linux HWS-Raum-ioBroker 5.4.79-v7l+ #1373 SMP Mon Nov 23 13:27:40 GMT 2020 armv7 l The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Wed Dec 30 20:34:41 2020 from 192.168.0.4 pi@HWS-Raum-ioBroker:~ $ sudo apt-get install build-essential libcairo2-dev libp ango1.0-dev libjpeg-dev libgif-dev librsvg2-dev Paketlisten werden gelesen... Fertig Abhängigkeitsbaum wird aufgebaut. Statusinformationen werden eingelesen.... Fertig build-essential ist schon die neueste Version (12.6). libgif-dev ist schon die neueste Version (5.1.4-3). libpango1.0-dev ist schon die neueste Version (1.42.4-8~deb10u1). librsvg2-dev ist schon die neueste Version (2.44.10-2.1+rpi1). libcairo2-dev ist schon die neueste Version (1.16.0-4+rpt1). Das folgende Paket wurde automatisch installiert und wird nicht mehr benötigt: rpi-eeprom-images Verwenden Sie »sudo apt autoremove«, um es zu entfernen. Die folgenden zusätzlichen Pakete werden installiert: libjpeg62-turbo-dev Die folgenden NEUEN Pakete werden installiert: libjpeg-dev libjpeg62-turbo-dev 0 aktualisiert, 2 neu installiert, 0 zu entfernen und 6 nicht aktualisiert. Es müssen 239 kB an Archiven heruntergeladen werden. Nach dieser Operation werden 546 kB Plattenplatz zusätzlich benutzt. Möchten Sie fortfahren? [J/n] J Holen:1 http://ftp.halifax.rwth-aachen.de/raspbian/raspbian buster/main armhf li bjpeg62-turbo-dev armhf 1:1.5.2-2+deb10u1 [181 kB] Holen:2 http://ftp.halifax.rwth-aachen.de/raspbian/raspbian buster/main armhf li bjpeg-dev all 1:1.5.2-2+deb10u1 [57,7 kB] Es wurden 239 kB in 0 s geholt (554 kB/s). Vormals nicht ausgewähltes Paket libjpeg62-turbo-dev:armhf wird gewählt. (Lese Datenbank ... 49228 Dateien und Verzeichnisse sind derzeit installiert.) Vorbereitung zum Entpacken von .../libjpeg62-turbo-dev_1%3a1.5.2-2+deb10u1_armhf .deb ... Entpacken von libjpeg62-turbo-dev:armhf (1:1.5.2-2+deb10u1) ... Vormals nicht ausgewähltes Paket libjpeg-dev wird gewählt. Vorbereitung zum Entpacken von .../libjpeg-dev_1%3a1.5.2-2+deb10u1_all.deb ... Entpacken von libjpeg-dev (1:1.5.2-2+deb10u1) ... libjpeg62-turbo-dev:armhf (1:1.5.2-2+deb10u1) wird eingerichtet ... libjpeg-dev (1:1.5.2-2+deb10u1) wird eingerichtet ... pi@HWS-Raum-ioBroker:~ $ sudo npm install canvas --unsafe-perm=true > canvas@2.6.1 install /home/pi/node_modules/canvas > node-pre-gyp install --fallback-to-build node-pre-gyp WARN Using needle for node-pre-gyp https download node-pre-gyp WARN Tried to download(404): https://github.com/node-gfx/node-canva s-prebuilt/releases/download/v2.6.1/canvas-v2.6.1-node-v72-linux-glibc-arm.tar.g z node-pre-gyp WARN Pre-built binaries not found for canvas@2.6.1 and node@12.20.0 (node-v72 ABI, glibc) (falling back to source compile with node-gyp) make: Verzeichnis „/home/pi/node_modules/canvas/build“ wird betreten SOLINK_MODULE(target) Release/obj.target/canvas-postbuild.node COPY Release/canvas-postbuild.node CXX(target) Release/obj.target/canvas/src/backend/Backend.o CXX(target) Release/obj.target/canvas/src/backend/ImageBackend.o CXX(target) Release/obj.target/canvas/src/backend/PdfBackend.o CXX(target) Release/obj.target/canvas/src/backend/SvgBackend.o CXX(target) Release/obj.target/canvas/src/bmp/BMPParser.o ../src/bmp/BMPParser.cc: In member function ‘void BMPParser::Parser::parse(uint8_t*, int, uint8_t*)’: ../src/bmp/BMPParser.cc:189:16: warning: comparison of integer expressions of different signedness: ‘in t’ and ‘unsigned int’ [-Wsign-compare] E(ptr - data > imgdOffset, "image data overlaps with another structure"); ~~~~~~~~~~~^~~~~~~~~~~~ ../src/bmp/BMPParser.cc:10:25: note: in definition of macro ‘E’ #define E(cond, msg) if(cond) return setErr(msg) ^~~~ ../src/bmp/BMPParser.cc:204:27: warning: comparison of integer expressions of different signedness: ‘ui nt32_t’ {aka ‘unsigned int’} and ‘int’ [-Wsign-compare] E(ptr - data + imgdSize > len, "not enough image data"); ~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../src/bmp/BMPParser.cc:10:25: note: in definition of macro ‘E’ #define E(cond, msg) if(cond) return setErr(msg) ^~~~ CXX(target) Release/obj.target/canvas/src/Backends.o CXX(target) Release/obj.target/canvas/src/Canvas.o ../src/Canvas.cc: In static member function ‘static Nan::NAN_METHOD_RETURN_TYPE Canvas::ToBuffer(Nan::NAN_METHOD_ARGS_TYPE)’: ../src/Canvas.cc:415:26: warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘unsigned int’} [-Wsign-compare] if (canvas->nBytes() > node::Buffer::kMaxLength) { ~~~~~~~~~~~~~~~~~^~~~~~ ../src/Canvas.cc:479:79: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] uv_queue_work(uv_default_loop(), req, ToPngBufferAsync, (uv_after_work_cb)ToBufferAsyncAfter); ^~~~~~~~~~~~~~~~~~ ../src/Canvas.cc:520:80: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] uv_queue_work(uv_default_loop(), req, ToJpegBufferAsync, (uv_after_work_cb)ToBufferAsyncAfter); ^~~~~~~~~~~~~~~~~~ CXX(target) Release/obj.target/canvas/src/CanvasGradient.o CXX(target) Release/obj.target/canvas/src/CanvasPattern.o CXX(target) Release/obj.target/canvas/src/CanvasRenderingContext2d.o CXX(target) Release/obj.target/canvas/src/closure.o CXX(target) Release/obj.target/canvas/src/color.o CXX(target) Release/obj.target/canvas/src/Image.o CXX(target) Release/obj.target/canvas/src/ImageData.o CXX(target) Release/obj.target/canvas/src/init.o In file included from ../../nan/nan.h:56, from ../src/backend/Backend.h:6, from ../src/Backends.h:3, from ../src/init.cc:17: /root/.cache/node-gyp/12.20.0/include/node/node.h:737:43: warning: cast between incompatible function types from ‘void (*)(Nan::ADDON_REGISTER_FUNCTION_ARGS_TYPE)’ {aka ‘void (*)(v8::Local<v8::Object>)’} to ‘node::addon_register_func’ {aka ‘void (*)(v8::Local<v8::Object>, v8::Local<v8::Value>, void*)’} [-Wcast-function-type] (node::addon_register_func) (regfunc), \ ^ /root/.cache/node-gyp/12.20.0/include/node/node.h:771:3: note: in expansion of macro ‘NODE_MODULE_X’ NODE_MODULE_X(modname, regfunc, NULL, 0) // NOLINT (readability/null_usage) ^~~~~~~~~~~~~ ../src/init.cc:88:1: note: in expansion of macro ‘NODE_MODULE’ NODE_MODULE(canvas, init); ^~~~~~~~~~~ CXX(target) Release/obj.target/canvas/src/register_font.o SOLINK_MODULE(target) Release/obj.target/canvas.node COPY Release/canvas.node make: Verzeichnis „/home/pi/node_modules/canvas/build“ wird verlassen npm WARN saveError ENOENT: no such file or directory, open '/home/pi/package.json' npm WARN enoent ENOENT: no such file or directory, open '/home/pi/package.json' npm WARN pi No description npm WARN pi No repository field. npm WARN pi No README data npm WARN pi No license field. + canvas@2.6.1 added 72 packages from 36 contributors and audited 72 packages in 63.288sEs kann sein das es damit zusammen hängt.
$ ./iobroker upgrade discovery Update discovery from @2.3.11 to @2.4.1 NPM version: 6.14.8 npm install iobroker.discovery@2.4.1 --loglevel error --prefix "/opt/iobroker" (System call) ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Open(Nan::NAN_METHOD_ARGS_TYPE)’:../src/serialport.cpp:78:69: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] uv_queue_work(uv_default_loop(), req, EIO_Open, (uv_after_work_cb)EIO_AfterOpen); ^~~~~~~~~~~~~ ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Update(Nan::NAN_METHOD_ARGS_TYPE)’:../src/serialport.cpp:135:71: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] uv_queue_work(uv_default_loop(), req, EIO_Update, (uv_after_work_cb)EIO_AfterUpdate); ^~~~~~~~~~~~~~~ ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Close(Nan::NAN_METHOD_ARGS_TYPE)’:../src/serialport.cpp:175:70: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] uv_queue_work(uv_default_loop(), req, EIO_Close, (uv_after_work_cb)EIO_AfterClose); ^~~~~~~~~~~~~~ ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Flush(Nan::NAN_METHOD_ARGS_TYPE)’:../src/serialport.cpp:215:70: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] uv_queue_work(uv_default_loop(), req, EIO_Flush, (uv_after_work_cb)EIO_AfterFlush); ^~~~~~~~~~~~~~ ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Set(Nan::NAN_METHOD_ARGS_TYPE)’:../src/serialport.cpp:270:68: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] uv_queue_work(uv_default_loop(), req, EIO_Set, (uv_after_work_cb)EIO_AfterSet); ^~~~~~~~~~~~ ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Get(Nan::NAN_METHOD_ARGS_TYPE)’:../src/serialport.cpp:314:68: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] uv_queue_work(uv_default_loop(), req, EIO_Get, (uv_after_work_cb)EIO_AfterGet); ^~~~~~~~~~~~ ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE GetBaudRate(Nan::NAN_METHOD_ARGS_TYPE)’:../src/serialport.cpp:363:76: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] uv_queue_work(uv_default_loop(), req, EIO_GetBaudRate, (uv_after_work_cb)EIO_AfterGetBaudRate); ^~~~~~~~~~~~~~~~~~~~ ../src/serialport.cpp: In function ‘Nan::NAN_METHOD_RETURN_TYPE Drain(Nan::NAN_METHOD_ARGS_TYPE)’:../src/serialport.cpp:409:70: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] uv_queue_work(uv_default_loop(), req, EIO_Drain, (uv_after_work_cb)EIO_AfterDrain); ^~~~~~~~~~~~~~ ../src/serialport.cpp: At global scope:../src/serialport.cpp:430:28: warning: unnecessary parentheses in declaration of ‘ToParityEnum’ [-Wparentheses] SerialPortParity NAN_INLINE(ToParityEnum(const v8::Local<v8::String>& v8str)) { ^ ../src/serialport.cpp:449:30: warning: unnecessary parentheses in declaration of ‘ToStopBitEnum’ [-Wparentheses] SerialPortStopBits NAN_INLINE(ToStopBitEnum(double stopBits)) { ^ In file included from ../node_modules/nan/nan.h:56, from ../src/./serialport.h:6, from ../src/serialport.cpp:1:/home/iobroker/.cache/node-gyp/12.20.0/include/node/node.h:737:43: warning: cast between incompatible function types from ‘void (*)(Nan::ADDON_REGISTER_FUNCTION_ARGS_TYPE)’ {aka ‘void (*)(v8::Local<v8::Object>)’} to ‘node::addon_register_func’ {aka ‘void (*)(v8::Local<v8::Object>, v8::Local<v8::Value>, void*)’} [-Wcast-function-type] (node::addon_register_func) (regfunc), \ ^/home/iobroker/.cache/node-gyp/12.20.0/include/node/node.h:771:3: note: in expansion of macro ‘NODE_MODULE_X’ NODE_MODULE_X(modname, regfunc, NULL, 0) // NOLINT (readability/null_usage) ^~~~~~~~~~~~~../src/serialport.cpp:483:1: note: in expansion of macro ‘NODE_MODULE’ NODE_MODULE(serialport, init); ^~~~~~~~~~~ ../src/serialport_unix.cpp: In function ‘int setup(int, OpenBaton*)’:../src/serialport_unix.cpp:176:60: warning: ‘%s’ directive output may be truncated writing up to 1023 bytes into a region of size 1005 [-Wformat-truncation=] snprintf(data->errorString, sizeof(data->errorString), "Error %s Cannot open %s", strerror(errno), data->path); ^~~~~~~~~~~~~~~~~~~~~~~~~../src/serialport_unix.cpp:176:13: note: ‘snprintf’ output 20 or more bytes (assuming 1043) into a destination of size 1024 snprintf(data->errorString, sizeof(data->errorString), "Error %s Cannot open %s", strerror(errno), data->path); ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ../src/serialport_unix.cpp: In function ‘void EIO_Open(uv_work_t*)’:../src/serialport_unix.cpp:86:60: warning: ‘%s’ directive output may be truncated writing up to 1023 bytes into a region of size 1003 [-Wformat-truncation=] snprintf(data->errorString, sizeof(data->errorString), "Error: %s, cannot open %s", strerror(errno), data->path); ^~~~~~~~~~~~~~~~~~~~~~~~~~~../src/serialport_unix.cpp:86:13: note: ‘snprintf’ output 22 or more bytes (assuming 1045) into a destination of size 1024 snprintf(data->errorString, sizeof(data->errorString), "Error: %s, cannot open %s", strerror(errno), data->path); ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ In file included from ../src/backend/Backend.h:6, from ../src/backend/Backend.cc:1:../../nan/nan.h: In function ‘void Nan::AsyncQueueWorker(Nan::AsyncWorker*)’:../../nan/nan.h:2298:62: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete) ^ In file included from ../src/backend/Backend.h:6, from ../src/backend/ImageBackend.h:3, from ../src/backend/ImageBackend.cc:1:../../nan/nan.h: In function ‘void Nan::AsyncQueueWorker(Nan::AsyncWorker*)’:../../nan/nan.h:2298:62: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] , reinterpret_cast<uv_after_work_cb>(AsyncExecuteComplete) ^ In file included from ../src/backend/PdfBackend.h:4, from ../src/backend/PdfBackend.cc:1:../src/backend/../closure.h:6:10: fatal error: jpeglib.h: Datei oder Verzeichnis nicht gefunden #include <jpeglib.h> ^~~~~~~~~~~ compilation terminated. make: *** [canvas.target.mk:156: Release/obj.target/canvas/src/backend/PdfBackend.o] Fehler 1 gyp ERR! build error gyp ERR! stack Error: `make` failed with exit code: 2gyp ERR! stack at ChildProcess.onExit (/usr/lib/node_modules/npm/node_modules/node-gyp/lib/build.js:194:23)gyp ERR! stack at ChildProcess.emit (events.js:314:20)gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:276:12)gyp ERR! System Linux 5.4.79-v7l+gyp ERR! command "/usr/bin/node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "build" "--fallback-to-build" "--module=/opt/iobroker/node_modules/canvas/build/Release/canvas.node" "--module_name=canvas" "--module_path=/opt/iobroker/node_modules/canvas/build/Release" "--napi_version=7" "--node_abi_napi=napi" "--napi_build_version=0" "--node_napi_label=node-v72"gyp ERR! cwd /opt/iobroker/node_modules/canvasgyp ERR! node -v v12.20.0gyp ERR! node-gyp -v v5.1.0gyp ERR! not ok node-pre-gyp ERR! build error 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 build --fallback-to-build --module=/opt/iobroker/node_modules/canvas/build/Release/canvas.node --module_name=canvas --module_path=/opt/iobroker/node_modules/canvas/build/Release --napi_version=7 --node_abi_napi=napi --napi_build_version=0 --node_napi_label=node-v72' (1)node-pre-gyp ERR! stack at ChildProcess.<anonymous> (/opt/iobroker/node_modules/node-pre-gyp/lib/util/compile.js:83:29)node-pre-gyp ERR! stack at ChildProcess.emit (events.js:314:20)node-pre-gyp ERR! stack at maybeClose (internal/child_process.js:1022:16)node-pre-gyp ERR! stack at Process.ChildProcess._handle.onexit (internal/child_process.js:287:5)node-pre-gyp ERR! System Linux 5.4.79-v7l+node-pre-gyp ERR! command "/usr/bin/node" "/opt/iobroker/node_modules/.bin/node-pre-gyp" "install" "--fallback-to-build"node-pre-gyp ERR! cwd /opt/iobroker/node_modules/canvasnode-pre-gyp ERR! node -v v12.20.0node-pre-gyp ERR! node-pre-gyp -v v0.11.0node-pre-gyp ERR! not ok npm ERR! code ELIFECYCLEnpm ERR! errno 1 npm ERR! canvas@2.6.1 install: `node-pre-gyp install --fallback-to-build`npm ERR! Exit status 1npm ERR! npm ERR! Failed at the canvas@2.6.1 install script.npm ERR! This is probably not a problem with npm. There is likely additional logging output above. npm ERR! A complete log of this run can be found in:npm ERR! /home/iobroker/.npm/_logs/2020-12-30T19_45_50_833Z-debug.log upload [6] discovery.admin /opt/iobroker/node_modules/iobroker.discovery/admin/words.js words.js application/javascript upload [5] discovery.admin /opt/iobroker/node_modules/iobroker.discovery/admin/translateTools.js translateTools.js application/javascript upload [4] discovery.admin /opt/iobroker/node_modules/iobroker.discovery/admin/settings_m.html settings_m.html text/html upload [3] discovery.admin /opt/iobroker/node_modules/iobroker.discovery/admin/settings.html settings.html text/html upload [2] discovery.admin /opt/iobroker/node_modules/iobroker.discovery/admin/index_m.html index_m.html text/html upload [1] discovery.admin /opt/iobroker/node_modules/iobroker.discovery/admin/index.html index.html text/html upload [0] discovery.admin /opt/iobroker/node_modules/iobroker.discovery/admin/discovery.png discovery.png image/png Adapter "discovery" updated process exited with code 0@fenger Mehrere Fehler.
Halte dein System auf Stand.sudo apt update sudo apt dist-upgrade sudo reboot sudo apt autoremoveDanach sollten alle Pakete aktuell sein und bei
sudo apt updatekeine Updates mehr ausstehen.
Dann stehst du im falschen Verzeichnis.
cd /opt/iobrokerDann dort per
npm install canvas --productiondas Modul nachinstallieren. Dabei wird KEIN sudo verwendet!
-
@fenger Mehrere Fehler.
Halte dein System auf Stand.sudo apt update sudo apt dist-upgrade sudo reboot sudo apt autoremoveDanach sollten alle Pakete aktuell sein und bei
sudo apt updatekeine Updates mehr ausstehen.
Dann stehst du im falschen Verzeichnis.
cd /opt/iobrokerDann dort per
npm install canvas --productiondas Modul nachinstallieren. Dabei wird KEIN sudo verwendet!
@Thomas-Braun
Super Danke für die schnelle mega Hilfe, hat perfekt geklappt. Dachte schon ich muss das System neu aufsetzen.
Euch allen ein gesundes neues Jahr
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden