CpanTesters上Image :: Imlib2的依赖关系

时间:2013-04-09 15:39:52

标签: perl cpan

我的模块EBook::MOBI::Image在CpanTesters上出现了很多错误 (这只是EBook::MOBI的一些额外的东西。就像这样,我保留了主要模块的图形依赖性,无论如何都不需要它。 所有测试,除了GNU / Linux的测试都失败了:

http://www.cpantesters.org/distro/E/EBook-MOBI-Image.html#EBook-MOBI-Image-0.11

由于我只有GNU / Linux并且缺乏一般的经验,所以我在这里寻求帮助。 测试结果似乎表明,Image::Imlib2

的依赖性存在问题

http://www.cpantesters.org/cpan/report/2306795e-99db-11e2-8c80-50d7c5c10595

在那里它说我应该注意,Image :: Imlib2在“Makefile.PL”中,但它就在那里你可以看到:

https://metacpan.org/source/BORISD/EBook-MOBI-Image-0.11/Makefile.PL#L24

Image :: Imlib2本身没有这个问题。测试通过所有系统:

http://www.cpantesters.org/distro/I/Image-Imlib2.html#Image-Imlib2-2.03

有人可以在这里暗示有什么问题吗? 代码托管在这里:

https://github.com/borisdaeppen/EBook-MOBI-Image

非常感谢。

1 个答案:

答案 0 :(得分:3)

当我尝试使用cpan命令安装此模块(在Cygwin上)时:

  1. cpan承认我需要Image::Imlib2模块(warning: prerequisite Image::Imlib2 0 not found

  2. cpan下载并尝试构建Image::Imlib2

  3. Image::Imlib2的构建失败(you must install the imlib2 library before you can install Image::Imlib2 ... Make has some problems, won't install

  4. cpan继续构建EBook::MOBI::Image... Continuing, but chances to succeed are limited

  5. 当然,Ebook::MOBI::Image的测试失败

  6. PREREQ_PM => ...中的Makefile.PL指令告诉cpan努力满足先决条件,但正如您所见,即使先决条件无法安装,它也将继续构建。 PREREQ_PM指令对于CPAN上的大多数模块都足够好,但对于需要cpan无法自行安装的外部库的模块则不行。

    我认为在这种情况下你想要的是cpan测试人员如果你不能加载Image::Imlib2模块就可以摆脱困境,并且在Makefile.PL的早期就可以做到这一点。

    if (!eval "require Image::Imlib2") {
        print "This distribution requires Image::Imlib2!\n";
        exit 0;
    }
    

    对于无法安装或不安装Image::Imlib2的系统,豁免Makefile.PL会导致测试人员报告N/A而不是FAIL的结果。