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?

plimbs
fonte
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
HenryHey
fonte
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
Piyush Dholariya
fonte
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
Alexander Danilov
fonte
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).

Ryan M
fonte
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

Yasith Prabuddhaka
fonte
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
Argila
fonte
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

Brian Skarda
fonte
1

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

brew install pkg-config

Fush
fonte
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 
Shahar Ben Ezra
fonte