【问题标题】:Makefile.PL: Installing multiple scripts and binariesMakefile.PL:安装多个脚本和二进制文件
【发布时间】:2011-03-27 05:02:56
【问题描述】:

给定Makefile.PL,我如何在四个不同的位置安装两个二进制文件和两个脚本?

更准确地说,目录结构如下:

  • lib/my_package/main.pl
  • bin/daemon/daemon.pl (*)
  • bin/plugin/plugin.pl (*)
  • scripts/conf/conf.sh (*)
  • 脚本/init/initd.sh (*)
  • Makefile.PL

标有(*)的文件应安装在以下路径:

  • /usr/sbin/daemon.pl
  • /var/qmail/smtpplugins/plugin.pl
  • /usr/local/conf.sh
  • /etc/init.d/initd.sh

还有我Makefile.PL的内容

use ExtUtils::MakeMaker;

WriteMakefile(
    NAME         => "my_package",
    VERSION_FROM => "lib/my_package/main.pl"
);

我如何通过Makefile.PL 告诉 perl 以使其将这四个文件安装在其相应目录中?

【问题讨论】:

  • 一个“makefile.pl”标签会很好
  • 哦,我应该提一下,目录的名称被保留了,但文件的名称已被更改以保护无辜:)
  • 你检查perldoc ExtUtils::MakeMaker了吗?

标签: perl makefile


【解决方案1】:

ExtUtils::MakeMaker 文档中的两个想法:

使用PL_FILES 参数。解释文档: PL_FILES => {'bin/install.PL' => 'an-arg'} 将运行 bin/foobar.PL 作为 perl bin/installPL an-arg

或者让 MakeMaker 使用 postamble 功能将新目标添加到生成的 makefile

或者,是的,Module::InstallDist::Zilla(自从我上次查看以来,可能还有另一个 Perl 模块可以做到这一点,它是一种活泼的小语言)。

【讨论】:

    【解决方案2】:

    如果你切换到Module::Build,你可以简单地使用 install_path.

    【讨论】:

    • 不是我所希望的,但为什么不呢?
    猜你喜欢
    • 2020-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-31
    • 1970-01-01
    • 1970-01-01
    • 2013-08-12
    相关资源
    最近更新 更多