使增加了一个“高管”行到我的脚本(make adds an 'exec' line

2019-09-27 03:17发布

我试图建立一个perl包(模块+脚本)。

我Makefile.PL具有以下,包括我的脚本

EXE_FILES => [
               'bin/somescript1',
             ],

但在安装后脚本,它增加了以下的安装脚本的开头。

eval 'exec /usr/bin/perl  -S $0 ${1+"$@"}'
    if 0; # not running under some shell

它为什么这样做,我可以把它不包括?

Answer 1:

当的ExtUtils :: MakeMaker的安装脚本,它修改的家当线使用的路径, perl你用于构建分布。 这样,当你调用脚本,它使用相同perl ,你用来安装的依赖关系。

此外,它补充说, exec行。 如果由于某种原因,该系统的外壳,而不是启动程序perl ,在exec它切换到perl

不要管它。 这不仅可以帮助你。

但是,如果你想覆盖它,你必须覆盖的MakeMaker的是安装程序的部分。 如果你想切断你的手臂,你必须找出如何自己做。 这一切都在MakeMaker的文档。



Answer 2:

你不应该担心这些行。 这是一种方法,使你的脚本运行的既Perl和外壳,使其成为超便携。



Answer 3:

如果你的家当线设置为#!的/ usr / bin中/ perl的包膜你可以利用在的ExtUtils的错误:: MM_Unix和EVAL线没有安装添加。 此西港岛线突破,如果安装主机没有工作的/ usr / bin中/ ENV



文章来源: make adds an 'exec' line to my scripts
标签: perl cpan