dso*_*ano 5 perl cpan perl-module
这是上述问题的一个典型问题,受到该答案和这个问题的启发。请对其进行修改和改进。
我正在尝试使用CPAN / cpanm / CPANPLUS客户端从CPAN安装模块。但是,尝试安装时出现构建或测试错误。我该怎么办?
首先要考虑的是,你的模块是否正在构建?如果未构建,您应该检查现有的错误报告,必要时提交一份报告,也许还可以尝试自己修复问题(下面的步骤 2 和 3b/3c)。
如果可以构建但测试失败,请按照以下步骤操作。
这些测试的目的是为了测试。如果出现问题,您需要了解它,而不是掩盖它。以一种或另一种方式解决问题。您的系统上是否存在问题,或者这是测试本身的问题。如果这是测试的问题,还会影响您吗?如果这是系统问题,您可能会遇到这种情况吗?例如,假设有一个测试检查您的系统和 Windows 系统之间的连接性。如果您不连接到 Windows 系统,则该特定测试可能不适用于您。
如果您遇到测试失败,请转到该模块的MetaCPAN网页,并检查左侧是否有 RT问题,看看其他人是否也遇到相同的错误。如果没有人,您应该开一张 RT 票证,或者在项目选择的错误跟踪器中开一张票证。
其他用户可能有可用的补丁。如果补丁对您有意义,您可以尝试应用它们并重新运行测试。
您还可以单击MetaCPAN 上的测试人员链接。QA 测试人员网页将向您显示各种 Perl 版本、模块版本、平台,并显示哪些测试在哪些版本的特定平台上失败。您可能需要安装该模块的替代版本。
此时,您可以采取几条路径。
仅当您确定失败的测试不一定适用于您时,才进行强制安装:
cpan> force install Date::Calc
Run Code Online (Sandbox Code Playgroud)
这将贯穿整个安装,但它会跳过所有测试。(或者也许它仍在测试,但如果测试失败也不会失败。)。该模块仍会因编译器错误或无法将某些内容写入系统而失败。它只是忽略测试。
这应该是最后一次绝望地尝试安装某些东西。您应该已经确定失败的测试是错误或对您没有意义。或者,有人站在你旁边,用枪指着你的头说:“安装那个模块,否则我就扣动扳机!” 。
或者,您可以决定使用另一个模块。CPAN 充满了解决问题的各种方法(TMTOWTDI),因此有很多方法可以满足您的要求。
或者,您可以分析测试失败的原因并修复模块或代码。忙碌的模块作者通常会欣赏带有潜在补丁的错误报告。如果作者看起来不想接受您的修复,您可以随时分叉现有模块,或编写一个新模块。
如果作者已经MIA了,你也许可以采用该模块并自己维护。采用模块的一般过程是首先尝试向作者提交修复它的代码,然后等待一段时间,也许一个月,让作者接受它。如果没有回复,请尝试其他联系方式:电子邮件、Google+,以及任何您能找到的方式。之后,您可以继续 Perl IRC 聊天、邮件列表等,寻找知道作者可能在哪里的人。如果几个月后这些都不起作用,PAUSE 管理员可以调查并将模块移交给您。