Le paquet cairo est introuvable dans le chemin de recherche de pkg-config. Problème de canevas d'installation de Node js

101

Je rencontre un problème lors de l'installation du module canvas dans node..Il semble y avoir quelque chose avec le Caire J'obtiens cette erreur ...

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

Je ne sais pas ce que tout cela signifie! J'apprécierais toute aide! Par exemple, comment un pc mkdir cairo dans la variable d'environnement pkg_config_path?

plimbs
la source
ah merci ken, j'ai suivi cela mais maintenant j'ai cette erreur CXX (cible) Release / obj.target / canvas / src / Canvas.o Dans le fichier inclus de ../src/Canvas.cc:7: ../src/ Canvas.h: 19: 10: erreur fatale: fichier 'cairo / cairo.h' introuvable #include <cairo / cairo.h>
plimbs

Réponses:

135

J'ai eu le même problème et le lien de @ Epistemex m'a aidé à le résoudre.

... Vous devez installer libcairo2-dev, libjpeg-devet les libgif-devpackages ...

sudo apt-get install libcairo2-dev libjpeg-dev libgif-dev
HenryHey
la source
5
J'avais aussi besoin du paquet pangocairo, résolu avecsudo apt-get install libpango1.0-dev
Adlen Afane
Cela ne fonctionnera pas dans l'instance amzon ec2, car ils ne sont pas debian? n'importe qui sait yum commande pour cela
Max
5
cairo-devel libjpeg-develet giflib-develsont les packages Amazon Linux. @Max
Stephen Reid
68

J'étais également confronté au même problème sur mac, j'ai donc essayé ces étapes et j'ai obtenu une solution

Version Mac OSX> = 10.7.5 nœud -v = v0.8.12

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

S'il renvoie un 1, vous devrez définir la variable d'environnement PKG_CONFIG_PATH pour que cairo.pc et fontconfig.pc puissent être trouvés

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

Exécution de pkg-config à nouveau ...

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

$ echo $?

S'il renvoie un 0, tout va bien dans le capot.

$ npm install canvas
Piyush Dholariya
la source
1
Appréciez les détails. Bon.
neelmeg
1
Merci pour les pointeurs utilisant Mac / brew. Sur Mac, si vous utilisez macports, cela a fonctionné pour moi: $ sudo port install cairo $ sudo port install pkgconfig # pas sûr que celui-ci soit obligatoire ...: / $ npm install canvas
DerekC
32

Eu le même problème sur OS X 10.11.2 lors de l'installation du qrcodepackage.

Résolu en installant ceux-ci:

brew install cairo
brew install pkg-config
xcode-select --install
Alexandre Danilov
la source
4
Seul brew install cairoétait suffisant dans mon cas (macOS Sierra 10.12.1)
sakisk
1
avec une toute nouvelle installation de macOS Sierra 10.12 (récupéré), brew install cairodevrait suffire, vient de confirmer.
Kulbear
2
il ressemble à brew install cairoinstaller automatiquement pkg-configaussi bien
jacoballenwood
14

Si quelqu'un rencontre toujours ce problème et trouve cette page, ce qui suit fonctionne pour CentOS 6.6:

sudo yum install cairo cairo-devel

Fondamentalement, la solution est que vous devez installer le package de développement ainsi que le package régulier (la meilleure réponse ici fait la même chose - sauf pour Ubuntu - chaque distribution peut être différente).

Ryan M
la source
5

J'ai suivi les étapes données par @Piyush. Mais j'avais besoin d'une étape supplémentaire pour que cela fonctionne. J'utilise OS X 10.14.5

Voilà donc ce que j'ai suivi.

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
la source
3

La réponse acceptée est très bien si vous utilisez apt-get. Pour les utilisateurs de YUM / DNF (Fedora, CentOS, autres systèmes de type RHEL), utilisez ce qui suit

yum install cairo cairo-devel cairomm-devel libjpeg-turbo-devel pango pango-devel pangomm pangomm-devel
Argile
la source
2

Lorsque j'ai rencontré ce problème, le problème était que la version de pkg-configsur mon chemin était la version fournie par chefdk au lieu de la version installée par homebrew.

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

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

La solution était de supprimer l' eval "$(chef shell-init bash)"entrée de mon profil bash.

Plus de discussion sur le problème dans la génération de chemin de chefdk sur Github https://github.com/chef/chef-dk/issues/313

Brian Skarda
la source
1

J'avais juste besoin d'installer pkg-config sur OSX 10.10.4

brew install pkg-config

Fush
la source
0

Pour Ubuntu, ce sont les commandes. Aussi, voici la référence .

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