1

我的模块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

非常感谢。

4

1 回答 1

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失败的测试

中的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

于 2013-04-09T16:00:10.657 回答