CentOSでperlのGDモジュールをインストール

CentOS4.5でperlからQRコードを生成したかったのでやってみたらGDが入ってなかったのでPerlのGDモジュールをインストールするまでのメモ
最初CPANからいきなり入れてみようとした
●スーパーユーザーになって

$ su –
Password:
#

●CPANのシェルを起動

# perl -MCPAN -e shell
cpan shell — CPAN exploration and modules installation (v1.7601)
ReadLine support enabled
cpan>

●インストール実行

cpan> install GD

●質問には全部エンターで答えた

Where is libgd installed? [/usr/lib]
Please choose the features that match how libgd was built:
Build JPEG support? [y]
Build PNG support? [y]
Build FreeType support? [y]
Build GIF support? [y]
Build support for animated GIFs? [y]
Build XPM support? [y]

●なんかエラーがいっぱい

GD.xs:7:16: gd.h: No such file or directory
GD.xs:8:21: gdfontg.h: No such file or directory
GD.xs:9:21: gdfontl.h: No such file or directory
GD.xs:10:22: gdfontmb.h: No such file or directory
GD.xs:11:21: gdfonts.h: No such file or directory
GD.xs:12:21: gdfontt.h: No such file or directory
GD.xs:340: error: syntax error before “GD__Image”
GD.xs:340: warning: data definition has no type or storage class
GD.xs:341: error: syntax error before “GD__Font”
GD.xs:341: warning: data definition has no type or storage class
(中略)
make: *** [GD.o] Error 1
/usr/bin/make — NOT OK
Running make test
Can’t test without successful make
Running make install
make had returned bad status, install seems impossible
cpan>

●で、ちゃんと調べてみた


GDをソースからインストールしようかと思ったが、yumでインストールされているものをアンインストールしたりとか依存関係が変になるのも嫌なのでyumでインストールされているものを何とか生かしてそのままやることにした。これでだめならソースからインストールしようと思った。
●下記のコマンドなどで必要なモジュールがインストールされているか調べてみた

# rpm -qa|grep gd-
# rpm -qa|grep libpng

●下記はrpmでインストールされているようだった。少しはまったが良く考えてみるとdevelがないことに気が付いた。
gd
libpng
liblpeg
zlib
zlib-devel
●yumで必要そうなものをインストールした。
yum search gd-
yum info gd-
等してdevelがあるかあらかじめ調べた

yum install gd-devel
yum install libpng-devel
yum install libjpeg-devel

●再度CPANからGDインストール実行

cpan> install GD

●コンパイルは通るようになったが、make testで「gdImageGifAnimAddPtr 」関係でなんかエラーがでている。

t/GD……….Can’t load ‘./blib/arch/auto/GD/GD.so’ for module GD: ./blib/arch/auto/GD/GD.so: undefined symbol: gdImageGifAnimAddPtr at /usr/lib/perl5/5.8.5/i386-linux-thread-multi/DynaLoader.pm line 230.

●とりあえずアニメーションgif関係っぽいなーと思いながらgif使わないからいいやと言うことで再度GDのインストールを行う。今回は質問にちゃんと答えてみた。
JPEGはつかわないのだけどとりあえずy
PNGは使うのでy
文字は使わないのでFreeTypeはN
GIFはとりあえずy
GIFアニメは使わないのでN
XPMは使わないのでN

Where is libgd installed? [/usr/lib] <エンター>
Please choose the features that match how libgd was built:
Build JPEG support? [y]<エンター>
Build PNG support? [y]<エンター>
Build FreeType support? [y] N
Build GIF support? [y] <エンター>
Build support for animated GIFs? [y] N
Build XPM support? [y] N

これでインストールに成功した。
CPANから
install GD::Barcode
もインストールしてQRコードの生成に成功した。
※ちゃんと調べてないのでgdImageGifAnimAddPtr でエラーが出ている件については未解決だが
ソースからビルドしてインストールしたgd-2.0.33のサーバーは問題なかったので
CentOSのサーバーに元からインストールされているgd-2.0.28が古いのでとGD,pm-2.35の相性じゃないかなーと勝手に思ってます。わかる人はちゃんと調べましょう。(お
※リコンパイル(最コンパイル)したい時
CPANでインストールした後、インストール時に聞かれる質問事項を変更して再インストールしたい時はCPANを抜けてダウンロードしたモジュールのソースが格納されているところに直接行ってコンパイルする。
(単にCPANからのやり方がわからないからですが・・・)
ソースは/root/.cpan/build配下に有ります。(CPANの設定で変わるのかな?)

cd /root/.cpan/build/GD-2.35
perl Makefile.PL
make test
make install

(Visited 10 times, 1 visits today)

タグ :