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
タグ :