如何打包我的Perl脚本以在没有Perl的计算机上运行?

时间:2020-03-05 18:57:14  来源:igfitidea点击:

人们还经常问"如何编译Perl?"而他们真正想要的是创建一个即使在没有安装Perl的情况下也可以在计算机上运行的可执行文件。

我知道有几种解决方案:

  • IndigoStar的perl2exe是商业的。我没试过它的网站说它可以交叉编译Win32,Linux和Solaris。
  • ActiveState的Perl开发套件。它是商业的。几年前,我在Windows上使用了它,并且很好地满足了我的需求。根据其网站,它可以在Windows,Mac OS X,Linux,Solaris,AIX和HP-UX上运行。
  • PAR或者更确切地说是PAR :: Packer,它是免费的开放源代码。根据测试报告,它可以在Windows,Mac OS X,Linux,NetBSD和Solaris上运行,但从理论上讲,它也可以在其他UNIX系统上运行。最近,我开始在Linux上使用PAR进行打包,并且还将在Windows上使用它。

其他推荐的解决方案?

解决方案

回答

我们可以使用大多数Perl发行版附带的perlcc工具。我还发现perl2exe和Active State的Perl Dev套件对于运送Perl应用程序都很有用。

回答

除了问题中列出的三个工具外,还有另一个由Mark Dootson编写的名为Cava Packager的工具,他过去也曾为PAR做出过贡献。它仅在Windows下运行,具有出色的Wx GUI,并且与典型的三个竞争者不同,它在Source / lib目录中组装了所有Perl依赖项,而不是创建包含所有内容的单个存档。有一个免费版本,但不是开放源代码。除了测试之外,我没有使用过它。

至于PAR,它实际上是一个工具包。它带有一个打包工具,该工具可以进行依赖项扫描和独立可执行文件的汇编,但是它也可以用来生成和使用所谓的.par文件,类似于Java的JAR。它还带有客户端和服务器,用于通过网络自动加载缺少的软件包等。我在YAPC :: EU 2008上的PAR幻灯片详细介绍了此内容。
还有一个活动的邮件列表:perl dot org的票面价格。

回答

我是Perl的新手,我刚刚下载了Cava Packager,这是我发现的唯一工作方式。我在Windows XP上使用PAR-Packager尝试了ActiveState 5.10.1005和Strawberry Perl。
pp只是挂在中间,没有创建可执行文件。

到目前为止,Cava提供了在Windows上创建exe的唯一解决方案。 ks