【问题标题】:Dependency problem of Perl CPAN modulesPerl CPAN模块的依赖问题
【发布时间】:2010-08-15 23:02:00
【问题描述】:

我尝试通过 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 版?

【问题讨论】:

  • 射杀那些仍然认为可以为他们的模块使用版本三元组的人,因为他们尝试过的所有工具都不会损坏?
  • 射杀仍在运送 Makefile.PL 的人。他们的时代早已过去;他们只是把工作搞砸了。

标签: perl soap wsdl cpan prerequisites


【解决方案1】:

长话短说,您的 CPAN 安装似乎更喜欢使用兼容性 Makefile.PL 而不是 Build.PL。它应该更喜欢 Build.PL。 Makefile.PL 仅用于兼容性,可能不具备 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 . 进行安装它及其部门。

【讨论】:

    【解决方案2】:

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

    嗯,看起来一切正常。除非出于某种原因,CPAN 无法加载 Module::Build? 您可以在没有先前命令的情况下从新的 CPAN shell 再次尝试安装吗?

    或者尝试在不使用 CPAN.pm 的情况下进行手动安装?

    【讨论】:

    • CPAN 版本 1.9402。配置链接:vmubuntu.lcm.hk/~netvope/cpan_conf.txt
    • @netvope:看起来不错;但我不明白为什么它甚至试图使用 Module::Build::Compat??
    • 你希望它在什么情况下使用Module::Build::Compat?
    • 如果 prefer_installer 设置为“eumm”(我认为不是)。如果 dist 没有 Build.PL(它有)。如果 Module::Build 无法加载...这是悬而未决的问题。详情请见CPAN::Distribution->choose_MM_or_MB
    • 当做perl Makefile.PL而不是perl Build.PL
    【解决方案3】:

    试试看,

    cpan Module::Build
    

    cpan Module::Build::Compat
    

    我忘了说点什么,如果您尝试使用 root 用户安装模块,Ubuntu 会修改软件包,算了。使用local::lib 重试。

    做完之后,做:

    cpan install CPAN
    

    最后,

    cpan upgrade
    

    应该可以解决你的问题。

    【讨论】:

    • “如果您尝试使用 root 用户安装模块,Ubuntu 如何修改软件包”?
    猜你喜欢
    • 2017-11-08
    • 1970-01-01
    • 2015-10-02
    • 2012-12-07
    • 2012-02-11
    • 2011-08-07
    • 2014-12-06
    • 2011-09-29
    • 2014-11-24
    相关资源
    最近更新 更多