Pakiet cairo nie został znaleziony w ścieżce wyszukiwania pkg-config. Problem z instalacją płótna Node js

103

Mam problem z instalacją instalacji modułu Canvas w węźle ... Wygląda na to, że jest coś z kairem. Otrzymuję ten błąd ...

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

Nie jestem pewien, co to wszystko oznacza! Byłby wdzięczny za jakąkolwiek pomoc! Na przykład jak mkdir cairo pc w zmiennej środowiskowej pkg_config_path?

plimbs
źródło
ah dzięki ken, śledziłem to, ale teraz mam ten błąd CXX (target) Release / obj.target / canvas / src / Canvas.o W pliku zawartym z ../src/Canvas.cc:7: ../src/ Canvas.h: 19:10: błąd krytyczny: nie znaleziono pliku „cairo / cairo.h” #include <cairo / cairo.h>
plimbs

Odpowiedzi:

138

Miałem ten sam problem, a link @ Epistemex pomógł mi go rozwiązać.

... Musisz zainstalować libcairo2-dev, libjpeg-deva libgif-devpakiety ...

sudo apt-get install libcairo2-dev libjpeg-dev libgif-dev
Henry Hey
źródło
6
Potrzebowałem również pakietu pangocairo, rozwiązanego przezsudo apt-get install libpango1.0-dev
Adlen Afane
To nie zadziała w instancji amzon ec2, ponieważ nie są one debianem? ktoś zna polecenie yum do tego
Max
5
cairo-devel libjpeg-develi giflib-develsą to pakiety Amazon Linux. @Max
Stephen Reid
68

Miałem również ten sam problem na Macu, więc wypróbowałem te kroki i otrzymałem rozwiązanie

Wersja Mac OSX> = 10.7.5 node -v = v0.8.12

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

Jeśli zwróci 1, musisz ustawić zmienną środowiskową PKG_CONFIG_PATH, aby można było znaleźć cairo.pc i fontconfig.pc

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

Uruchamiam ponownie pkg-config ...

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

$ echo $?

Jeśli zwróci 0, wszystko jest w porządku.

$ npm install canvas
Piyush Dholariya
źródło
1
Doceń szczegóły. Dobry.
neelmeg
1
Dzięki za wskazówki przy użyciu Mac / brew. Na Macu, jeśli używasz macports, to zadziałało dla mnie: $ sudo port install cairo $ sudo port install pkgconfig # nie jestem pewien, czy ten jest obowiązkowy ...: / $ npm install canvas
DerekC
32

Miałem ten sam problem w systemie OS X 10.11.2 podczas instalowania qrcodepakietu.

Rozwiązany przez zainstalowanie tych:

brew install cairo
brew install pkg-config
xcode-select --install
Aleksandra Daniłowa
źródło
4
Tylko brew install cairow moim przypadku wystarczyło (macOS Sierra 10.12.1)
sakisk
1
z zupełnie nową instalacją macOS Sierra 10.12 (odzyskany), brew install cairopowinno wystarczyć, właśnie potwierdzone.
Kulbear
2
wygląda na to, że brew install cairoinstaluje się pkg-configrównież automatycznie
jacoballenwood
14

Jeśli ktoś nadal ma ten problem i znalazł tę stronę, to działa dla CentOS 6.6:

sudo yum install cairo cairo-devel

Zasadniczo rozwiązaniem jest zainstalowanie pakietu deweloperskiego, a także zwykłego pakietu (najlepsza odpowiedź tutaj robi to samo - z wyjątkiem Ubuntu - każda dystrybucja może być inna).

Ryan M.
źródło
5

Postępowałem zgodnie z instrukcjami podanymi przez @Piyush. Ale potrzebowałem dodatkowego kroku, aby to zadziałało. Używam OS X 10.14.5

Więc to jest to, co śledziłem.

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
źródło
3

Zaakceptowana odpowiedź jest w porządku, jeśli używasz apt-get. Dla użytkowników YUM / DNF (Fedora, CentOS, inne systemy podobne do RHEL) użyj następującego

yum install cairo cairo-devel cairomm-devel libjpeg-turbo-devel pango pango-devel pangomm pangomm-devel
Glina
źródło
2

Kiedy napotkałem ten problem, problem polegał na tym, że wersja pkg-configna mojej ścieżce była wersją dostarczoną przez chefdk zamiast wersji zainstalowanej przez homebrew.

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

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

Rozwiązaniem było usunięcie eval "$(chef shell-init bash)"wpisu z mojego profilu bash.

Więcej dyskusji na temat problemu w generowaniu ścieżki chefdk na Github https://github.com/chef/chef-dk/issues/313

Brian Skarda
źródło
1

Musiałem tylko zainstalować pkg-config na OSX 10.10.4

brew install pkg-config

Fush
źródło
0

W przypadku Ubuntu są to polecenia. Tutaj jest również odniesienie .

$ sudo apt-get update 
$ sudo apt-get install build-essential libcairo2-dev libpango1.0-dev libjpeg-dev libgif-dev librsvg2-dev 
Shahar Ben Ezra
źródło