04月21, 2021

Centos安装node-canvas

我们经常有需求要使用代码来合成图片,在图片上绘制文字、二维码等东西。

满足功能需求的包有很多,其中gm和sharp我们之前已经在Node图片编辑工具gm和sharp介绍过。

node-canvas模块是在node中实现canvas渲染的一种方式。可结合Echarts等应用于服务端生成图片流,进行图片处理等,如导出word或pdf时根据数据动态生成图片并嵌入文档中。

canvas的介绍可参考前后端交互与Node:canvas的使用方法

在centos系统下,需要先安装node-canvas的依赖:

sudo yum install gcc-c++ cairo-devel libjpeg-turbo-devel pango-devel giflib-devel

npm install canvas

参考Installation: Fedora and other RPM based distributions

可能会遇到类似


Can't install via npm: stack Error: EACCES: permission denied

的问题,可以尝试使用

chmod -R 755 folder

来将node_modules文件夹的权限给设置下。

还有改用户和组的命令可以尝试:

chown -R yourusername:yourusername ~/Dev/project

然后运行

sudo npm install -g --unsafe-perm

的命令,或者先运行此命令。

注意:

sudo npm install -g --unsafe-perm命令会以root用户权限全局安装一个npm包。在执行命令时使用--unsafe-perm标志将允许npm在root模式下以任何用户身份运行生命周期脚本。虽然这个命令可以解决一些与权限相关的问题,但它会带来一定的安全风险。特别是当安装的npm包中包含恶意代码时,该代码将在root用户权限下运行,有可能对你的系统造成严重损害。

使用该命令时需要注意以下几点:

  1. 确保信任源代码:在使用--unsafe-perm标志安装npm包时,确保你信任这个包的源代码和维护者。不要轻易信任和安装来源不明的包。

  2. 限制全局安装:尽量避免全局安装npm包。除非你真的需要全局使用这个包(例如命令行工具),否则应该在项目目录中进行局部安装。

  3. 谨慎使用root权限:不要习惯性地使用root权限来解决问题。尽量在用户级别解决权限问题。例如,你可以使用chownchmod命令来调整目录和文件的权限。

  4. 了解你在做什么:在执行任何命令之前,确保你了解这个命令的作用和潜在的风险。不要盲目地复制和粘贴命令。

总之,虽然sudo npm install -g --unsafe-perm命令可以解决一些权限问题,但它不是一个理想的解决方案。在使用它之前,请确保你了解相关的安全风险,并采取适当的预防措施。

本文链接:https://www.daguanren.cc/post/Centos-an-zhuang-node-canvas.html

-- EOF --

Comments