在pkg-config搜索路径中找不到软件包cairo。Node JS安装画布问题


101

我在节点上安装canvas模块时遇到问题..似乎与开罗有关,我收到此错误...

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

我不确定这意味着什么!希望对您有所帮助!例如,如何在pkg_config_path环境变量中安装mkdir cairo pc?



啊,谢谢,肯,我遵循了这个规则,但是现在我遇到了这个错误CXX(target)Release / obj.target / canvas / src / Canvas.o在../src/Canvas.cc:7中包含的文件中:../src/ Canvas.h:19:10:致命错误:找不到'cairo / cairo.h'文件#include <cairo / cairo.h>
夹住

Answers:


135

遇到相同的问题,@ Epistemex的链接帮助我进行了故障排除。

...您需要安装libcairo2-devlibjpeg-devlibgif-dev包...

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

5
我还需要Pangocairo软件包,解决方法是sudo apt-get install libpango1.0-dev
Adlen Afane 2015年

这在amzon ec2实例中不起作用,因为它们不是debian?任何人都知道yum命令
Max

5
cairo-devel libjpeg-devel并且giflib-devel是Amazon Linux软件包。@Max
Stephen Reid

68

我在Mac上也遇到了同样的问题,所以我尝试了这些步骤,并找到了解决方案

Mac OSX版本> = 10.7.5节点-v = v0.8.12

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

如果返回1,则需要设置PKG_CONFIG_PATH环境变量,以便可以找到cairo.pc和fontconfig.pc。

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

再次运行pkg-config ...

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

$ echo $?

如果返回0,则说明一切正常。

$ npm install canvas

1
欣赏细节。好一个
neelmeg

1
感谢使用Mac / brew的指针。在Mac上,如果您使用macports,这对我
有用

32

在安装qrcode软件包时,在OS X 10.11.2上存在相同的问题。

通过安装以下解决方案:

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

4
brew install cairo就我而言,这仅够用(macOS Sierra 10.12.1)
sakisk

1
brew install cairo刚刚确认,全新安装macOS Sierra 10.12(已恢复)就足够了。
库尔伯(Kulbear)

2
它看起来也像brew install cairo自动安装pkg-config一样
jacoballenwood's

14

如果任何人仍然有此问题并找到此页面,则以下内容适用于CentOS 6.6:

sudo yum install cairo cairo-devel

基本上,解决方案是您需要安装开发软件包以及常规软件包(此处的最佳答案是做同样的事情-除了Ubuntu以外,每个发行版都可以有所不同)。


5

我遵循@Piyush给出的步骤。但是我需要采取额外的步骤才能使其正常工作。我正在使用OS X 10.14.5

这就是我遵循的。

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

如果使用apt-get,可接受的答案就很好。对于YUM / DNF用户(Fedora,CentOS,其他类似RHEL的系统),请使用以下命令

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

2

当我遇到这个问题时,问题是pkg-config我路径上的版本是chefdk提供的版本,而不是自制安装的版本。

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

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

解决的办法是eval "$(chef shell-init bash)"从我的bash个人资料中删除该条目。

在Github上对Chefdk的路径生成中的问题进行更多讨论https://github.com/chef/chef-dk/issues/313


1

我只需要在OSX 10.10.4上安装pkg-config

brew install pkg-config


0

对于Ubuntu,这些是命令。另外,这是参考

$ sudo apt-get update 
$ sudo apt-get install build-essential libcairo2-dev libpango1.0-dev libjpeg-dev libgif-dev librsvg2-dev 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.