Package cairo tidak ditemukan di jalur pencarian pkg-config. Node js menginstal masalah kanvas

101

Saya mengalami masalah saat menginstal modul kanvas di node .. Sepertinya ada masalah dengan Kairo Saya mendapatkan kesalahan ini ...

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

Saya tidak yakin apa artinya semua itu! Akan sangat menghargai bantuan apa pun! Misalnya bagaimana cara mkdir cairo pc di variabel lingkungan pkg_config_path?

Plimbs
sumber
ah terima kasih ken, saya mengikuti ini tetapi sekarang saya memiliki kesalahan ini CXX (target) Rilis / obj.target / canvas / src / Canvas.o Dalam file yang disertakan dari ../src/Canvas.cc:7: ../src/ Canvas.h: 19: 10: fatal error: 'cairo / cairo.h' file tidak ditemukan #include <cairo / cairo.h>
plimbs

Jawaban:

135

Memiliki masalah yang sama dan @ Epistemex ini link yang membantu saya memecahkan masalah itu.

... Anda perlu menginstal libcairo2-dev, libjpeg-devdan libgif-devpaket ...

sudo apt-get install libcairo2-dev libjpeg-dev libgif-dev
HenryHey
sumber
5
Saya juga membutuhkan paket pangocairo, diselesaikan dengansudo apt-get install libpango1.0-dev
Adlen Afane
Ini tidak akan berfungsi dalam contoh amzon ec2, karena mereka bukan debian? ada yang tahu perintah yum untuk ini
Max
5
cairo-devel libjpeg-develdan giflib-develmerupakan paket Amazon Linux. @Max
Stephen Reid
68

Saya juga menghadapi masalah yang sama di mac jadi saya telah mencoba langkah-langkah ini & saya mendapat solusi

Versi Mac OSX> = 10.7.5 node -v = v0.8.12

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

Jika mengembalikan 1 Anda perlu mengatur variabel lingkungan PKG_CONFIG_PATH sehingga cairo.pc dan fontconfig.pc dapat ditemukan

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

Menjalankan pkg-config lagi ...

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

$ echo $?

Jika mengembalikan 0 maka semuanya baik-baik di kap mesin.

$ npm install canvas
Piyush Dholariya
sumber
1
Hargai detailnya. Bagus.
neelmeg
1
Terima kasih atas petunjuk menggunakan Mac / brew. Di Mac, jika Anda menggunakan macports, ini berfungsi untuk saya: $ sudo port install cairo $ sudo port install pkgconfig # tidak yakin yang ini wajib ...: / $ npm install canvas
DerekC
32

Memiliki masalah yang sama di OS X 10.11.2 saat menginstal qrcodepaket.

Dipecahkan dengan menginstal yang ini:

brew install cairo
brew install pkg-config
xcode-select --install
Alexander Danilov
sumber
4
Hanya brew install cairocukup dalam kasus saya (macOS Sierra 10.12.1)
sakisk
1
dengan penginstalan baru macOS Sierra 10.12 (Pulih), brew install cairoseharusnya sudah cukup, baru dikonfirmasi.
Kulbear
2
sepertinya brew install cairootomatis menginstal pkg-configjuga
jacoballenwood
14

Jika ada yang masih mengalami masalah ini dan menemukan halaman ini, berikut ini berfungsi untuk CentOS 6.6:

sudo yum install cairo cairo-devel

Pada dasarnya solusinya adalah Anda perlu menginstal paket pengembangan serta paket reguler (jawaban terbaik di sini melakukan hal yang sama - kecuali untuk Ubuntu - setiap distro bisa berbeda).

Ryan M.
sumber
5

Saya mengikuti langkah-langkah yang diberikan oleh @Piyush. Tapi saya membutuhkan langkah ekstra untuk membuatnya berhasil. Saya menggunakan OS X 10.14.5

Jadi inilah yang saya ikuti.

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
sumber
3

Jawaban yang diterima baik-baik saja jika Anda menggunakan apt-get. Untuk pengguna YUM / DNF (Fedora, CentOS, sistem serupa RHEL lainnya), gunakan yang berikut ini

yum install cairo cairo-devel cairomm-devel libjpeg-turbo-devel pango pango-devel pangomm pangomm-devel
Tanah liat
sumber
2

Ketika saya mengalami masalah ini, masalahnya adalah bahwa versi pkg-configdi jalur saya adalah versi yang disediakan oleh chefdk, bukan versi yang diinstal homebrew.

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

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

Solusinya adalah menghapus eval "$(chef shell-init bash)"entri dari profil bash saya.

Diskusi lebih lanjut tentang masalah ini dalam pembuatan jalur chefdk di Github https://github.com/chef/chef-dk/issues/313

Brian Skarda
sumber
1

Saya hanya perlu menginstal pkg-config di OSX 10.10.4

brew install pkg-config

Fush
sumber
0

Untuk Ubuntu, ini adalah perintahnya. Juga, inilah referensinya .

$ sudo apt-get update 
$ sudo apt-get install build-essential libcairo2-dev libpango1.0-dev libjpeg-dev libgif-dev librsvg2-dev 
Shahar Ben Ezra
sumber