Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • 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

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    3.3k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.1k

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.4k

Kann keine Updates mehr installieren

Geplant Angeheftet Gesperrt Verschoben Gelöst Error/Bug
errorproblem
4 Beiträge 3 Kommentatoren 550 Aufrufe 3 Watching
  • Ä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
            Antworten
            • In einem neuen Thema antworten
            Anmelden zum Antworten
            • Älteste zuerst
            • Neuste zuerst
            • Meiste Stimmen


            Support us

            ioBroker
            Community Adapters
            Donate

            632

            Online

            32.7k

            Benutzer

            82.3k

            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