很多程序中需要进行图形图像的操作,借助canvas库提供的强大图形图像操作能力,我们能完成很多不可思议功能。但由于canvas库是一个本地node库,npm install时需要临时进行编译,过程中涉及到从远程源下载依赖,这些网络很多被墙,导致我们不能正常的编译该包,最后下载失败。这篇文章教你一步步如何在受限的网络中实现canvas的正常下载编译,并能移植到其他linux环境中。
这里以centos7,node10版本为例来介绍如何在上面安装canvas库。
1、环境信息
os: centos7
node:v10.16.2
npm: v6.14.4
2、安装依赖库
sudo yum install gcc-c++ cairo-devel libjpeg-turbo-devel pango-devel giflib-devel
这一步主要是安装一些编译工具,因为canvas库是由本地语言编写,安装的时候内部会调用编译工具临时进行编译,所以这一步不可缺少,如果你已安装过,请忽略
3、安装canvas
npm install --verbose --build-from-source --unsafe-perm canvas@2.6.0
--verbose:查看安装过程中的出错信息
--build-from-source:源码编译安装
--unsafe-perm:忽略一些权限问题
--build-from-source:源码编译安装
--unsafe-perm:忽略一些权限问题
在这一步安装的时候,大部分人大概率会在这一步出现问题:出现下载 /.../../node-header.tar.gz出错。
解决办法就是自己从nodejs网站下载对应的node header,我这里下载10.16.2版本的,下载地址:
node官网:nodejs.org/download/release/
下载完后,解压放到服务器的某个目录,设定读权限,然后执行:
npm install --verbose --build-from-source --unsafe-perm --nodedir={刚下载的node header解压目录} canvas@2.6.0
这样库即可安装成功。可以将这个依赖保存下来作为一键部署脚本的依赖,这样在其他linux环境也可以比较稳定的安装成功