阿里云 Linux 服务器安装 GraphicsMagick 全过程
2017年06月07日
本次安装的出发点是需要解决一个需求:让 node 后端可以处理图片,在图片上写入文字。
所以下面是整个程序的解决路径:
-
寻找得知 node 库 gm 可用来处理图片,一般的修改尺寸和在图片上写入文字,尤其是中文文字,都是可以解决的。
-
查看 gm 其 GitHub 地址得知,gm 是 nodejs 对 GraphicsMagick 和 ImageMagick 的封装。所以得首先安装 GraphicsMagick 才可。
-
在本地 Mac 电脑上安装很简单,且后续实现过程并没有碰到任何大的问题。只需要先在终端输入下面代码,然后再 npm 安装 gm 包即可:
brew install graphicsmagick
-
但是在阿里云 Linux 服务器上安装后,运行程序的过程却出现了问题:程序可以运行,可以修改图片的尺寸,但是唯独不能往图片上添加文字。但这个功能是必须的,所以说还需要进一步的查找解决。当实现此功能时会报错如下:
Command failed: gm convert: FreeType library is not available
-
中文意思即 FreeType 这个库不支持。不支持怎么办呢?安装呗!
-
经过一系列的查找测试,发现下面这个方法可以安装成功,不过可能会碰到
Cannot allocate memory
(不能分配内存)的问题,此时需先停止占用内存较大的程序后(例如service mysqld stop
)再输入下面代码安装:yum install -y freetype freetype-devel
-
之后便重新安装 GraphicsMagick 程序。安装过程如下:
-
下载 GraphicsMagick 安装包并解压
-
cd GraphicsMagick-1.3.23
进入此目录 -
./configure
输入这个命令,然后终端会出现一大堆的乱七八糟的东西,但有一个是需要注意的FreeType 2.0 --with-ttf=yes no/yes
,找到这一行,如果后面是 yes ,则可以接着进行安装。如果是 no ,那看上面第 6 步先安装此依赖程序。 -
make make install
-
-
安装好之后,接下来便是 node 安装 gm 包了,如果你是其他程序,看到此就不要看了。node 安装很简单了:
npm install gm
-
node 程序中此时运行
drawText
便不会报Command failed: gm convert: FreeType library is not available
这个错误了。
参考网址: