pkg-config 검색 경로에서 패키지 cairo를 찾을 수 없습니다. Node JS 설치 캔버스 문제


101

노드에 캔버스 모듈을 설치하는 데 문제가 있습니다. 카이로에 문제가있는 것 같습니다.이 오류가 발생합니다.

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를 사용하는 방법은 무엇입니까?


이것이 도움이되는지 확인하십시오 : github.com/LearnBoost/node-canvas/issues/225

아 감사합니다 켄, 나는 이것을 따랐지만 이제이 오류가 발생했습니다 .CXX (target) Release / obj.target / canvas / src / Canvas.o In file included from ../src/Canvas.cc:7 : ../src/ Canvas.h : 19 : 10 : 치명적인 오류 : 'cairo / cairo.h'파일을 찾을 수 없습니다. #include <cairo / cairo.h>
plimbs

답변:


135

같은 문제가 있었고 @Epistemex의 링크 가 문제를 해결하는 데 도움이되었습니다.

... 당신은 설치해야 할 libcairo2-dev, libjpeg-dev그리고 libgif-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 인스턴스에서는 데비안이 아니므로 작동하지 않습니까? 누구든지 yum 명령을 알고 있습니다
Max

5
cairo-devel libjpeg-devel그리고 giflib-devel아마존 리눅스 패키지입니다. @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이 반환되면 cairo.pc 및 fontconfig.pc를 찾을 수 있도록 PKG_CONFIG_PATH 환경 변수를 설정해야합니다.

$ 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에서을 사용하는 경우 다음 과 같이 작동했습니다. $ sudo port install cairo $ sudo port install pkgconfig # 이것이 필수 항목인지 확실하지 않습니다 ... : / $ npm install canvas
DerekC

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
macOS Sierra 10.12 (복구 됨)의 새로운 설치 brew install cairo로 충분해야합니다.
Kulbear

2
brew install cairo자동으로 설치 pkg-config되는 것처럼 보입니다
jacoballenwood

14

누구든지이 문제가 계속 발생하고이 페이지를 발견 한 경우 CentOS 6.6에서 다음이 작동합니다.

sudo yum install cairo cairo-devel

기본적으로 해결책은 일반 패키지와 함께 개발 패키지를 설치해야한다는 것입니다 (우분투를 제외하고 여기에서 가장 좋은 답변은 동일한 작업을 수행합니다. 모든 배포판이 다를 수 있음).


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내 경로의 버전이 homebrew가 설치된 버전 대신 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 https://github.com/chef/chef-dk/issues/313 에서 chefdk의 경로 생성 문제에 대한 추가 토론


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 
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.