安装 perl GD 模块的问题

Posted

技术标签:

【中文标题】安装 perl GD 模块的问题【英文标题】:Problems in installing perl GD module 【发布时间】:2013-07-17 05:26:58 【问题描述】:

我在RHEL 6perl version is 5.10.1 上使用perl Module Managerinstaller

起初,当我尝试安装 GD 模块时,它显示我缺少一些依赖项。安装这些依赖项后,我收到以下错误。

Can't load '/usr/local/lib64/perl5/auto/GD/GD.so' for module GD: libgd.so.3: 
cannot open shared object file: No such file or directory at
/usr/lib64/perl5/DynaLoader.pm line 200. at -e line 1
Compilation failed in require at -e line 1.
BEGIN failed--compilation aborted at -e line 1.

================================================================
Module GD Installation Failed..!! 
=================================================================

ldd /usr/local/lib64/perl5/auto/GD/GD.so 命令的输出如下:

linux-vdso.so.1 =>  (0x00007fff3ffff000)
libjpeg.so.62 => /usr/lib64/libjpeg.so.62 (0x00007f43ba4f5000)    
libz.so.1 => /lib64/libz.so.1 (0x00007f43ba2e0000)    
libm.so.6 => /lib64/libm.so.6 (0x00007f43ba05b000)    
libpng12.so.0 => /usr/lib64/libpng12.so.0 (0x00007f43b9e35000)        
libfreetype.so.6 => /usr/lib64/libfreetype.so.6 (0x00007f43b9b99000)    
libfontconfig.so.1 => /usr/lib64/libfontconfig.so.1 (0x00007f43b9962000)    
libgd.so.3 => not found     
libc.so.6 => /lib64/libc.so.6 (0x00007f43b95e3000)    
libexpat.so.1 => /lib64/libexpat.so.1 (0x00007f43b93ba000)    
/lib64/ld-linux-x86-64.so.2 (0x0000003c27400000)    

【问题讨论】:

什么是 perlmod 安装程序?我从来没听说过。 - 错误消息表明缺少 libgd.so.3。安装提供这个库的包。 ldd /usr/local/lib64/perl5/auto/GD/GD.so 的输出是什么?这里有什么遗漏吗? 如果你的perlmod installer 是this,我的建议是远离它。这是一个愚蠢的小技巧,完全是多余的,并且会因大量 cpan 模块而失败。请使用cpancpanmcpanplus 是的,我正在使用您提到的相同安装程序 【参考方案1】:

安装gd 包:

yum install gd

它可以在 rhel-6-server-rpms 存储库中找到。

请告诉我们perlmod installer 是什么。

【讨论】:

当我给出这个时,我收到消息 RHN is not supported 它是 Perl 模块管理器,我没有 RHN 支持使用 yum 安装【参考方案2】:

GD 模块已经在标准包存储库中可供您使用。

$ repoquery -i perl-GD

Name        : perl-GD
Version     : 2.35
Release     : 2.el5
Architecture: x86_64
Size        : 443667
Packager    : Fedora Project <http://bugzilla.redhat.com/bugzilla>
Group       : Development/Libraries
URL         : http://search.cpan.org/dist/GD/
Repository  : epel
Summary     : Perl interface to the GD graphics library
Description :
This is a autoloadable interface module for GD, a popular library
for creating and manipulating PNG files.  With this library you can
create PNG images on the fly or modify existing files.

使用yum 安装它。

# yum install perl-GD

【讨论】:

【参考方案3】:

GD 需要一些开发包才能编译。我已经有一段时间没有这样做了,但我认为这个列表是完整的:

libgd2-perl libgd2-xpm libgd2-xpm-dev libpng12-dev libjpeg62-dev libtiff4-dev

包中的数字是版本号。您可能需要更改它们以获取最新版本。

对于 Debian 及其衍生产品:sudo apt-get install libgd2-perl ...

对于 RHEL:sudo yum install libgd2-perl ...

【讨论】:

请给我一些 yum 安装程序的替代方案,因为它在我的系统中不起作用。 我使用 Linux Mint。它的安装程序是apt-get 您必须找到适合您系统的安装程序。你的操作系统是什么? 我使用的操作系统是Redhat 6.0【参考方案4】:

我(几乎)遇到了同样的问题。 GD 模块的“5/auto/GD/GD.so”:

libpng16.so.16: cannot open shared object file: No such file or directory at /usr/lib64/perl5/DynaLoader.pm line 200.'

ldd /usr/local/lib64/perl5/auto/GD/GD.so得到:

linux-vdso.so.1 =>  (0x00007fffdefe2000)
libz.so.1 => /lib64/libz.so.1 (0x00007f6726e33000)
libm.so.6 => /lib64/libm.so.6 (0x00007f6726baf000)
libpng16.so.16 => not found
libgd.so.3 => not found
libc.so.6 => /lib64/libc.so.6 (0x00007f672681b000)
/lib64/ld-linux-x86-64.so.2 (0x00000037ff000000)

看到所有的 .so 文件都在 /lib64 中。

跑:

find / -name libpng16.so.16 2>/dev/null
fine / -name libgd.so.3 2>/dev/null

cd /lib64

sudo ln -s <fullpath_to_libpng16.so.16> libpng16.so.16
sudo ln -s <fullpath_to_libgd.so.3> libgd.so.3

问题解决了!!!

【讨论】:

以上是关于安装 perl GD 模块的问题的主要内容,如果未能解决你的问题,请参考以下文章

Perl GD 不画圆,而是每次画一个矩形

使用 Perl/GD 创建图像并将其直接插入到 Excel 工作簿中?

为啥 Perl 的 GD::Graph 抱怨“无效数据集”?

(Perl 的)GD 图表 - 绘制数据的限制?

如何使用 Perl 和 GD 创建透明的真彩色 PNG?

Perl Image Resize 使用 GD 并保持图像质量