简而言之:
我必须在 Ubuntu 16.04 服务器上安装哪些软件包才能获得可以将文本绘制到图像中的 perl 模块的完整字体支持?
详细地:
我在虚拟机上运行着 Ubuntu 16.04.1 LTS(服务器,即没有 GUI),还有一台旧的 Ubuntu 14.04 服务器(也没有 GUI),我想将一些应用程序从旧服务器移到新的 16.04 机器上。下面描述的应用程序在旧机器上运行良好,但在新机器上却不行。
我在这台机器上运行着一个网络服务器(apache),那里有一个网站,其中包含一个带有验证码(显示一些文本的图像)的电子邮件表单。我使用 cpan 模块通过 perl 脚本生成此验证码成像仪。
在这个 perl 脚本中,有这样一个命令可以加载字体,以便我稍后可以使用它在图像中绘制字母:
my $font = Imager::Font->new(file=>$font_filename) or die "Cannot load $font_filename: ", Imager->errstr;
其中 $font_filename 是现有 ttf 字体的文件名。(我检查过了。字体在那里,而且可以读取。)但此命令失败。我收到以下错误消息:
Cannot load /path/to/fontdir/opensans-bold.ttf: No font drivers enabled that can support this file, rebuild Imager with any of ft2 (FreeType 2.x), tt (FreeType 1.x) to use this font file at ./myPerlScript.pl line 123.
这条信息说我应该“使用 ft2 (FreeType 2.x)、tt (FreeType 1.x) 中的任何一个重建 Imager“。
我不知道该怎么做。
我认为我需要安装一个包含适用于 ubuntu 16.04 的字体支持的软件包,然后重新安装 cpan 模块成像仪。
如果确实只是缺少一个包:是哪一个?
如果是其他问题:我必须做什么才能使 Imager 能够使用我的 ttf 字体?
答案1
我自己找到了答案:
丢失的数据包是 libfreetype6-dev:
apt install libfreetype6-dev
但我还必须安装这个才能使 Imager 正常工作(不是因为字体,而是因为读取和写入图像):
apt install libpng-dev
apt install libjpeg-dev
cpanm install Imager::File::PNG
cpanm install Imager::File::JPEG