如何在Heroku-20栈上安装支持FreeType的GraphicsMagick?
解决方案
步骤1:调整构建包顺序
将heroku-buildpack-apt放在heroku-buildpack-graphicsmagick前面,确保安装GraphicsMagick之前系统已经装好freetype相关依赖,编译时可以正常检测到并启用对应支持。可以通过Heroku控制台的设置页面调整顺序,也可以使用Heroku CLI执行对应命令修改。
步骤2:配置Aptfile
在项目根目录新建名为Aptfile的文件,写入以下内容:
libfreetype6 libfreetype6-dev gsfonts
上述包会在构建阶段提前安装,分别提供freetype运行库、编译依赖,以及报错中缺失的ghostscript标准字体。
步骤3:重新部署验证
配置完成后提交修改重新触发构建,部署完成后可以运行以下命令验证freetype支持是否正常:gm convert -list font
如果能正常输出字体列表说明配置生效,图片添加文字功能即可正常使用。
提示:如果需要使用自定义字体,可将字体文件存入项目目录,执行gm命令时通过
-font /app/你的字体路径/字体文件名.ttf参数显式指定字体,避免路径识别错误。
备选方案
如果使用第三方GraphicsMagick构建包始终有问题,可以直接通过apt安装官方源的GraphicsMagick,无需额外的GM构建包:
- 移除原有的
bogini/heroku-buildpack-graphicsmagick构建包,仅保留heroku-buildpack-apt - 在
Aptfile中添加graphicsmagick条目,和之前的三个依赖包放一起 - 重新部署即可,apt安装的GraphicsMagick默认已集成freetype支持,兼容性更好。
内容的提问来源于stack exchange,提问作者Patrick Hübl-Neschkudla
相关产品推荐
相关产品推荐

