命令 "cpan reports" 究竟做了什么?

What does the command "cpan reports" do exactly?

我尝试使用命令 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一样吗?

[您问为什么使用 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

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

那里的错误消息指的是您可以在 CPAN.pm shell 中执行的操作,而 cpan 命令没有任何可映射到的内容。就算有,也不一样了

没有参数的

cpan 会将您带入 CPAN.pm shell,您可以在那里发出命令(例如 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 上查看特定模块的结果可能更容易。