【发布时间】:2011-05-26 05:11:43
【问题描述】:
使用 CPAN,我安装了 GD::Graph 来制作水平堆叠条形图。 CPAN 将模块安装在 /root/.cpan/build/GD-2.45-4PSn9K 中,而 @INC 中没有。在我的脚本中,我可以通过添加来访问模块
use lib "/root/.cpan/build/GD-2.45-4PSn9K"
脚本现在可以毫无问题地生成图表。我想使用 perl 调试器(“perl -d myscript.pl”),但它抱怨无法找到 GD.pm(位于该路径中)。我添加了 PERL5LIB 的路径,用“perl -V”验证,但调试器仍然找不到它。
也许解决这个问题的一种方法是在@INC 路径之一中安装GD,但是a)我不知道该怎么做,b)我真的很想了解发生了什么。
这是在 Fedora Core 12 上。
我不知道是否会有所不同,但 GD::Graph 实际上用于我的主脚本包含的模块中。主脚本不使用它。
更新:按照以下建议,我重新进入 CPAN 并强制安装。 CPAN 说它在 /root/.cpan/ (etc) 找到了安装,并将该路径预先添加到@INC。然后我从 .cpan 目录中手动删除了 GD 并再次安装。这次 CPAN 把它放在同一个地方,也放在 /usr/local/lib/perl5/GD-2.45PSn9K" 中。它在两个路径前面加上@INC。我已经验证它在那里,perl 调试器声称正在寻找那里,但 仍然 找不到 GD.pm( 在那里)并且不会运行脚本。
@INC:
/usr/local/lib/perl5/GD-2.45-4PSn9K/
(and others)
来自 perl -d:
Can't locate loadable object for module GD in @INC (@INC contains:
... 并在其他路径中列出该路径。它确实存在:
[root /]# find . -name "GD.pm"
./usr/local/lib/perl5/GD-2.45-4PSn9K/GD.pm
./usr/local/lib/perl5/GD-2.45-4PSn9K/blib/lib/GD.pm
(and the /root/.cpan paths)
【问题讨论】:
-
这是一个 CPAN 构建目录,它应该也将文件安装在
PERL5LIB的某个位置。 CPAN 在构建结束时列出了它安装文件的目录 -
你也可以试试 'perldoc -lm GD::Graph' 来找到安装位置。
标签: linux perl debugging cpan fedora