I tried to install nodejs canvas on my ubuntu 18.04.5 vm. I am using nodejs v14.16.0 installed using the snap package manager.
Following the instructions on the GitHub wiki from node-canvas: https://github.com/Automattic/node-canvas/wiki/Installation:-Ubuntu-and-other-Debian-based-systems
- I installed all dependencies for Ubuntu and other Debian based systems:
$ sudo apt-get update
$ sudo apt-get install build-essential libcairo2-dev libpango1.0-dev libjpeg-dev libgif-dev librsvg2-dev
(No errors)
- I installed node-canvas using npm:
$ npm install canvas
After I ran this command I got following warns and errors in the console:
npm WARN deprecated node-pre-gyp@0.15.0: Please upgrade to @mapbox/node-pre-gyp: the non-scoped node-pre-gyp package is deprecated and only the @mapbox scoped package will recieve updates in the future
npm WARN lifecycle The node binary used for scripts is /snap/bin/node but npm is using /snap/node/3787/bin/node itself. Use the `--scripts-prepend-node-path` option to include the path for the node binary npm was executed with.
> canvas@2.7.0 install /home/max/Desktop/test/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/Automattic/node-canvas/releases/download/v2.7.0/canvas-v2.7.0-node-v83-linux-glibc-ia32.tar.gz
node-pre-gyp WARN Pre-built binaries not found for canvas@2.7.0 and node@14.16.0 (node-v83 ABI, glibc) (falling back to source compile with node-gyp)
make: Entering directory '/home/max/Desktop/test/node_modules/canvas/build'
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:186:16: warning: comparison between signed and unsigned integer expressions [-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:201:27: warning: comparison between signed and unsigned integer expressions [-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)
^~~~
At global scope:
cc1plus: warning: unrecognized command line option ‘-Wno-cast-function-type’
CXX(target) Release/obj.target/canvas/src/Backends.o
CXX(target) Release/obj.target/canvas/src/Canvas.o
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
CXX(target) Release/obj.target/canvas/src/register_font.o
SOLINK_MODULE(target) Release/obj.target/canvas.node
COPY Release/canvas.node
make: Leaving directory '/home/max/Desktop/test/node_modules/canvas/build'
+ canvas@2.7.0
added 95 packages from 38 contributors and audited 95 packages in 32.433s
5 packages are looking for funding
run `npm fund` for details
found 0 vulnerabilities
If i now run a simple programm:
const canvas = require('canvas');
I will always get the following error:
internal/modules/cjs/loader.js:1122
return process.dlopen(module, path.toNamespacedPath(filename));
^
Error: /snap/core/current/lib/i386-linux-gnu/libz.so.1: version `ZLIB_1.2.9' not found (required by /usr/lib/i386-linux-gnu/libpng16.so.16)
at Object.Module._extensions..node (internal/modules/cjs/loader.js:1122:18)
at Module.load (internal/modules/cjs/loader.js:928:32)
at Function.Module._load (internal/modules/cjs/loader.js:769:14)
at Module.require (internal/modules/cjs/loader.js:952:19)
at require (internal/modules/cjs/helpers.js:88:18)
at Object.<anonymous> (/home/max/Desktop/test/node_modules/canvas/lib/bindings.js:3:18)
at Module._compile (internal/modules/cjs/loader.js:1063:30)
at Object.Module._extensions..js (internal/modules/cjs/loader.js:1092:10)
at Module.load (internal/modules/cjs/loader.js:928:32)
at Function.Module._load (internal/modules/cjs/loader.js:769:14)