首页 > 解决方案 > 无法安装模块

问题描述

只想下载一个模块: sudo cpan HTTP::SimpleLinkChecker 但是在观看输出时,返回错误。

t/200.t ............ Link is http://blogs.perl.org/
t/200.t ............ 1/? Link is https://www.perl.org/
t/200.t ............ ok   
t/403.t ............ Link is http://www.pair.com/comdog/cgi-bin/403.cgi
t/403.t ............ 1/1 
#   Failed test 'Unauthorized code works'
#   at t/403.t line 9.
#          got: '200'
#     expected: '403'

但这是什么意思Unauthorized code works?即使我有sudo特权。

第二个问题,什么可以告诉我这些碎片->t/200.tt/200.t在测试中?点的末尾是一些链接,但它是如何连接在一起的?

此外,cpanm建议我使用--force选项安装,这意味着忽略测试,但如果我这样做了,会有什么后果?是不是说明模块坏了?所以它在使用时会破坏我自己的脚本吗?

标签: perl

解决方案


*.t是 Perl 运行的实际测试文件,像 Unauthorized code works 这样的名称是单独的测试(方法)。最后的输出(例如,“Link is...”)只是测试打印到的内容stderr

HTTP::SimpleLinkChecker 的源代码在Github上,查看测试,单元测试实际上尝试连接到某个服务器(哦,我的......)。该服务器是http://www.pair.com/comdog/cgi-bin/403.cgi。当我wget这样做时,我也得到了 200 OK HTTP 代码,就像您的测试一样,但测试预期为 403,因此它失败了。

底线:向该 Perl 模块的维护者 brian d foy 报告一个错误(您可能可以使用上面的 Github 链接)。

是否要--force安装模块由您决定。强制意味着忽略失败的测试并安装。这可能只是一个无害的单元测试失败,但如果其他测试以不同的方式失败,我会怀疑。


推荐阅读