linux下perl的gd库安装
时间:2009-04-19 来源:snowtty
linux下perl的gd库安装
2008-03-24 14:43
所需准备软件: ①从 http://stein.cshl.org/WWW/software/GD 上下载 GD.pm 的最新版 for Unix。我使用的是GD-2.35.tar.gz ②确认主机是否已经安装好 Perl 解释器和 GCC 编译器,而且你必须以 root 身份登陆,否则无法安装。 ③gd-2.0.33.tar.gz,jpegsrc.v6b.tar.gz 安装步骤: 1) JPEG libs + Downloaded from http://www.ijg.org/files/jpegsrc.v6b.tar.gz + mkdir /usr/local/jpeg6 + mkdir /usr/local/jpeg6/bin + mkdir /usr/local/jpeg6/man + mkdir /usr/local/jpeg6/man/man1 + mkdir /usr/local/jpeg6/incude + mkdir /usr/local/jpeg6/lib + ./configure --prefix=/usr/local/jpeg6 --enable-shared + make + make test + make install 2) gd库 + Downloaded from http://www.boutell.com/gd/http/ + mkdir /usr/local/gd 因为我装了libpng和freetype, +./configure --prefix=/usr/local/gd --with-jpeg=/usr/local/jpeg6 --with-png=/usr/local/lib/ --with-zlib --with-freetype=/usr/local/freetype/ + make + make install 3) GD-Perl + Downloaded from http://stein.cshl.org/WWW/software/GD + tar xzvf GD-2.35.tar.gz perl Makefile.PL GD_JPEG -lib_gd_path /usr/local/gd -lib_jpeg_path /usr/local/jpeg6 如果出现错误** WARNING: found gd.h header file in /usr/include/gd.h, but it is expected at /usr/local/include/gd.h. This may cause compile errors! ** ** Possible problems found ** 可以不理会他,但是我出现的问题是 无法通过这个命令 说找不到一些类的结构 我猜 可能是以前的版本GD库的gd.h造成的 太老了 没有这些函数 就把/usr/local/gd/include/gd.h 拷贝到/usr/include/gd.h 结果就通过了 不再报错了 有可能出现要你选择的画面 不过不一定,我最后安装成功也没出现这个界面, 关键看服务器的错误log记录 Please choose the features that match how libgd was built: Build JPEG support? [y] y Build PNG support? [y] n Build FreeType support? [y] n Build GIF support? [y] y Build XPM support? [y] n ----------- + make ------------------- -------------------- + make test --------------------- -------------------- + make install --------------------- Installing /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi/auto/GD/GD.bs Installing /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi/auto/GD/GD.so Files found in blib/arch: installing files in blib/lib into architecture dependent library tree Installing /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi/GD.pm Installing /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi/qd.pl Installing /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi/GD/Polygon.pm Installing /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi/GD/Image.pm Installing /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi/GD/Polyline.pm Installing /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi/GD/Simple.pm Installing /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi/auto/GD/autosplit.ix Installing /usr/share/man/man1/bdf2gdfont.pl.1 Installing /usr/share/man/man3/GD::Image.3pm Installing /usr/share/man/man3/GD::Polyline.3pm Installing /usr/share/man/man3/GD::Simple.3pm Installing /usr/share/man/man3/GD::Polygon.3pm Installing /usr/share/man/man3/GD.3pm Installing /usr/bin/bdf2gdfont.pl Writing /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi/auto/GD/.packlist Appending installation info to /usr/lib/perl5/5.8.5/i386-linux-thread-multi/perllocal.pod 装完以后确认被装在/usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi/ 确认GD库已经装上用cgi程序作为测试 test.cgi 权限设置为775 #!/usr/bin/perl print "Content-type:text/html\n\n"; use GD; print $GD::VERSION, "\n"; 如果GD库装上了,会显示2.35 如果报错 可以检查服务器log /apache/logs/下 如果不报错可以用以下程序来检测 testgd.cgi 权限设置为775 #!/usr/bin/perl print "Content-type:image/jpeg\n\n"; use GD; $im = new GD::Image(130,18); $black = $im->colorAllocate(0,0,0); $white = $im->colorAllocate(255,255,255); $im->fill(10,10,$black); $im->string(gdSmallFont,2,1,"http://www.CGIer.com/",$white); binmode STDOUT; print $im->jpeg; exit; 如果可以正常显示黑底白字的http://www.CGIer.com/图形 说明你的GD库已经安装成功了一半 试着在上面程序中加入下面一句话$image = GD::Image->newFromJpeg("test.jpg", 1); 然后查看log记录 如果显示 Can't use an undefined value as a symbol reference at /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi/GD/Image.pm line 175. 那么你的GD库已经完全ok了 而我却是记录着 Can't locate object method "newFromJpeg" via package "GD::Image" at /usr/etc/wwwroot/ftp.mofang.cn/cgi-bin/test4.cgi line 5. 这个问题一直困扰了我有10多个小时,找不到解决方法,几次想放弃了,可是已经快成功了阿,走到这步真不容易 在google上搜到和我遇到同样问题的 但是也没有解决方法 最后不了了之 我想只能靠自己了,最终还是找到了问题的根结 用rpm -qa|grep gd 发现服务器上装过gd-1.8的版本 我把这个用rpm -e卸掉了,包括那个gd-devel-1.8 然后全部重新装一下GD还是不行 此后停滞了大概半天 没有进展 我在我本地虚拟机redhat9和公司另外一台redhat as4.0服务器上 结果装了都没任何问题 很快就能用 这就纳闷了 为什么这台机子这么怪异呢 最后我抱着试一试的方法 从rehat as4.0的安装盘里把gd-2.0.28-4.i386.rpm,gd-devel-2.0.28-4.i386.rpm这两个安装包都装上去了 然后终于可以了查看log记录 |
相关阅读 更多 +