Perl CPAN模块的依赖问题

时间:2010-08-15 23:02:01

标签: perl soap wsdl cpan prerequisites

我尝试通过CPAN在Ubuntu 8.04服务器上安装SOAP::WSDL,但收到以下错误消息:

cpan> install SOAP::WSDL
Running install for module SOAP::WSDL
Running make for M/MK/MKUTTER/SOAP-WSDL-2.00.10.tar.gz
Checksum for /root/.cpan/sources/authors/id/M/MK/MKUTTER/SOAP-WSDL-2.00.10.tar.gz ok
SOAP-WSDL-2.00.10/
SOAP-WSDL-2.00.10/benchmark/
(skipped many lines)
SOAP-WSDL-2.00.10/README

  CPAN.pm: Going to build M/MK/MKUTTER/SOAP-WSDL-2.00.10.tar.gz

# running Build.PL --installdirs site
Creating new 'MYMETA.yml' with configuration results
Creating new 'Build' script for 'SOAP-WSDL' version '2.00.10'
Prereq '0.0.5' for 'Class::Std::Fast' is not supported by Module::Build::Compat
Running make test
  Make had some problems, maybe interrupted? Won't test
Running make install
  Make had some problems, maybe interrupted? Won't install

我有最新版本的Class::Std::FastModule::Build::Compat

$ perl -MModule::Build::Compat -e 'print $Module::Build::Compat::VERSION;'
0.3607
$ perl -MClass::Std::Fast -e 'print $Class::Std::Fast::VERSION;'
0.0.8

知道如何解决问题吗?也许我需要将Class::Std::Fast降级到版本0.0.5?

3 个答案:

答案 0 :(得分:6)

长话短说,看起来你的CPAN安装更喜欢使用兼容性Makefile.PL而不是Build.PL。它应该更喜欢Build.PL。 Makefile.PLs仅用于兼容性,可能没有Module :: Build的所有功能,例如支持三个部分版本。

点火cpano conf会让您看到您的配置。如果prefer_installer未设置为MB,请执行o conf prefer_installer MB。你可能需要o conf commit来保存它(它会告诉你)。您可能还必须从libmodule-build-perl包或CPAN安装Module :: Build。

Bug reported to SOAP::WSDL

PS你可以通过首先安装Class :: Std :: Fast,手动下载SOAP :: WSDL,编辑Build.PL来删除该依赖项,然后在SOAP :: WSDL的目录中运行cpan .来解决这个问题。安装它及其代表。

答案 1 :(得分:1)

您的CPAN版本是什么?和配置? (o conf在cpan shell提示符下。)

嗯,一切看起来都不错。除非由于某种原因CPAN无法加载Module :: Build? 你可以从一个新的CPAN shell再次尝试安装,没有以前的命令吗?

或者尝试不使用CPAN.pm进行手动安装?

答案 2 :(得分:0)

试试吧,

cpan Module::Build

cpan Module::Build::Compat

我忘了说些什么,如果你试图用root用户安装模块,Ubuntu会修改软件包,忘了。请使用local::lib再试一次。

执行此操作后,请执行以下操作:

cpan install CPAN

最后,

cpan upgrade

它应该可以解决你的问题。