安装 node-canvas 遇到的各种问题

Npm安装Canvas出现如下提示

npm http GET https://registry.npmjs.org/canvas

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

> [email protected] install /Users/jinyachen/nodejs/graduation/node-plus/node_modules/canvas

> node-gyp rebuild

./util/has_cairo_freetype.sh: line 4: pkg-config: command not found

gyp: Call to ‘./util/has_cairo_freetype.sh‘ returned exit status 0.

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:337:16)

gyp ERR! stack     at ChildProcess.EventEmitter.emit (events.js:98:17)

gyp ERR! stack     at Process.ChildProcess._handle.onexit (child_process.js:797:12)

gyp ERR! System Darwin 13.1.0

gyp ERR! command "node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"

gyp ERR! cwd /Users/jinyachen/nodejs/graduation/node-plus/node_modules/canvas

gyp ERR! node -v v0.10.25

gyp ERR! node-gyp -v v0.12.2

gyp ERR! not ok

npm ERR! [email protected] install: `node-gyp rebuild`

npm ERR! Exit status 1

npm ERR!

npm ERR! Failed at the [email protected] install script.

npm ERR! This is most likely a problem with the canvas package,

npm ERR! not with npm itself.

npm ERR! Tell the author that this fails on your system:

npm ERR!     node-gyp rebuild

npm ERR! You can get their info via:

npm ERR!     npm owner ls canvas

npm ERR! There is likely additional logging output above.

npm ERR! System Darwin 13.1.0

npm ERR! command "node" "/usr/local/bin/npm" "install"

npm ERR! cwd /Users/jinyachen/nodejs/graduation/node-plus

npm ERR! node -v v0.10.25

npm ERR! npm -v 1.3.24

npm ERR! code ELIFECYCLE

npm ERR!

npm ERR! Additional logging details can be found in:

npm ERR!     /Users/jinyachen/nodejs/graduation/node-plus/npm-debug.log

npm ERR! not ok code 0

Github 有人说:

Try adding the following to your environment variables. Took me a while to figure this
out. And this could be an invalid solution depending on how you installed pkgconfig or cairo.

Lion and Earlier: $ export PKG_CONFIG_PATH=/usr/X11/lib/pkgconfig

Mountain Lion:
$ export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig

(官网有对上面的说明,对于官网的说明,我在这里不再进行讲述。由于我已经执行了 红字的命令,所以后面的操作没有再添加这个环境变量)

即将pkgconfig添加到环境变量。但是我没有成功。

后来找了找,看了下官方wiki,https://github.com/LearnBoost/node-canvas/wiki/Installation---OSX

官方提示的 是查看系统是否安装了pkgconfig,我看了下,木有安装,所以要先按照pkgconfig。。。

$ curl http://pkgconfig.freedesktop.org/releases/pkg-config-0.23.tar.gz -o pkgconfig.tgz
$ tar -zxf pkgconfig.tgz && cd pkg-config-0.23
$ ./configure && make install

在 make阶段报错:

duplicate
symbol _g_bit_nth_lsf in:

testglib.o

./.libs/libglib.a(gutils.o)

duplicate symbol _g_bit_nth_msf in:

testglib.o

./.libs/libglib.a(gutils.o)

duplicate symbol _g_bit_storage in:

testglib.o

./.libs/libglib.a(gutils.o)

ld: 45 duplicate symbols for architecture x86_64

clang: error: linker command failed with exit code 1 (use -v to see invocation)

make[3]: *** [testglib] Error 1

make[2]: *** [install-recursive] Error 1

make[1]: *** [install] Error 2

make: *** [install-recursive] Error 1

搜索了一下,说是修改C文件的某行代码。。但是我实在是找不到那个文件

所以下了个目前最新的 pkg-config-0.28 版本(觉得他们应该在新版本里修复这个问题了)

configure的时候报错

configure: error: Either a previously installed pkg-config or "glib-2.0 >= 2.16" could not be found. Please set GLIB_CFLAGS and GLIB_LIBS to the correct values or pass --with-internal-glib
to configure to use the bundled copy.

Google了一下,再加上看官方文档,在 ./configure 后面加了  --with-internal-glib

$ ./configure --with-internal-glib
$  make install

运行顺利,但是执行make install的时候提示权限错误

然后我用sudo重新编译安装了一遍,没有错误提示。(以后的编译和安装都需要sudo提权)

之后回到要按照canvas的工程,执行npm
install canvas,发现缺少cairo.

ok,返回canvas的官方wiki发现要安装cairo,还要安装他的依赖包
pixman。

通过前面的教训,我直接到官网下载最新版本的pixman
(pixman-0.32.4 2014.5.20)。

安装的时候注意提权。

$ ./configure --prefix=/usr/local --disable-dependency-tracking
$ sudo make install

pixman顺利安装,虽然有许多warning,但是毕竟没有error

然而在按装cairo (cairo-1.12.16)
的时候,configure报错


Could not find libpng in the pkg-config search path

只好去libpng官方下载源码包进行安装
http://www.libpng.org/pub/png/libpng.html,安装方法一样configure 然后make install,一切正常。

然后返回cairo目录下 执行编译和按装

$ ./configure --prefix=/usr/local --disable-dependency-tracking
$ sudo make install

按照顺利,虽然

