如何使用ExtUtils :: MakeMaker在自定义目录中安装数据

时间:2014-12-26 06:57:41

标签: linux perl makefile

我需要在 / usr / bin 中安装我的主脚本(作为可执行文件)(取决于INSTALL_BASE)。那部分已经完成。

下一个是安装到目录 / usr / share / project_name / data options.txt,这个对我来说很难,请看我的代码:

清单文件:

data/options.txt
script/joel-perl
Makefile.PL

Makefile.PL

use ExtUtils::MakeMaker;

WriteMakefile (
    NAME => 'joelperl',
    VERSION_FROM => 'script/joel-perl',
     PREREQ_PM => {
        'Switch' => 0
     },
    EXE_FILES => ['script/joel-perl'],
    PM => {
        'data/options.txt' => '$(INSTALL_BASE)/share/project_name/data'
    }
);

运行时:

perl Makefile.PL INSTALL_BASE="/usr"
make

我得到" 错误:无法创建' / usr / share / project_name' ",所以我的问题是:

如何将文件添加/复制到特定的位置,就像在我的情况下一样?

1 个答案:

答案 0 :(得分:4)

请参阅File::ShareDir::Install模块:

use ExtUtils::MakeMaker;
use File::ShareDir::Install;

install_share 'data';

WriteMakefile(...);

package MY;
use File::ShareDir::Install qw(postamble);