NEWS
SOLVED Kann keine Updates mehr installieren
-
Systemdata Bitte Ausfüllen Hardwaresystem: Pi3 Arbeitsspeicher: 4GB Festplattenart: SD-Karte Betriebssystem: Ubuntu Node-Version: 12.20.0 Nodejs-Version: 12.20.0 NPM-Version: 6.14.8 Installationsart: Manuell Image genutzt: Nein Ort/Name der Imagedatei: https://www.raspberrypi.org/software/operating-systems/#raspberry-pi-os-32-bit Ich wollte ein Adapter updaten und bekomme immer Fehlermeldungen. Vorher habe ich den MIHOME-VACUUM Adapter istalliert. Bei diesem musste ich folgendes machen.
Error at installation
if your installation runs in error. The canvas package could not be install
npm ERR! canvas@2.6.1 install: node-pre-gyp install --fallback-to-build npm ERR! Exit status 1
Please install canvas and the libs manually with:
sudo apt-get install build-essential libcairo2-dev libpango1.0-dev libjpeg-dev libgif-dev librsvg2-dev
sudo npm install canvas --unsafe-perm=truelogin as: pi pi@192.168.0.79's password: Linux HWS-Raum-ioBroker 5.4.79-v7l+ #1373 SMP Mon Nov 23 13:27:40 GMT 2020 armv7 l The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Wed Dec 30 20:34:41 2020 from 192.168.0.4 pi@HWS-Raum-ioBroker:~ $ sudo apt-get install build-essential libcairo2-dev libp ango1.0-dev libjpeg-dev libgif-dev librsvg2-dev Paketlisten werden gelesen... Fertig Abhängigkeitsbaum wird aufgebaut. Statusinformationen werden eingelesen.... Fertig build-essential ist schon die neueste Version (12.6). libgif-dev ist schon die neueste Version (5.1.4-3). libpango1.0-dev ist schon die neueste Version (1.42.4-8~deb10u1). librsvg2-dev ist schon die neueste Version (2.44.10-2.1+rpi1). libcairo2-dev ist schon die neueste Version (1.16.0-4+rpt1). Das folgende Paket wurde automatisch installiert und wird nicht mehr benötigt: rpi-eeprom-images Verwenden Sie »sudo apt autoremove«, um es zu entfernen. Die folgenden zusätzlichen Pakete werden installiert: libjpeg62-turbo-dev Die folgenden NEUEN Pakete werden installiert: libjpeg-dev libjpeg62-turbo-dev 0 aktualisiert, 2 neu installiert, 0 zu entfernen und 6 nicht aktualisiert. Es müssen 239 kB an Archiven heruntergeladen werden. Nach dieser Operation werden 546 kB Plattenplatz zusätzlich benutzt. Möchten Sie fortfahren? [J/n] J Holen:1 http://ftp.halifax.rwth-aachen.de/raspbian/raspbian buster/main armhf li bjpeg62-turbo-dev armhf 1:1.5.2-2+deb10u1 [181 kB] Holen:2 http://ftp.halifax.rwth-aachen.de/raspbian/raspbian buster/main armhf li bjpeg-dev all 1:1.5.2-2+deb10u1 [57,7 kB] Es wurden 239 kB in 0 s geholt (554 kB/s). Vormals nicht ausgewähltes Paket libjpeg62-turbo-dev:armhf wird gewählt. (Lese Datenbank ... 49228 Dateien und Verzeichnisse sind derzeit installiert.) Vorbereitung zum Entpacken von .../libjpeg62-turbo-dev_1%3a1.5.2-2+deb10u1_armhf .deb ... Entpacken von libjpeg62-turbo-dev:armhf (1:1.5.2-2+deb10u1) ... Vormals nicht ausgewähltes Paket libjpeg-dev wird gewählt. Vorbereitung zum Entpacken von .../libjpeg-dev_1%3a1.5.2-2+deb10u1_all.deb ... Entpacken von libjpeg-dev (1:1.5.2-2+deb10u1) ... libjpeg62-turbo-dev:armhf (1:1.5.2-2+deb10u1) wird eingerichtet ... libjpeg-dev (1:1.5.2-2+deb10u1) wird eingerichtet ... pi@HWS-Raum-ioBroker:~ $ sudo npm install canvas --unsafe-perm=true > canvas@2.6.1 install /home/pi/node_modules/canvas > node-pre-gyp install --fallback-to-build node-pre-gyp WARN Using needle for node-pre-gyp https download node-pre-gyp WARN Tried to download(404): https://github.com/node-gfx/node-canva s-prebuilt/releases/download/v2.6.1/canvas-v2.6.1-node-v72-linux-glibc-arm.tar.g z node-pre-gyp WARN Pre-built binaries not found for canvas@2.6.1 and node@12.20.0 (node-v72 ABI, glibc) (falling back to source compile with node-gyp) make: Verzeichnis „/home/pi/node_modules/canvas/build“ wird betreten SOLINK_MODULE(target) Release/obj.target/canvas-postbuild.node COPY Release/canvas-postbuild.node CXX(target) Release/obj.target/canvas/src/backend/Backend.o CXX(target) Release/obj.target/canvas/src/backend/ImageBackend.o CXX(target) Release/obj.target/canvas/src/backend/PdfBackend.o CXX(target) Release/obj.target/canvas/src/backend/SvgBackend.o CXX(target) Release/obj.target/canvas/src/bmp/BMPParser.o ../src/bmp/BMPParser.cc: In member function ‘void BMPParser::Parser::parse(uint8_t*, int, uint8_t*)’: ../src/bmp/BMPParser.cc:189:16: warning: comparison of integer expressions of different signedness: ‘in t’ and ‘unsigned int’ [-Wsign-compare] E(ptr - data > imgdOffset, "image data overlaps with another structure"); ~~~~~~~~~~~^~~~~~~~~~~~ ../src/bmp/BMPParser.cc:10:25: note: in definition of macro ‘E’ #define E(cond, msg) if(cond) return setErr(msg) ^~~~ ../src/bmp/BMPParser.cc:204:27: warning: comparison of integer expressions of different signedness: ‘ui nt32_t’ {aka ‘unsigned int’} and ‘int’ [-Wsign-compare] E(ptr - data + imgdSize > len, "not enough image data"); ~~~~~~~~~~~~~~~~~~~~~~^~~~~ ../src/bmp/BMPParser.cc:10:25: note: in definition of macro ‘E’ #define E(cond, msg) if(cond) return setErr(msg) ^~~~ CXX(target) Release/obj.target/canvas/src/Backends.o CXX(target) Release/obj.target/canvas/src/Canvas.o ../src/Canvas.cc: In static member function ‘static Nan::NAN_METHOD_RETURN_TYPE Canvas::ToBuffer(Nan::NAN_METHOD_ARGS_TYPE)’: ../src/Canvas.cc:415:26: warning: comparison of integer expressions of different signedness: ‘int’ and ‘size_t’ {aka ‘unsigned int’} [-Wsign-compare] if (canvas->nBytes() > node::Buffer::kMaxLength) { ~~~~~~~~~~~~~~~~~^~~~~~ ../src/Canvas.cc:479:79: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] uv_queue_work(uv_default_loop(), req, ToPngBufferAsync, (uv_after_work_cb)ToBufferAsyncAfter); ^~~~~~~~~~~~~~~~~~ ../src/Canvas.cc:520:80: warning: cast between incompatible function types from ‘void (*)(uv_work_t*)’ {aka ‘void (*)(uv_work_s*)’} to ‘uv_after_work_cb’ {aka ‘void (*)(uv_work_s*, int)’} [-Wcast-function-type] uv_queue_work(uv_default_loop(), req, ToJpegBufferAsync, (uv_after_work_cb)ToBufferAsyncAfter); ^~~~~~~~~~~~~~~~~~ CXX(target) Release/obj.target/canvas/src/CanvasGradient.o CXX(target) Release/obj.target/canvas/src/CanvasPattern.o CXX(target) Release/obj.target/canvas/src/CanvasRenderingContext2d.o CXX(target) Release/obj.target/canvas/src/closure.o CXX(target) Release/obj.target/canvas/src/color.o CXX(target) Release/obj.target/canvas/src/Image.o CXX(target) Release/obj.target/canvas/src/ImageData.o CXX(target) Release/obj.target/canvas/src/init.o In file included from ../../nan/nan.h:56, from ../src/backend/Backend.h:6, from ../src/Backends.h:3, from ../src/init.cc:17: /root/.cache/node-gyp/12.20.0/include/node/node.h:737:43: warning: cast between incompatible function types from ‘void (*)(Nan::ADDON_REGISTER_FUNCTION_ARGS_TYPE)’ {aka ‘void (*)(v8::Local<v8::Object>)’} to ‘node::addon_register_func’ {aka ‘void (*)(v8::Local<v8::Object>, v8::Local<v8::Value>, void*)’} [-Wcast-function-type] (node::addon_register_func) (regfunc), \ ^ /root/.cache/node-gyp/12.20.0/include/node/node.h:771:3: note: in expansion of macro ‘NODE_MODULE_X’ NODE_MODULE_X(modname, regfunc, NULL, 0) // NOLINT (readability/null_usage) ^~~~~~~~~~~~~ ../src/init.cc:88:1: note: in expansion of macro ‘NODE_MODULE’ NODE_MODULE(canvas, init); ^~~~~~~~~~~ CXX(target) Release/obj.target/canvas/src/register_font.o SOLINK_MODULE(target) Release/obj.target/canvas.node COPY Release/canvas.node make: Verzeichnis „/home/pi/node_modules/canvas/build“ wird verlassen npm WARN saveError ENOENT: no such file or directory, open '/home/pi/package.json' npm WARN enoent ENOENT: no such file or directory, open '/home/pi/package.json' npm WARN pi No description npm WARN pi No repository field. npm WARN pi No README data npm WARN pi No license field. + canvas@2.6.1 added 72 packages from 36 contributors and audited 72 packages in 63.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
-
@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!
-
@fenger Bitte in Code Tags (</>) setzen. Das ist ja komplett unlesbar!
-
@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!
-
@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