我的模块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
非常感谢。
答案 0 :(得分:3)
当我尝试使用cpan
命令安装此模块(在Cygwin上)时:
cpan承认我需要Image::Imlib2
模块(warning: prerequisite Image::Imlib2 0 not found
)
cpan下载并尝试构建Image::Imlib2
Image::Imlib2
的构建失败(you must install the imlib2 library before you can install Image::Imlib2 ... Make has some problems, won't install
)
cpan继续构建EBook::MOBI::Image
(... Continuing, but chances to succeed are limited
)
当然,Ebook::MOBI::Image
的测试失败
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
的结果。