【问题标题】:What does the command "cpan reports" do exactly?“cpan 报告”命令究竟做了什么?
【发布时间】:2020-11-15 18:17:18
【问题描述】:

我尝试使用命令cpan install Moose 在 perl 5.32.0 中安装 Moose。安装失败,显示以下消息:

Result: FAIL
Failed 448/478 test programs. 12/30 subtests failed.
Makefile:2047: recipe for target 'test_dynamic' failed
make: *** [test_dynamic] Error 255
  ETHER/Moose-2.2013.tar.gz
13 dependencies missing (Class::Load,Class::Load::XS,Data::OptList,Devel::OverloadInfo,Dist::CheckConflicts,Module::Runtime::Conflicts,Package::DeprecationManager,Package::Stash,Package::Stash::XS,Params::Util,Sub::Exporter,Sub::Identify,Test::CleanNamespaces); additionally test harness failed
  /usr/bin/make test -- NOT OK
//hint// to see the cpan-testers results for installing this module, try:
  reports ETHER/Moose-2.2013.tar.gz

我尝试了命令cpan reports ETHER/Moose-2.2013.tar.gz,不知何故这正确安装了Moose。这里发生了什么? cpan reports 到底做了什么?这和 App::cpanreports 一样吗?

【问题讨论】:

    标签: perl cpan


    【解决方案1】:

    那里的错误消息是指您可以在 CPAN.pm shell 中执行的操作,而 cpan 命令没有任何可映射的内容。即使是这样,它看起来也不一样。

    cpan 不带参数将您带入 CPAN.pm 外壳,您可以在那里发出命令(例如 install 等等)。对于reports,需要先安装LWP和CPAN::Reporter:

    % cpan LWP CPAN::Reporter
    ...
    % cpan
    cpan[1]> reports ETHER/Moose-2.2013.tar.gz
    Distribution: E/ET/ETHER/Moose-2.2013.tar.gz
    Fetching 'http://www.cpantesters.org/show/Moose.json'...DONE
    
    2.2013:
     +PASS 5.28.0 on SunOS/Solaris 2.11 (i86pc-solaris-64)
     +PASS 5.28.3 on GNU/Linux 5.4.34-0-lts (x86_64-linux-thread-multi)
     +PASS 5.22.4 on GNU/Linux 5.4.0-26-generic (x86_64-linux)
     +PASS 5.26.0 on FreeBSD 12.1-release (i386-freebsd-64int)
     +PASS 5.26.0 on SunOS/Solaris 2.11 (i86pc-solaris-64)
    

    但是,查看CPAN Testers 可能更容易查看特定模块的结果。

    【讨论】:

      【解决方案2】:

      [你问为什么使用 cpan reports ... 而不是 cpan install ... 有帮助。这回答了这个问题。 brian d foy 解释了为什么 cpan reports ... 不是您想要执行的。]

      它尝试安装一个名为 reports 的模块。


      cpan 的语法是

      cpan [options] <module_name> [<module_name> ...]
      

      操作是通过选项指定的。默认运算符为-i(安装)。


      cpan install Moose

      此命令尝试安装两个发行版:

      • 包含install模块的最新版本。

        已创建同名的dummy module,因此不会产生任何错误。

        cpan 的较新版本会忽略此错误请求。

      • 包含Moose模块的最新版本。

        目前是ETHER/Moose-2.2013.tar.gz


      cpan reports ETHER/Moose-2.2013.tar.gz

      此命令尝试安装两个发行版:

      • 包含reports模块的最新版本。

        没有名为 reports 的模块,因此该部分失败。

        >(error): Could not expand [reports]. Check the module name.
        >(info): I can suggest names if you install one of Text::Levenshtein::XS, Text::Levenshtein::Damerau::XS, Text::Levenshtein, and Text::Levenshtein::Damerau::PP
        >(info): and you provide the -x option on invocation.
        >(error): Skipping reports because I couldn't find a matching namespace.
        
      • ETHER/Moose-2.2013.tar.gz


      所以,

      cpan install Moose
      

      只是一种糟糕的写作方式

      cpan Moose
      

      还有,

      cpan reports ETHER/Moose-2.2013.tar.gz
      

      只是一种糟糕的写作方式

      cpan ETHER/Moose-2.2013.tar.gz
      

      目前,这应该相当于

      cpan Moose
      

      换句话说,您声称无效的命令与您声称有效的命令之间没有区别。

      【讨论】:

      • 有趣。我尝试在新的 local::lib 中运行 cpan Moose。我遇到了同样的问题。我再次运行相同的命令。现在 Moose 已正确安装。所以出于某种原因,我必须安装 Moose 两次。这是一个完全不同的问题。
      猜你喜欢
      • 2012-07-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-23
      • 2016-09-10
      • 2023-03-15
      • 2012-10-17
      • 2021-06-04
      相关资源
      最近更新 更多