Gói cairo không được tìm thấy trong đường dẫn tìm kiếm pkg-config. Node js cài đặt vấn đề canvas


101

Tôi đang gặp sự cố khi cài đặt cài đặt mô-đun canvas trong nút..Có vẻ như có vấn đề với cairo Tôi gặp lỗi này ...

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

Tôi không chắc nó có nghĩa là gì! Xin đánh giá cao bất kỳ sự trợ giúp nào! Ví dụ: làm thế nào để một pc mkdir cairo trong biến môi trường pkg_config_path?


Xem liệu điều này có hữu ích không: github.com/LearnBoost/node-canvas/issues/225

ah cảm ơn ken, tôi đã làm theo cái này nhưng bây giờ tôi gặp lỗi này CXX (target) Release / obj.target / canvas / src / Canvas.o Trong tệp bao gồm từ ../src/Canvas.cc:7: ../src/ Canvas.h: 19: 10: lỗi nghiêm trọng: không tìm thấy tệp 'cairo / cairo.h' #include <cairo / cairo.h>
plimbs

Câu trả lời:


135

Gặp vấn đề tương tự và liên kết của @ Epistemex đã giúp tôi khắc phục sự cố.

... Bạn cần cài đặt libcairo2-dev, libjpeg-devlibgif-devcác gói ...

sudo apt-get install libcairo2-dev libjpeg-dev libgif-dev

5
Tôi cũng cần gói pangocairo, được giải quyết vớisudo apt-get install libpango1.0-dev
Adlen Afane

Điều này sẽ không hoạt động trong phiên bản amzon ec2, vì chúng không phải là debian? bất kỳ ai biết lệnh yum cho điều này
Tối đa

5
cairo-devel libjpeg-develgiflib-devellà các gói Amazon Linux. @Max
Stephen Reid

68

Tôi cũng gặp phải vấn đề tương tự trên mac vì vậy tôi đã thử các bước sau và tôi đã có giải pháp

Phiên bản Mac OSX> = 10.7.5 nút -v = v0.8.12

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

Nếu nó trả về 1, bạn sẽ cần đặt biến môi trường PKG_CONFIG_PATH để cairo.pc và fontconfig.pc có thể được tìm thấy

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

Đang chạy lại pkg-config ...

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

$ echo $?

Nếu nó trả về 0 thì tất cả đều ổn.

$ npm install canvas

1
Đánh giá cao các chi tiết. Tốt.
neelmeg

1
Cảm ơn những gợi ý sử dụng Mac / brew. Trên Mac, nếu bạn đang sử dụng macports, điều này làm việc cho tôi: $ sudo cổng cài đặt cairo cổng $ sudo cài đặt pkgconfig # không chắc chắn này là bắt buộc ...: / $ NPM cài đặt vải
DerekC

32

Gặp sự cố tương tự trên OS X 10.11.2 trong khi cài đặt qrcodegói.

Giải quyết bằng cách cài đặt những cái này:

brew install cairo
brew install pkg-config
xcode-select --install

4
Chỉ brew install cairolà đủ trong trường hợp của tôi (macOS Sierra 10.12.1)
sakisk

1
với bản cài đặt hoàn toàn mới của macOS Sierra 10.12 (Đã khôi phục), brew install cairosẽ là đủ, chỉ cần xác nhận.
Kulbear

2
nó trông giống như brew install cairotự động cài đặt pkg-configcũng
jacoballenwood

14

Nếu ai đó vẫn gặp sự cố này và tìm thấy trang này, thì những điều sau sẽ hoạt động cho CentOS 6.6:

sudo yum install cairo cairo-devel

Về cơ bản, giải pháp là bạn cần cài đặt gói phát triển cũng như gói thông thường (câu trả lời tốt nhất ở đây thực hiện điều tương tự - ngoại trừ dành cho Ubuntu - mỗi bản phân phối có thể khác nhau).


5

Tôi đã làm theo các bước do @Piyush đưa ra. Nhưng tôi cần thêm một bước để làm cho nó hoạt động. Tôi đang sử dụng OS X 10.14.5

Vì vậy, đây là những gì tôi đã làm theo.

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


3

Câu trả lời được chấp nhận chỉ tốt nếu bạn sử dụng apt-get. Đối với người dùng YUM / DNF (Fedora, CentOS, các hệ thống tương tự như RHEL khác), hãy sử dụng phần sau

yum install cairo cairo-devel cairomm-devel libjpeg-turbo-devel pango pango-devel pangomm pangomm-devel

2

Khi tôi gặp sự cố này, vấn đề là phiên bản pkg-configtrên đường dẫn của tôi là phiên bản do Chefdk cung cấp thay vì phiên bản cài đặt homebrew.

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

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

Giải pháp là xóa eval "$(chef shell-init bash)"mục nhập khỏi hồ sơ bash của tôi.

Thảo luận thêm về vấn đề trong quá trình tạo ra con đường của Chefdk trên Github https://github.com/chef/chef-dk/issues/313


1

Tôi chỉ cần cài đặt pkg-config trên OSX 10.10.4

brew install pkg-config


0

Đối với Ubuntu, đây là các lệnh. Ngoài ra, đây là tài liệu tham khảo .

$ sudo apt-get update 
$ sudo apt-get install build-essential libcairo2-dev libpango1.0-dev libjpeg-dev libgif-dev librsvg2-dev 
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.