warning: argument unused during compilation

这个提示一直不断。。。

下面回到nodejs的工程目录。。。。

npm install canvas

安装顺利,warning不断。

--------------------------------------------------------------------------------------------------------------------------------------------

安装的包(按照安装顺序排列,安装时注意提权)

pkg-config-0.28 (注意 --with-internal-glib参数)

pixman-0.32.4

libpng-1.6.10

cairo-1.12.16.tar

--------------------------------------------------------------------------------------------------------------------------------------------

Wll done!!!开始使用 Node-Canvas吧!

安装 node-canvas 遇到的各种问题,布布扣,bubuko.com

时间: 2024-10-14 12:30:09

安装 node-canvas 遇到的各种问题的相关文章

centos 6.5安装node.js

1.检查是否安装gcc编译器 rpm -q gcc rpm -q gcc-c++ 2.如果没有安装则通过以下代码安装gcc编译器 yum -y install gcc-c++ kernel-devel 3.检查python版本,因为安装node.js python版本需要大于2.6 python -V 4.更新软件源 yum -y update && yum -y groupinstall "Development Tools" 5.下载安装包 sudo wget ht

Linux上用mvn安装node.js

上一篇blog简略的讲了ubuntu系统的安装,接下来讲讲Ubuntu上的基于node.js的web开发环境的搭建. Node在快速构建网络服务有着极大的优势,以下内容分享用nvm来安装nodejs.事实上,这是我目前为止用过的简单易懂的安装方式了. Nvm是node的一个版本管理器.用它可以方便的管理和安装node. Ctrl + alt + T 打开terminal . 输入脚本: wget -qO- https://raw.githubusercontent.com/creationix/

node.js在windows下的学习笔记(1)---安装node.js

1.首先打开http://www.nodejs.org/ 2.选择DOWNLOADS,跳转到下面的画面,我的系统是windows7的32位.所以选择.msi的32bit版本. 3.下载后,得到一个5.43MB大小的安装包, 4.运行安装包 点击next 打个勾,点击next 选择安装目录 最后,安装成功啦 node.js在windows下的学习笔记(1)---安装node.js,布布扣,bubuko.com

[Cubieboard] 在Cubieboard上安装Node.js和npm

你有两个选择可以实现在Cubieboard上安装NodeJS,下载别人已经编译完成适用于Cubieboard的NodeJS二进制包,或者自己下载源码自行在Cubieboard上进行编译. 使用编译完成的二进制包 在这里下载适用于ARM架构的Node.js,如果在Cubieboard社区找不到相关资源,可以在RaspberryPi社区寻找相近的资源.例如在<Node.js installation for Raspberry Pi>一文中提供了最新的适用于RaspberryPi的Node.js可

nvm安装node和npm,个人踩坑记录

我采用nvm-setup安装windows版本的nvm nvm安装node出现的问题: 1.node成功了,npm没成功 解决:在nvm 安装了node之后,输入npm找不到该命令,当时安装报错如下: 报错其实也看不明白,大概感觉是npm包下载的地址没连上,出错了,查看nvm目录文件夹,有一个temp文件夹,里面存放着npm的压缩包,把temp整个文件夹删除,执行uninstall v6.10.2的时候,提示删除失败,需要手动删除,其实他是只删除了存放nodejs的文件夹,但是相应版本删除失败,

Ubuntu 安装 node.js(JavaScript)

转自: 在Ubuntu上安装最新版本的Node.js Node.js包含了Google V8 JavaScript引擎,libuv库和核心库几乎都是使用JavaScript编写的.libuv库提供了异步事件I/O的抽象和Node.js跨平台的机制. Node.js最初是由Ryan Dahl创建的,目前由Isaac Schlueter在演进和维护. 在互联网上有很多从源码编译安装Node.js的文章,在此我强烈建议不要采用这种方法.大多数情况下,包维护者对软件结构了解的非常清楚,开发者无需从头编译

yum安装node.js

1.安装EPEL库 yum install epel-release 2.安装Node.js yum install nodejs 3.安装nodejs中常用的npm软件包管理器 yum install npm 4.验证是否安装配置成功 node -v  

CentOS 6 中安装Node.js 4.0 版本或以上

如果想在CentOS 6 中安装Node.js >4.0,如果通过以往的方式安装: wget https://nodejs.org/dist/latest/node-v4.0.0.tar.xz tar zvxf node-v4.0.0.tar.xz cd node-v4.0.0 ./configure make && make install 会遇到报错提示: WARNING: C++ compiler too old, need g++ 4.8 or clang++ 3.4 (CX

[Mac系统]安装node.js

1.先安装好HomeBrew,教程 2.打开终端,给/usr/local超级管理权限 sudo chmod -R 777 /usr/local 3.安装node.js brew install node 4.安装完毕,输入node -v,出现版本号 5.安装完成.

安装Node.js

1.window下安装Node.js 安装git,方便使用命令行. 网址:http://www.git-scm.com/download/ 下载后直接安装即可 接着安装Node.js https://nodejs.org/ 从首页直接下载安装即可,然后进入cmd中验证 输入node -v 会输出版本号,npm -v 输出版本号,说明安装成功 2.Linux下安装Node.js 安装环境要求 gcc 4.2 or newer g++4.2 or newer Python 2.6 or 2.7 GN