3

我试图在我的 ubuntu 18.04.5 vm 上安装 nodejs canvas。我正在使用使用 snap 包管理器安装的 nodejs v14.16.0。

按照 node-canvas 的 GitHub wiki 上的说明进行操作: https ://github.com/Automattic/node-canvas/wiki/Installation:-Ubuntu-and-other-Debian-based-systems

  1. 我为 Ubuntu 和其他基于 Debian 的系统安装了所有依赖项:
$ sudo apt-get update 
$ sudo apt-get install build-essential libcairo2-dev libpango1.0-dev libjpeg-dev libgif-dev librsvg2-dev 

(没有错误)

  1. 我使用 npm 安装了节点画布:
$ npm install canvas

运行此命令后,我在控制台中收到以下警告和错误:

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

如果我现在运行一个简单的程序:

const canvas = require('canvas');

我总是会收到以下错误:

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)
4

0 回答 0