perl - 无法安装模块
问题描述
只想下载一个模块:
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.t
或t/200.t
在测试中?点的末尾是一些链接,但它是如何连接在一起的?
此外,cpanm
建议我使用--force
选项安装,这意味着忽略测试,但如果我这样做了,会有什么后果?是不是说明模块坏了?所以它在使用时会破坏我自己的脚本吗?
解决方案
*.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
安装模块由您决定。强制意味着忽略失败的测试并安装。这可能只是一个无害的单元测试失败,但如果其他测试以不同的方式失败,我会怀疑。
推荐阅读
- python - 无法导入模块
- css - 用循环从左到右为文本加下划线
- node.js - 电子js在渲染器之间传递变量
- macos - 在 macOS Catalina 下的 Finder 中查找活动壁纸文件的脚本
- azure - Azure 数据工厂:复制数据活动始终从 REST 或 HTTP 源数据集返回错误
- python - 从 CSV 读取时,在 Dask 中添加索引列的方法是什么?
- javascript - 使用 jquery 在表格的单元格列中创建引导按钮
- php - Laravel 在 api 中的每个响应之前都给出 \ 符号
- mongodb - 在 MongoDB 文档中将对象转换为数组
- tableau-api - 根据条件选择尺寸