Das Paket cairo wurde im Suchpfad pkg-config nicht gefunden. Knoten js Install Canvas Problem

101

Ich habe ein Problem bei der Installation des Canvas-Moduls im Knoten. Es scheint etwas mit Cairo zu sein. Ich erhalte diesen Fehler.

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

Ich bin mir nicht sicher, was das alles bedeutet! Würde mich über jede Hilfe freuen! Zum Beispiel, wie man einen mkdir cairo-PC in der Umgebungsvariablen pkg_config_path erstellt?

plimbs
quelle
ah danke ken, ich bin dem gefolgt, aber jetzt habe ich diesen Fehler CXX (Ziel) Release / obj.target / canvas / src / Canvas.o In der Datei enthalten von ../src/Canvas.cc:7: ../src/ Canvas.h: 19: 10: Schwerwiegender Fehler: 'cairo / cairo.h' Datei nicht gefunden #include <cairo / cairo.h>
plimbs

Antworten:

135

Hatte das gleiche Problem und der Link von @ Epistemex half mir bei der Fehlerbehebung.

... Sie müssen installieren libcairo2-dev, libjpeg-devund libgif-devPakete ...

sudo apt-get install libcairo2-dev libjpeg-dev libgif-dev
HenryHey
quelle
5
Ich brauchte auch das Pangocairo-Paket, gelöst mitsudo apt-get install libpango1.0-dev
Adlen Afane
Dies wird in der amzon ec2 Instanz nicht funktionieren, da sie nicht debian sind? Jeder kennt Ihren Befehl dafür
Max
5
cairo-devel libjpeg-develund giflib-develsind die Amazon Linux-Pakete. @ Max
Stephen Reid
68

Ich hatte auch das gleiche Problem auf dem Mac, also habe ich diese Schritte ausprobiert und eine Lösung gefunden

Mac OSX Version> = 10.7.5 Knoten -v = v0.8.12

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

Wenn eine 1 zurückgegeben wird, müssen Sie die Umgebungsvariable PKG_CONFIG_PATH festlegen, damit cairo.pc und fontconfig.pc gefunden werden können

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

Pkg-config erneut ausführen ...

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

$ echo $?

Wenn es eine 0 zurückgibt, ist alles in der Haube.

$ npm install canvas
Piyush Dholariya
quelle
1
Schätzen Sie die Details. Gut.
Neelmeg
1
Vielen Dank für die Hinweise mit Mac / Brew. Auf dem Mac, wenn Sie verwenden macports, funktionierte dies für mich: $ sudo port install cairo $ sudo port install pkgconfig # nicht sicher, ob dies obligatorisch ist ...: / $ npm install canvas
DerekC
32

Hatte das gleiche Problem unter OS X 10.11.2 während der Installation qrcode Pakets.

Gelöst durch Installation dieser:

brew install cairo
brew install pkg-config
xcode-select --install
Alexander Danilov
quelle
4
Nur brew install cairowar in meinem Fall ausreichend (macOS Sierra 10.12.1)
Sakisk
1
mit einer brandneuen Installation von macOS Sierra 10.12 (wiederhergestellt) brew install cairosollte ausreichen, nur bestätigt.
Kulbear
2
es sieht so aus, als würde es auch brew install cairoautomatisch installiertpkg-config
jacoballenwood
14

Wenn immer noch jemand dieses Problem hat und diese Seite gefunden hat, funktioniert Folgendes für CentOS 6.6:

sudo yum install cairo cairo-devel

Grundsätzlich besteht die Lösung darin, dass Sie sowohl das Entwicklungspaket als auch das reguläre Paket installieren müssen (die beste Antwort hier macht dasselbe - außer für Ubuntu - jede Distribution kann anders sein).

Ryan M.
quelle
5

Ich habe die Schritte von @Piyush befolgt. Aber ich brauchte einen zusätzlichen Schritt, damit es funktioniert. Ich verwende OS X 10.14.5

Also folgte ich diesem Beispiel.

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
quelle
3

Die akzeptierte Antwort ist in Ordnung, wenn Sie apt-get verwenden. Verwenden Sie für YUM / DNF-Benutzer (Fedora, CentOS, andere RHEL-ähnliche Systeme) Folgendes

yum install cairo cairo-devel cairomm-devel libjpeg-turbo-devel pango pango-devel pangomm pangomm-devel
Lehm
quelle
2

Als ich auf dieses Problem stieß, bestand das Problem darin, dass die Version von pkg-configauf meinem Pfad die von chefdk bereitgestellte Version anstelle der von Homebrew installierten Version war.

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

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

Die Lösung bestand darin, den eval "$(chef shell-init bash)"Eintrag aus meinem Bash-Profil zu entfernen .

Weitere Informationen zu diesem Thema in der Pfadgenerierung von chefdk auf Github https://github.com/chef/chef-dk/issues/313

Brian Skarda
quelle
1

Ich musste nur pkg-config unter OSX 10.10.4 installieren

brew install pkg-config

Fush
quelle
0

Für Ubuntu sind dies die Befehle. Hier ist auch die Referenz .

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