Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Error/Bug
  4. Kann keine Updates mehr installieren

NEWS

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    8
    1
    733

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    10
    1
    564

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    1.1k

Kann keine Updates mehr installieren

Geplant Angeheftet Gesperrt Verschoben Gelöst Error/Bug
errorproblem
4 Beiträge 3 Kommentatoren 585 Aufrufe 3 Beobachtet
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • F Offline
    F Offline
    fenger
    schrieb am zuletzt editiert von fenger
    #1
    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=true

    login 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.288s
    
    

    Es 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
    
    UncleSamU Thomas BraunT 2 Antworten Letzte Antwort
    0
    • F fenger
      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=true

      login 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.288s
      
      

      Es 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
      
      Thomas BraunT Online
      Thomas BraunT Online
      Thomas Braun
      Most Active
      schrieb am zuletzt editiert von
      #3

      @fenger Mehrere Fehler.
      Halte dein System auf Stand.

      sudo apt update
      sudo apt dist-upgrade
      sudo reboot
      sudo apt autoremove
      

      Danach sollten alle Pakete aktuell sein und bei

      sudo apt update 
      

      keine Updates mehr ausstehen.

      Dann stehst du im falschen Verzeichnis.

      cd /opt/iobroker
      

      Dann dort per

      npm install canvas --production
      

      das Modul nachinstallieren. Dabei wird KEIN sudo verwendet!

      Linux-Werkzeugkasten:
      https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
      NodeJS Fixer Skript:
      https://forum.iobroker.net/topic/68035/iob-node-fix-skript
      iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

      F 1 Antwort Letzte Antwort
      0
      • F fenger
        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=true

        login 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.288s
        
        

        Es 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
        
        UncleSamU Offline
        UncleSamU Offline
        UncleSam
        Developer
        schrieb am zuletzt editiert von
        #2

        @fenger Bitte in Code Tags (</>) setzen. Das ist ja komplett unlesbar!

        Bitte bei Problemen mit meinen Adaptern, Issue auf GitHub erfassen: Loxone | I2C | Luxtronik2
        ♡-lichen Dank an meine Sponsoren

        1 Antwort Letzte Antwort
        0
        • F fenger
          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=true

          login 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.288s
          
          

          Es 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
          
          Thomas BraunT Online
          Thomas BraunT Online
          Thomas Braun
          Most Active
          schrieb am zuletzt editiert von
          #3

          @fenger Mehrere Fehler.
          Halte dein System auf Stand.

          sudo apt update
          sudo apt dist-upgrade
          sudo reboot
          sudo apt autoremove
          

          Danach sollten alle Pakete aktuell sein und bei

          sudo apt update 
          

          keine Updates mehr ausstehen.

          Dann stehst du im falschen Verzeichnis.

          cd /opt/iobroker
          

          Dann dort per

          npm install canvas --production
          

          das Modul nachinstallieren. Dabei wird KEIN sudo verwendet!

          Linux-Werkzeugkasten:
          https://forum.iobroker.net/topic/42952/der-kleine-iobroker-linux-werkzeugkasten
          NodeJS Fixer Skript:
          https://forum.iobroker.net/topic/68035/iob-node-fix-skript
          iob_diag: curl -sLf -o diag.sh https://iobroker.net/diag.sh && bash diag.sh

          F 1 Antwort Letzte Antwort
          0
          • Thomas BraunT Thomas Braun

            @fenger Mehrere Fehler.
            Halte dein System auf Stand.

            sudo apt update
            sudo apt dist-upgrade
            sudo reboot
            sudo apt autoremove
            

            Danach sollten alle Pakete aktuell sein und bei

            sudo apt update 
            

            keine Updates mehr ausstehen.

            Dann stehst du im falschen Verzeichnis.

            cd /opt/iobroker
            

            Dann dort per

            npm install canvas --production
            

            das Modul nachinstallieren. Dabei wird KEIN sudo verwendet!

            F Offline
            F Offline
            fenger
            schrieb am zuletzt editiert von
            #4

            @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

            1 Antwort Letzte Antwort
            0

            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
            Antworten
            • In einem neuen Thema antworten
            Anmelden zum Antworten
            • Älteste zuerst
            • Neuste zuerst
            • Meiste Stimmen


            Support us

            ioBroker
            Community Adapters
            Donate

            471

            Online

            32.8k

            Benutzer

            82.9k

            Themen

            1.3m

            Beiträge
            Community
            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
            ioBroker Community 2014-2025
            logo
            • Anmelden

            • Du hast noch kein Konto? Registrieren

            • Anmelden oder registrieren, um zu suchen
            • Erster Beitrag
              Letzter Beitrag
            0
            • Home
            • Aktuell
            • Tags
            • Ungelesen 0
            • Kategorien
            • Unreplied
            • Beliebt
            • GitHub
            • Docu
            • Hilfe