El paquete cairo no se encontró en la ruta de búsqueda de pkg-config. Problema de lienzo de instalación del nodo js

101

Tengo un problema al instalar el módulo de lienzo en el nodo ... parece ser algo con el cairo, recibo este error ...

npm http GET https://registry.npmjs.org/canvas
npm http 304 https://registry.npmjs.org/canvas
npm http GET https://registry.npmjs.org/nan
npm http 304 https://registry.npmjs.org/nan

> canvas@1.1.3 install /Users/plimb/Desktop/motion-therapy/node_modules/canvas
> node-gyp rebuild

Package cairo was not found in the pkg-config search path.
Perhaps you should add the directory containing `cairo.pc'
to the PKG_CONFIG_PATH environment variable
No package 'cairo' found
gyp: Call to './util/has_cairo_freetype.sh' returned exit status 0. while trying to load binding.gyp
gyp ERR! configure error
gyp ERR! stack Error: `gyp` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onCpExit (/usr/local/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:424:16)
gyp ERR! stack     at ChildProcess.EventEmitter.emit (events.js:98:17)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (child_process.js:789:12)
gyp ERR! System Darwin 13.0.0
gyp ERR! command "node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /Users/plimb/Desktop/motion-therapy/node_modules/canvas
gyp ERR! node -v v0.10.21
gyp ERR! node-gyp -v v0.10.10
gyp ERR! not ok
npm ERR! weird error 1 
npm ERR! not ok code 0

¡No estoy seguro de lo que significa todo esto! ¡Agradecería cualquier ayuda! Por ejemplo, ¿cómo hacer un mkdir cairo pc en la variable de entorno pkg_config_path?

plimbs
fuente
ah gracias ken, seguí esto pero ahora tengo este error CXX (target) Release / obj.target / canvas / src / Canvas.o En el archivo incluido desde ../src/Canvas.cc:7: ../src/ Canvas.h: 19: 10: error fatal: no se encontró el archivo 'cairo / cairo.h' #include <cairo / cairo.h>
plimbs

Respuestas:

135

Tuve el mismo problema y el enlace de @ Epistemex me ayudó a solucionarlo.

... Necesita instalar libcairo2-dev, libjpeg-devy libgif-devpaquetes ...

sudo apt-get install libcairo2-dev libjpeg-dev libgif-dev
Henry Oye
fuente
5
También necesitaba el paquete pangocairo, resuelto consudo apt-get install libpango1.0-dev
Adlen Afane
¿Esto no funcionará en la instancia de amzon ec2, ya que no son debian? cualquiera sabe el comando yum para esto
Max
5
cairo-devel libjpeg-devely giflib-develson los paquetes de Amazon Linux. @Max
Stephen Reid
68

También estaba enfrentando el mismo problema en Mac, así que probé estos pasos y obtuve la solución

Versión de Mac OSX> = 10.7.5 nodo -v = v0.8.12

$ brew install cairo
$ pkg-config --atleast-version=1.12.2 cairo
$ echo $?

Si devuelve un 1, deberá establecer la variable de entorno PKG_CONFIG_PATH para poder encontrar cairo.pc y fontconfig.pc

$ locate cairo.pc
$ export PKG_CONFIG_PATH=/usr/X11/lib/pkgconfig/

Ejecutando pkg-config de nuevo ...

$ pkg-config --atleast-version=1.12.2 cairo

$ echo $?

Si devuelve un 0, entonces todo está bien en el capó.

$ npm install canvas
Piyush Dholariya
fuente
1
Aprecia los detalles. Buena.
neelmeg
1
Gracias por los consejos con Mac / brew. En Mac, si está usando macports, esto funcionó para mí: $ sudo port install cairo $ sudo port install pkgconfig # no estoy seguro de que este sea obligatorio ...: / $ npm install canvas
DerekC
32

Tuve el mismo problema en OS X 10.11.2 al instalar el qrcodepaquete.

Resuelto instalando estos:

brew install cairo
brew install pkg-config
xcode-select --install
Alexander Danilov
fuente
4
Solo brew install cairofue suficiente en mi caso (macOS Sierra 10.12.1)
sakisk
1
con una nueva instalación de macOS Sierra 10.12 (Recuperado), brew install cairodebería ser suficiente, recién confirmado.
Kulbear
2
parece que brew install cairose instala automáticamente pkg-configtambién
jacoballenwood
14

Si alguien todavía tiene este problema y encontró esta página, lo siguiente funciona para CentOS 6.6:

sudo yum install cairo cairo-devel

Básicamente, la solución es que necesita instalar el paquete de desarrollo y el paquete normal (la mejor respuesta aquí hace lo mismo, excepto para Ubuntu, cada distribución puede ser diferente).

Ryan M
fuente
5

Seguí los pasos dados por @Piyush. Pero necesitaba un paso adicional para que funcionara. Estoy usando OS X 10.14.5

Entonces esto es lo que seguí.

brew install pkg-config
brew install cairo
pkg-config --atleast-version=1.12.2 cairo
export PKG_CONFIG_PATH=/usr/X11/lib/pkgconfig/
export PKG_CONFIG_PATH="${PKG_CONFIG_PATH}:/usr/local/opt/libffi/lib/pkgconfig"
npm install canvas

Yasith Prabuddhaka
fuente
3

La respuesta aceptada está bien si usa apt-get. Para usuarios de YUM / DNF (Fedora, CentOS, otros sistemas similares a RHEL), use lo siguiente

yum install cairo cairo-devel cairomm-devel libjpeg-turbo-devel pango pango-devel pangomm pangomm-devel
Arcilla
fuente
2

Cuando me encontré con este problema, el problema era que la versión de pkg-configen mi ruta era la versión proporcionada por chefdk en lugar de la versión instalada de Homebrew.

$ which pkg-config
/usr/local/bin/pkg-config

$ eval "$(chef shell-init bash)"
$ which pkg-config
/opt/chefdk/embedded/bin/pkg-config

La solución fue eliminar la eval "$(chef shell-init bash)"entrada de mi perfil de bash.

Más discusión sobre el problema en la generación de rutas de chefdk en Github https://github.com/chef/chef-dk/issues/313

Brian Skarda
fuente
1

Solo necesitaba instalar pkg-config en OSX 10.10.4

brew install pkg-config

Fush
fuente
0

Para Ubuntu, estos son los comandos. Además, aquí está la referencia .

$ sudo apt-get update 
$ sudo apt-get install build-essential libcairo2-dev libpango1.0-dev libjpeg-dev libgif-dev librsvg2-dev 
Shahar Ben Ezra
fuente