Пакет cairo не найден в пути поиска pkg-config. Проблема с установкой холста Node js


103

У меня возникла проблема с установкой модуля холста в node .. Кажется, что-то с cairo я получаю эту ошибку ...

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

Я не совсем понимаю, что все это значит! Был бы признателен за любую помощь! Например, как на ПК mkdir cairo в переменной среды pkg_config_path?


Посмотрим, поможет ли это: github.com/LearnBoost/node-canvas/issues/225

ах, спасибо, Кен, я следил за этим, но теперь у меня есть эта ошибка 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>
plimbs

Ответы:


138

Была та же проблема, и ссылка @ Epistemex помогла мне устранить ее.

... Вам нужно установить libcairo2-dev, libjpeg-devи libgif-devпакеты ...

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

6
Мне также нужен был пакет pangocairo, решенный с помощьюsudo apt-get install libpango1.0-dev
Адлен Афан

Это не будет работать в экземпляре amzon ec2, поскольку они не являются debian? любой знает команду yum для этого
Макс

5
cairo-devel libjpeg-develи giflib-develявляются пакетами Amazon Linux. @Max
Стивен Рид

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, это сработало для меня: $ sudo port install cairo $ sudo port install pkgconfig # не уверен, что это обязательно ...: / $ npm install canvas
DerekC

32

Была такая же проблема в OS X 10.11.2 при установке qrcodeпакета.

Решено установкой этих:

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

В основном решение состоит в том, что вам необходимо установить пакет разработки, а также обычный пакет (лучший ответ здесь делает то же самое - за исключением 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, а не установленной версией homebrew.

$ 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.

Более подробное обсуждение проблемы генерации пути chefdk на Github https://github.com/chef/chef-dk/issues/313


1

Мне просто нужно было установить pkg-config на OSX 10.10.4

brew install pkg-config


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.