我的CPAN的Perl模块无法安装,我该怎么办?

时间:2015-06-09 17:07:43

标签: perl perl-module cpan

这是针对上述问题的规范性问题,受this answerthis question的启发。请编辑并改进它。

我正在尝试使用CPAN / cpanm / CPANPLUS客户端从CPAN安装模块。但是,当我尝试安装它时,我遇到了构建或测试错误。我该怎么办?

1 个答案:

答案 0 :(得分:3)

它是否完全构建?

首先要考虑的是,您的模块是否构建完毕?如果它没有构建,您应该检查现有的错误报告,必要时提交一个,并尝试自己解决问题(下面的步骤2和3b / 3c)。

如果构建但测试失败,请按照以下步骤操作。

1。确定测试是否有效

这些测试的目的是测试。如果有问题,你需要知道它,而不是把它扫到地毯下。以某种方式解决问题。您的系统上有什么问题,或者这是测试本身的问题。如果这是测试的问题,它是否仍会影响你?如果这是一个系统问题,这可能会遇到什么问题?例如,假设有一个测试用于检查系统与Windows系统之间的连接。如果您未连接到Windows系统,则该特定测试可能不适用于您。

2。检查MetaCPAN是否有错误报告

如果测试失败,请转到该模块的MetaCPAN网页,然后在左侧查看RT issues,看看是否有其他人遇到相同的错误。如果没有人,您应该在项目的错误跟踪器中打开RT票证或票证。

其他用户可能有补丁。如果补丁对您有意义,您可以尝试应用它们并重新运行测试。

您还可以点击MetaCPAN上的测试人员链接。 QA测试人员网页将向您展示各种Perl版本,模块版本,平台,并向您展示哪些测试在哪些版本的特定平台上失败。您可能需要安装该模块的替代版本。

此时,您可以采取一些途径。

3A。强制安装

只有在您确定失败的测试不一定适用于您之后,才能执行强制安装:

cpan> force install Date::Calc

这将贯穿整个安装,但它将跳过所有测试。 (或者它仍然可以测试,但如果测试失败则不会失败。)模块仍然会因编译器错误而失败,或者无法将某些内容写入您的系统。它只是忽略了测试。

这应该是最后一次安装东西的绝望尝试。您应该已经解决了失败的测试是错误的或对您没有意义。或者,有人站在你旁边用枪指着你,“安装那个模块,或者我会扣动扳机!”

3B。查找替代模块

或者,您可以决定使用其他模块。 CPAN充满了解决问题的各种方法(TMTOWTDI),所以有很多人可以做到你想做的事情。

3c上。写一些代码

或者,您可以分析测试失败的原因并修复模块或代码。具有潜在补丁的错误报告通常受到繁忙模块作者的欢迎。如果它看起来不像作者想要修复,你可以随时分叉现有模块,或者写一个新模块。

如果作者已离开MIA,您可以adopt the module并自行维护。 general process for adopting a module首先尝试向修复它的作者提交代码,然后等待一段时间,也许一个月,让作者选择它。如果没有回复,请尝试其他联系方式,电子邮件,Google +,无论您找到什么。之后,您可以继续进行Perl IRC聊天,邮件列表等,寻找知道作者可能位置的人。如果几个月后这些都不起作用,PAUSE管理员可以调查并将模块交给您。

This is based on this excellent answer