我该如何安装Perl脚本的依赖项?

3
我有几个脚本,作为工程项目的工具提供给用户。这些脚本包含许多重复的代码。我想提取这些代码并将其维护在一组模块中。但是,为了使其正常工作,用户必须安装这些模块。我不想告诉我的用户“进行安装”等操作,因为我相信他们没有那么耐心。
我知道其中一个选项是使用PAR将所有内容打包在一起,但是理想情况下,用户应该能够像现在一样打开和编辑这些脚本。他们还需要能够将它们移动到任何目录,并且我不希望他们也要移动一堆库文件。
是否可能创建一个双击文件来安装一些捆绑的Perl模块?
5个回答

6
我将我的脚本作为模块分发,然后使用普通的CPAN工具链进行安装。请参阅我的文章Scripts as ModulesAutomating Script Distributions with scriptdist。一旦你将它们放入传统的模块分发中,你可以使用cpan从当前目录安装它们:
 % cpan .   # install from distribution in the current directory

根据情况的复杂程度,你可能想要创建一个DPAN,这是一个私有版本的CPAN,可以供你的CPAN工具使用。你把所有私有模块都放在那里,然后将CPAN工具指向它,一切都像真正的CPAN镜像一样进行。但你不必分享你的工作。


我已经思考了一段时间,我真的很喜欢这个答案。顺便说一下,那些文章也是不错的阅读材料。我不确定我是否能够做到这一点(我和一些不太精通计算机的工程师一起工作),但这可能是对所提出问题的最佳答案,特别是因为它与仅使用PAR打包不同。 - Joe

3

你可以使用 PAR 或者 Shipwright(不确定是否适用于二进制文件)来打包。在此过程中,还可以使用 scandeps.pl 工具。


PAR创建一个单一文件,但它不是二进制文件。 - brian d foy
嗯,最好纠正一下,谢谢Brian。但是它确实使它们变成+x,所以我认为它们是二进制文件(尽管我读到它只是压缩和打包...),无论如何... - xxxxxxx

1
如果用户正在使用带有打包系统(dpkg、cygwin等)的系统,请考虑使用该系统。

我从未想过这一点,虽然我的用户中几乎没有人使用类似的东西,除非XP有一些打包系统... - Joe

1

如果您不介意花费一些钱,那么来自Activestate的Perl Dev Kit可能是更好的选择。

根据他们对该产品的描述,

  • 使用PerlApp的新跨平台封装功能,开发和部署您的Perl程序到任何平台上。
  • 将代码作为可执行文件或Windows服务、ActiveX组件、.NET程序集或系统托盘交付。
  • 使用Perl代码轻松创建MSI文件。

我听说 Perl Dev Kit 非常好,但必须有一种便宜甚至免费的方式。特别是因为我是在义务工作。 - Joe

0

您也可以考虑使用sparrow - 脚本分发系统。Sparrow与Perl兼容,因为它是用Perl编写的。它支持通过carton工具处理CPAN模块依赖关系。

PS 声明 - 我是这个工具的作者


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接