我正在尝试按照this指令构建LDV项目,我对perl一无所知。
运行测试时出现以下错误
ldv-task: NORMAL: Calling LDV-core.
Can't locate SOAP/Lite.pm in @INC (@INC contains: /home/acsia/perl5/perlbrew/perls/perl-5.10.0/lib/5.10.0/x86_64-linux /home/acsia/perl5/perlbrew/perls/perl-5.10.0/lib/5.10.0 /home/acsia/perl5/perlbrew/perls/perl-5.10.0/lib/site_perl/5.10.0/x86_64-linux /home/acsia/perl5/perlbrew/perls/perl-5.10.0/lib/site_perl/5.10.0 .) at /home/acsia/Desktop/LDV/consol-tools/ldv-core/ldv-core line 7.
BEGIN failed--compilation aborted at /home/acsia/Desktop/LDV/consol-tools/ldv-core/ldv-core line 7.
的输出
perlbrew use
是:已编辑:
Currently using perl-5.22.0
的输出
locate SOAP/Lite.pm
是
/usr/local/lib/perl5/site_perl/5.22.0/SOAP/Lite.pm
的输出
which perl
是
/usr/local/bin/perl
并且LDV核心文件默认以这样的方式启动
#!/usr/bin/perl -w
#
my $instrumnet = 'ldv-core';
use FindBin;
# To prevent meaningless module warnings use this instead of use.
BEGIN { $SIG{'__WARN__'} = sub{}; require SOAP::Lite; SOAP::Lite->import(); $SIG{__WARN__}='DEFAULT'; }
use POSIX ":sys_wait_h";
use XML::Twig;
use IO::Socket::INET;
#use File::MimeInfo;
use File::Basename;
use Cwd qw(abs_path);
etc,... etc....
感谢您的时间......
答案 0 :(得分:3)
如果LDV-Core
不属于您,则应使用系统的软件包管理器安装SOAP :: Lite。如果是你的,请继续阅读。
perlbrew
与您的PATH一起播放,以便执行perl
将执行所需的perl
。
但您的脚本明确使用/usr/bin/perl
,因此当前使用perl
或perlbrew switch
选择的perlbrew use
无关紧要。
停止覆盖默认安装位置,并停止查看您不应该在哪里。
unset PERL_MM_OPT
unset PERL_MB_OPT
unset PERL5LIB
unset PERLLIB
echo -ne 'o conf makepl_arg ""\no conf commit\n' | cpan
echo -ne 'o conf mbuildpl_arg ""\no conf commit\n' | cpan
前四行只有临时效果。您应该停止在登录脚本中设置这些变量,以使更改成为永久变更。
在所需的Perl中安装SOAP :: Lite。
perlbrew use perl-5.22.0 # Or perl-5.10.0 or whatever
cpan SOAP::Lite
修复脚本的shebang。
perl -i~ -pe'
next if $. != 1;
s/^#!.*//s;
$_ = "#!$^X\n$_";
' LDV-core
PS - 您不需要use FindBin;
。
答案 1 :(得分:2)
perlbrew perl是一种在同一台机器上安装许多perl版本的方法。它就像python中的virtenv
。 Perlbrew允许您在各种版本的perl之间切换,并针对这些版本运行perl程序。
system perl表示perl的默认版本,主要是linux发行版。 perlbrew更改了该程序需要运行的版本,并且您的程序将开始针对不同版本运行。
如果你正在制作一些不需要很多perl版本的东西,最好使用一个版本的perl并对它们运行程序。
此外,如果您正在使用Linux发行版并且不想进入cpan以及如何安装perl模块,那么最好是针对该模块搜索相应的库并安装它们。例如,在你的情况下,我这样搜索
aptitude search soap | grep perl
这在我的ubuntu机器上给了我两个库,其中一个是针对这个模块的。安装它们很简单,您可以专注于您的工作,而不是如何安装cpan模块。