【发布时间】:2016-04-15 14:48:42
【问题描述】:
File::ShareDir::Install 模块代表了一种使用 Perl 分发/模块携带辅助文件的实用方法。然而,我对如何将它包含在我的项目的依赖项中感到有些困惑。
我尝试在新机器上安装我的包(实际上是一个带有基本 OS + Perl + CPAN 的 docker 容器),但我收到了错误:
Can't locate File/ShareDir/Install.pm in @INC ... at Makefile.PL line 7.
根据文档(perldoc File::ShareDir::Install),模式应该是,在我的Makefile.PL:
use ExtUtils::MakeMaker;
use File::ShareDir::Install;
install_share 'share';
install_share dist => 'dist-share';
install_share module => 'My::Module' => 'other-share';
WriteMakefile( ... ); # As you normaly would
package MY;
use File::ShareDir::Install qw(postamble);
但是,通过这样做,我需要将 File::ShareDir::Install 预安装在我的系统上,作为运行 Makefile.PL 脚本的要求。由于显而易见的原因,将其声明为依赖项是行不通的!
我应该指示我的用户在我的模块之前明确安装File::ShareDir::Install 吗?是否可以通过直接调用CPAN 模块以编程方式在Makefile.PL 中安装它?
【问题讨论】:
-
我最近用过它,它已经在那里了。但我不知道它放在那里的是什么。我知道它不在核心。