perl - 安装失败,Perl 模块 Date::Calc

标签 perl

我正在尝试安装 perl 模块 Date::Calc 版本 6。它是 gnuCalc 的一部分,安装时失败。我选择手动下载 Date::Calc 并安装它,但它给出了完全相同的错误,如下所示。由于 Date::Calc 不限于 gnuCalc,我希望有人能指出我解决这个问题的方向。

我在 Windows 7 64 位。 Perl 是草莓 Perl 版本 5.18.2002

提前致谢。

E:\Downloads\Date-Calc-6.3>perl Makefile.PL

*************************************************************
****** BEWARE: Use "make install UNINST=1" to install! ******
*************************************************************

Checking if your kit is complete...
Looks good
Generating a dmake-style Makefile
Writing Makefile for Date::Calc
Writing MYMETA.yml and MYMETA.json

E:\Downloads\Date-Calc-6.3>C:\strawberry\c\bin\dmake.exe
cp lib/Date/Calc/Object.pod blib\lib\Date\Calc\Object.pod
cp lib/Date/Calc.pm blib\lib\Date\Calc.pm
cp lib/Date/Calendar/Profiles.pod blib\lib\Date\Calendar\Profiles.pod
cp lib/Date/Calendar.pm blib\lib\Date\Calendar.pm
cp lib/Date/Calendar.pod blib\lib\Date\Calendar.pod
cp lib/Date/Calc/Object.pm blib\lib\Date\Calc\Object.pm
cp lib/Date/Calc/PP.pm blib\lib\Date\Calc\PP.pm
cp lib/Date/Calendar/Profiles.pm blib\lib\Date\Calendar\Profiles.pm
cp lib/Date/Calc/PP.pod blib\lib\Date\Calc\PP.pod
cp lib/Date/Calendar/Year.pod blib\lib\Date\Calendar\Year.pod
cp lib/Date/Calendar/Year.pm blib\lib\Date\Calendar\Year.pm
cp lib/Date/Calc.pod blib\lib\Date\Calc.pod

E:\Downloads\Date-Calc-6.3>C:\strawberry\c\bin\dmake.exe test
C:\strawberry\perl\bin\perl.exe "-MExtUtils::Command::MM" "-MTest::Harness" "-e"
 "undef *Test::Harness::Switches; test_harness(0, 'blib\lib', 'blib\arch')" t/*.
t
t/f000.t .. ok
t/f001.t .. ok
t/f002.t .. ok
t/f003.t .. ok
t/f004.t .. ok
t/f005.t .. ok
t/f006.t .. ok
t/f007.t .. ok
t/f008.t .. ok
t/f009.t .. ok
t/f010.t .. ok
t/f011.t .. ok
t/f012.t .. ok
t/f013.t .. ok
t/f014.t .. ok
t/f015.t .. ok
t/f016.t .. Failed 16/25 subtests
t/f017.t .. ok
t/f018.t .. ok
t/f019.t .. ok
t/f020.t .. ok
t/f021.t .. ok
t/f022.t .. ok
t/f023.t .. ok
t/f024.t .. ok
t/f025.t .. ok
t/f026.t .. ok
t/f027.t .. Failed 22/46 subtests
t/f028.t .. Failed 22/46 subtests
t/f029.t .. ok
t/f030.t .. ok
t/f031.t .. ok
t/f032.t .. ok
t/f033.t .. ok
t/f034.t .. ok
t/f035.t .. ok
t/f036.t .. ok
t/f037.t .. ok
t/m001.t .. ok
t/m002.t .. ok
t/m003.t .. ok
t/m004.t .. ok
t/m005.t .. ok
t/m006.t .. ok
t/m007.t .. ok
t/m008.t .. ok
t/m009.t .. ok
t/m010.t .. ok
t/m011.t .. ok
t/m012.t .. ok
t/m013.t .. ok

Test Summary Report
-------------------
t/f016.t (Wstat: 0 Tests: 25 Failed: 16)
  Failed tests:  1-4, 6-7, 9-12, 15-17, 21-23
t/f027.t (Wstat: 0 Tests: 46 Failed: 22)
  Failed tests:  7-15, 22, 24-27, 30-35, 44-45
t/f028.t (Wstat: 0 Tests: 46 Failed: 22)
  Failed tests:  7-15, 22, 24-27, 30, 32, 34-37, 44-45
Files=51, Tests=3381,  3 wallclock secs ( 0.20 usr +  0.01 sys =  0.22 CPU)
Result: FAIL
Failed 3/51 test programs. 60/3381 subtests failed.
dmake.exe:  Error code 255, while making 'test_dynamic'

最佳答案

不要用好的测试代替坏的测试。

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

如果您有测试失败,请转到 MetaCPAN该模块的网页,并检查左侧的issues看看其他人是否遇到同样的错误。 (Bug #101232 for Date-Calc: Test suite started to fail since 2015-01-01 - 新年快乐!)。

还有一个 QA testers CPAN 网页,但现在已经关闭。 QA 测试人员网页将向您展示各种 Perl 版本、模块版本、平台,并向您展示哪些测试在特定平台上的哪些版本上失败了。您可能需要安装该模块的替代版本。

仅当您确定失败的测试不一定适用于您时,才进行强制安装:

cpan> force install Date::Calc

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

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

或者,您可以决定不考虑,直接使用另一个模块——尤其是标准 Perl 发行版中已经包含的模块,如 Time::Piece .如果这是一个新的 Perl 程序,你不妨使用 Time::Piece因为它是 Perl 的官方时间计算模块。

好吧,很难说某事是不是官方的,但是Time::Piece自 5.10 和 Date::Calc 以来的所有 Perl 安装中都包含,虽然更受欢迎,但不是。然而,现在 Time::Piece现在是官方安装的一部分,它更有可能包含在运行 Perl 程序的系统中。这也意味着更多的人在测试它,更多的用户在使用它,发现的错误更有可能被修复。

如果这是您正在编写的新 Perl 程序,请考虑使用 Time::Piece而不是 Date::Calc .

关于perl - 安装失败,Perl 模块 Date::Calc,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27883854/

相关文章:

perl - for (;;) 在 Perl 中是什么意思?

perl - 如果产生错误,我如何跳过一行/迭代?

windows - 有没有办法让 Windows shell 脚本执行相对于它的位置而不是它被调用的位置的所有内容?

perl - 这个著名的JAPH如何运作?

perl - readpipe 以什么编码返回执行命令的结果?

regex - 如何在 Perl 中使用 REGEX 查找字符串中的第 n 个字符或数字

mysql - 如何使用 DBIx::Class 正确部署模式?

linux - 如何添加和排序文本行的特定行?

perl - Mason2错误的utf8编码与 "go"方法

perl - 如何规范化 Perl 中的路径? (不检查文件系统)