How can I ovecome this error in npm install?

13,262

Solution 1

First Try installing the binaries for canvas mentioned in https://github.com/Automattic/node-canvas

sudo apt-get install build-essential libcairo2-dev libpango1.0-dev libjpeg-dev libgif-dev librsvg2-dev

Then install canvas:

npm install canvas

Solution 2

Did you start by running npm init? I would assume so because of the node_modules folder mentioned in the error, but just checking.

You can install it with homebrew using:

brew install pkg-config cairo pango libpng jpeg giflib librsvg

according to the docs here: https://github.com/Automattic/node-canvas

Share:
13,262
Samu Nemeth
Author by

Samu Nemeth

Big fan of PIC chips and individually addressable LEDs! I like to program in HTML, JavaScrip (p5.js), and Processing. I also like watching The coding train!

Updated on July 27, 2022

Comments

  • Samu Nemeth
    Samu Nemeth almost 2 years

    Hello!

    I'm a beginner programmer, and I'm making a discord bot using node and discord.js. I need a library named canvas, But it doest install!

    I programmed and tested this app on my windows pc, then sent it over to my raspberry server. It didn't work, so I tried deleting and installing the library again, but when installing, it gives this error:

    (I'm trying to install it with this command: npm install canvas)

    npm ERR! path /home/pi/node/test/node_modules/canvas
    npm ERR! command failed
    npm ERR! command sh -c node-pre-gyp install --fallback-to-build
    npm ERR! Failed to execute '/usr/bin/node /usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js configure --fallback-to-build --module=/home/pi/node/test/node_modules/canvas/build/Release/canvas.node --module_name=canvas --module_path=/home/pi/node/test/node_modules/canvas/build/Release --napi_version=7 --node_abi_napi=napi --napi_build_version=0 --node_napi_label=node-v88' (1)
    npm ERR! node-pre-gyp info it worked if it ends with ok
    npm ERR! node-pre-gyp info using [email protected]
    npm ERR! node-pre-gyp info using [email protected] | linux | arm
    npm ERR! node-pre-gyp WARN Using needle for node-pre-gyp https download 
    npm ERR! node-pre-gyp info check checked for "/home/pi/node/test/node_modules/canvas/build/Release/canvas.node" (not found)
    npm ERR! node-pre-gyp http GET https://github.com/node-gfx/node-canvas-prebuilt/releases/download/v2.6.1/canvas-v2.6.1-node-v88-linux-glibc-arm.tar.gz
    npm ERR! node-pre-gyp http 404 https://github.com/node-gfx/node-canvas-prebuilt/releases/download/v2.6.1/canvas-v2.6.1-node-v88-linux-glibc-arm.tar.gz
    npm ERR! node-pre-gyp WARN Tried to download(404): https://github.com/node-gfx/node-canvas-prebuilt/releases/download/v2.6.1/canvas-v2.6.1-node-v88-linux-glibc-arm.tar.gz 
    npm ERR! node-pre-gyp WARN Pre-built binaries not found for [email protected] and [email protected] (node-v88 ABI, glibc) (falling back to source compile with node-gyp) 
    npm ERR! node-pre-gyp http 404 status code downloading tarball https://github.com/node-gfx/node-canvas-prebuilt/releases/download/v2.6.1/canvas-v2.6.1-node-v88-linux-glibc-arm.tar.gz 
    npm ERR! gyp info it worked if it ends with ok
    npm ERR! gyp info using [email protected]
    npm ERR! gyp info using [email protected] | linux | arm
    npm ERR! gyp info ok 
    npm ERR! gyp info it worked if it ends with ok
    npm ERR! gyp info using [email protected]
    npm ERR! gyp info using [email protected] | linux | arm
    npm ERR! gyp info find Python using Python version 3.7.3 found at "/usr/bin/python3"
    npm ERR! gyp info spawn /usr/bin/python3
    npm ERR! gyp info spawn args [
    npm ERR! gyp info spawn args   '/usr/lib/node_modules/npm/node_modules/node-gyp/gyp/gyp_main.py',
    npm ERR! gyp info spawn args   'binding.gyp',
    npm ERR! gyp info spawn args   '-f',
    npm ERR! gyp info spawn args   'make',
    npm ERR! gyp info spawn args   '-I',
    npm ERR! gyp info spawn args   '/home/pi/node/test/node_modules/canvas/build/config.gypi',
    npm ERR! gyp info spawn args   '-I',
    npm ERR! gyp info spawn args   '/usr/lib/node_modules/npm/node_modules/node-gyp/addon.gypi',
    npm ERR! gyp info spawn args   '-I',
    npm ERR! gyp info spawn args   '/home/pi/.cache/node-gyp/15.0.1/include/node/common.gypi',
    npm ERR! gyp info spawn args   '-Dlibrary=shared_library',
    npm ERR! gyp info spawn args   '-Dvisibility=default',
    npm ERR! gyp info spawn args   '-Dnode_root_dir=/home/pi/.cache/node-gyp/15.0.1',
    npm ERR! gyp info spawn args   '-Dnode_gyp_dir=/usr/lib/node_modules/npm/node_modules/node-gyp',
    npm ERR! gyp info spawn args   '-Dnode_lib_file=/home/pi/.cache/node-gyp/15.0.1/<(target_arch)/node.lib',
    npm ERR! gyp info spawn args   '-Dmodule_root_dir=/home/pi/node/test/node_modules/canvas',
    npm ERR! gyp info spawn args   '-Dnode_engine=v8',
    npm ERR! gyp info spawn args   '--depth=.',
    npm ERR! gyp info spawn args   '--no-parallel',
    npm ERR! gyp info spawn args   '--generator-output',
    npm ERR! gyp info spawn args   'build',
    npm ERR! gyp info spawn args   '-Goutput_dir=.'
    npm ERR! gyp info spawn args ]
    npm ERR! Package pixman-1 was not found in the pkg-config search path.
    npm ERR! Perhaps you should add the directory containing `pixman-1.pc'
    npm ERR! to the PKG_CONFIG_PATH environment variable
    npm ERR! No package 'pixman-1' found
    npm ERR! gyp: Call to 'pkg-config pixman-1 --libs' returned exit status 1 while in binding.gyp. while trying to load binding.gyp
    npm ERR! gyp ERR! configure error 
    npm ERR! gyp ERR! stack Error: `gyp` failed with exit code: 1
    npm ERR! gyp ERR! stack     at ChildProcess.onCpExit (/usr/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:351:16)
    npm ERR! gyp ERR! stack     at ChildProcess.emit (node:events:327:20)
    npm ERR! gyp ERR! stack     at Process.ChildProcess._handle.onexit (node:internal/child_process:277:12)
    npm ERR! gyp ERR! System Linux 5.4.51-v7l+
    npm ERR! gyp ERR! command "/usr/bin/node" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "configure" "--fallback-to-build" "--module=/home/pi/node/test/node_modules/canvas/build/Release/canvas.node" "--module_name=canvas" "--module_path=/home/pi/node/test/node_modules/canvas/build/Release" "--napi_version=7" "--node_abi_napi=napi" "--napi_build_version=0" "--node_napi_label=node-v88"
    npm ERR! gyp ERR! cwd /home/pi/node/test/node_modules/canvas
    npm ERR! gyp ERR! node -v v15.0.1
    npm ERR! gyp ERR! node-gyp -v v7.1.2
    npm ERR! gyp ERR! not ok 
    npm ERR! node-pre-gyp ERR! build error 
    npm ERR! 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 configure --fallback-to-build --module=/home/pi/node/test/node_modules/canvas/build/Release/canvas.node --module_name=canvas --module_path=/home/pi/node/test/node_modules/canvas/build/Release --napi_version=7 --node_abi_napi=napi --napi_build_version=0 --node_napi_label=node-v88' (1)
    npm ERR! node-pre-gyp ERR! stack     at ChildProcess.<anonymous> (/home/pi/node/test/node_modules/node-pre-gyp/lib/util/compile.js:83:29)
    npm ERR! node-pre-gyp ERR! stack     at ChildProcess.emit (node:events:327:20)
    npm ERR! node-pre-gyp ERR! stack     at maybeClose (node:internal/child_process:1048:16)
    npm ERR! node-pre-gyp ERR! stack     at Process.ChildProcess._handle.onexit (node:internal/child_process:288:5)
    npm ERR! node-pre-gyp ERR! System Linux 5.4.51-v7l+
    npm ERR! node-pre-gyp ERR! command "/usr/bin/node" "/home/pi/node/test/node_modules/.bin/node-pre-gyp" "install" "--fallback-to-build"
    npm ERR! node-pre-gyp ERR! cwd /home/pi/node/test/node_modules/canvas
    npm ERR! node-pre-gyp ERR! node -v v15.0.1
    npm ERR! node-pre-gyp ERR! node-pre-gyp -v v0.11.0
    npm ERR! node-pre-gyp ERR! not ok
    
    npm ERR! A complete log of this run can be found in:
    npm ERR!     /home/pi/.npm/_logs/2020-10-27T20_10_02_765Z-debug.log```
    
    
    
  • Quentin
    Quentin over 3 years
    They aren't using MacOS
  • Quentin
    Quentin over 3 years
    They aren't using Windows either
  • Quentin
    Quentin over 3 years
    You said Windows, not Linux! (And after following links and scrolling a bit, it's clear that brew does not properly support ARM processors)
  • Quentin
    Quentin over 3 years
    Yes: "best-effort basis". i.e. not properly supported.
  • Samu Nemeth
    Samu Nemeth over 3 years
    Thank you for the fast reply, It didn't solve my problem, but today I started a new project from scratch, did npm init, and installed all the libraries. It worked! It was probably some stuck in incompatibility from transitioning from Windows to Linux!
  • mmomtchev
    mmomtchev over 2 years
    As someone already pointed out, the author of the question is not using macOS. Otherwise, on M1 Pro, one has indeed to recompile all native Node.js addons as almost no one is shipping pre-built binaries - mainly because Github Actions does not support it yet.
  • Mauvis Ledford
    Mauvis Ledford about 2 years
    As M1 Mac user this actually solved my issue with bad npm install. Thanks!