必要そうなパッケージを入れて準備
apt-get install libjpeg-dev libgd2-xpm-dev libpng-dev
CPANでインストール実行
perl -MCPAN -e shell
cpan[1]> install GD
make testでtest 10なる項目でこける。
PERL_DL_NONLAZY=1 /usr/bin/perl "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/GD.t ........ 1/12 Testing using png support.
t/GD.t ........ Failed 1/12 subtests
(less 1 skipped subtest: 10 okay)
t/Polyline.t .. ok
Test Summary Report
-------------------
t/GD.t (Wstat: 0 Tests: 12 Failed: 1)
Failed test: 10
Files=2, Tests=13, 0 wallclock secs ( 0.02 usr 0.00 sys + 0.08 cusr 0.00 csys = 0.10 CPU)
Result: FAIL
Failed 1/2 test programs. 1/13 subtests failed.
make: *** [test_dynamic] エラー 255
t/GD.tのtest10を見てみる
t/GD.t
if (GD::Image->can('newFromJpeg')) {
compare(test10('frog.jpg'),10);
} else {
print "ok ",10," # Skip, no JPEG support\n";
}
~略~
sub test10 {
my $fn = shift;
my $im = GD::Image->newFromJpeg($fn);
return image($im)
}
なんとなく変換した後の画像データが意図したデータになっているかのテストっぽい。
いろいろ調べると以下のフォーラムがヒットした
どうやらlibjpeg8の場合にこのテストエラーが起こるらしい。
Debian7だとlibgd2-xpm-dev (もしくはlibgd2-noxpm-dev)の依存としてlibjpeg8が入ってしまう。
libjpeg64を無理やり入れようとすると、依存関係からlibgd2-xpm-devがremoveされる。
お手上げ。
libjpeg8で変換した画像は実用では特に問題なさげなのでforceでインストールした。
perl -MCPAN -e shell
cpan[1]> force install GD
これだとインストール成功
インストール後、実運用のperlスクリプトでテストしたところでは、jpegの処理に問題はなさそうなのでとりあえずこれでOK。