O pacote cairo não foi encontrado no caminho de pesquisa do pkg-config. Problema de tela de instalação do Node js


101

Estou tendo um problema ao instalar o módulo canvas no node .. Parece ser algo com o Cairo que estou recebendo este erro ...

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

Não tenho certeza do que isso significa! Agradeceria qualquer ajuda! Por exemplo, como um mkdir cairo pc na variável de ambiente pkg_config_path?



ah, obrigado Ken, eu segui isso, mas agora eu tenho este erro CXX (destino) Release / obj.target / canvas / src / Canvas.o No arquivo incluído de ../src/Canvas.cc:7: ../src/ Canvas.h: 19: 10: erro fatal: arquivo 'cairo / cairo.h' não encontrado #include <cairo / cairo.h>
plimbs

Respostas:


135

Tive o mesmo problema e o link da @Epistemex me ajudou a resolvê-lo.

... Você precisa instalar libcairo2-dev, libjpeg-deve libgif-devpacotes ...

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

5
Também precisava do pacote pangocairo, resolvido comsudo apt-get install libpango1.0-dev
Adlen Afane

Isso não vai funcionar na instância do amzon ec2, pois eles não são debian? qualquer um conhece o comando yum para isso
Máx.

5
cairo-devel libjpeg-devele giflib-develsão os pacotes Amazon Linux. @Max
Stephen Reid

68

Eu também estava enfrentando o mesmo problema no mac, então tentei essas etapas e encontrei a solução

Versão Mac OSX> = 10.7.5 node -v = v0.8.12

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

Se retornar 1, você precisará definir a variável de ambiente PKG_CONFIG_PATH para que cairo.pc e fontconfig.pc possam ser encontrados

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

Executando pkg-config novamente ...

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

$ echo $?

Se retornar um 0, então está tudo bem no capô.

$ npm install canvas

1
Aprecie os detalhes. Um bom.
neelmeg de

1
Obrigado pelas dicas usando Mac / brew. No Mac, se você estiver usando macports, funcionou para mim: $ sudo port install cairo $ sudo port install pkgconfig # não tenho certeza se este é obrigatório ...: / $ npm install canvas
DerekC

32

Tive o mesmo problema no OS X 10.11.2 durante a instalação do qrcodepacote.

Resolvido com a instalação destes:

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

4
brew install cairofoi suficiente no meu caso (macOS Sierra 10.12.1)
sakisk

1
com uma instalação novinha em folha do macOS Sierra 10.12 (Recuperado), brew install cairodeve bastar, acaba de confirmar.
Kulbear

2
parece que brew install cairoinstalar automaticamente pkg-configassim
jacoballenwood

14

Se alguém ainda está tendo esse problema e encontrou esta página, o seguinte funciona para CentOS 6.6:

sudo yum install cairo cairo-devel

Basicamente, a solução é que você precisa instalar o pacote de desenvolvimento assim como o pacote regular (a melhor resposta aqui faz a mesma coisa - exceto para o Ubuntu - cada distro pode ser diferente).


5

Segui os passos dados por @Piyush. Mas eu precisava de um passo extra para fazer funcionar. Estou usando o OS X 10.14.5

Então foi isso que eu segui.

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

A resposta aceita está bem se você usar o apt-get. Para usuários YUM / DNF (Fedora, CentOS, outros sistemas semelhantes ao RHEL), use o seguinte

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

2

Quando me deparei com esse problema, o problema era que a versão do pkg-configno meu caminho era a versão fornecida pelo chefdk em vez da versão instalada do homebrew.

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

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

A solução foi remover a eval "$(chef shell-init bash)"entrada do meu perfil do bash.

Mais discussão sobre o problema na geração do caminho do chefdk no Github https://github.com/chef/chef-dk/issues/313


1

Eu só precisava instalar o pkg-config no OSX 10.10.4

brew install pkg-config


0

Para o Ubuntu, esses são os comandos. Além disso, aqui está a referência .

$ sudo apt-get update 
$ sudo apt-get install build-essential libcairo2-dev libpango1.0-dev libjpeg-dev libgif-dev librsvg2-dev 
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.