这是针对上述问题的规范性问题,受this answer和this question的启发。请编辑并改进它。
我正在尝试使用CPAN / cpanm / CPANPLUS客户端从CPAN安装模块。但是,当我尝试安装它时,我遇到了构建或测试错误。我该怎么办?
答案 0 :(得分:3)
首先要考虑的是,您的模块是否构建完毕?如果它没有构建,您应该检查现有的错误报告,必要时提交一个,并尝试自己解决问题(下面的步骤2和3b / 3c)。
如果构建但测试失败,请按照以下步骤操作。
这些测试的目的是测试。如果有问题,你需要知道它,而不是把它扫到地毯下。以某种方式解决问题。您的系统上有什么问题,或者这是测试本身的问题。如果这是测试的问题,它是否仍会影响你?如果这是一个系统问题,这可能会遇到什么问题?例如,假设有一个测试用于检查系统与Windows系统之间的连接。如果您未连接到Windows系统,则该特定测试可能不适用于您。
如果测试失败,请转到该模块的MetaCPAN网页,然后在左侧查看RT issues,看看是否有其他人遇到相同的错误。如果没有人,您应该在项目的错误跟踪器中打开RT票证或票证。
其他用户可能有补丁。如果补丁对您有意义,您可以尝试应用它们并重新运行测试。
您还可以点击MetaCPAN上的测试人员链接。 QA测试人员网页将向您展示各种Perl版本,模块版本,平台,并向您展示哪些测试在哪些版本的特定平台上失败。您可能需要安装该模块的替代版本。
此时,您可以采取一些途径。
只有在您确定失败的测试不一定适用于您之后,才能执行强制安装:
cpan> force install Date::Calc
这将贯穿整个安装,但它将跳过所有测试。 (或者它仍然可以测试,但如果测试失败则不会失败。)模块仍然会因编译器错误而失败,或者无法将某些内容写入您的系统。它只是忽略了测试。
这应该是最后一次安装东西的绝望尝试。您应该已经解决了失败的测试是错误的或对您没有意义。或者,有人站在你旁边用枪指着你,“安装那个模块,或者我会扣动扳机!”。
或者,您可以决定使用其他模块。 CPAN充满了解决问题的各种方法(TMTOWTDI),所以有很多人可以做到你想做的事情。
或者,您可以分析测试失败的原因并修复模块或代码。具有潜在补丁的错误报告通常受到繁忙模块作者的欢迎。如果它看起来不像作者想要修复,你可以随时分叉现有模块,或者写一个新模块。
如果作者已离开MIA,您可以adopt the module并自行维护。 general process for adopting a module首先尝试向修复它的作者提交代码,然后等待一段时间,也许一个月,让作者选择它。如果没有回复,请尝试其他联系方式,电子邮件,Google +,无论您找到什么。之后,您可以继续进行Perl IRC聊天,邮件列表等,寻找知道作者可能位置的人。如果几个月后这些都不起作用,PAUSE管理员可以调查并将模块交给您。