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

20
人们常常问:“如何编译Perl?”然而他们真正想要的是创建一个可执行文件,即使机器没有安装Perl也可以运行。
有几种解决方案我知道:
  1. IndigoStar的perl2exe。这是一个商业软件,我从未尝试过。它的网站表示,它可以跨平台编译Win32、Linux和Solaris。
  2. ActiveState的Perl Dev Kit。这也是一款商业软件,我几年前在Windows上使用过它,对我的需求来说效果很好。根据它的网站信息,它适用于Windows、Mac OS X、Linux、Solaris、AIX和HP-UX。
  3. 免费且开源的PARPAR::Packer。根据测试报告,它可以在Windows、Mac OS X、Linux、NetBSD和Solaris上工作,理论上它也应该能在其他UNIX系统上工作。 最近,我已经开始在Linux上使用PAR进行打包,并将在Windows上使用它。
还有其他推荐的解决方案吗?
4个回答

12
除了问题中列出的三个工具外,还有另一个名为Cava Packager的工具,由曾经为PAR做出贡献的Mark Dootson编写。它仅在Windows下运行,具有良好的Wx GUI,并与典型的三个竞争对手不同,它将所有Perl依赖项组装到源/ lib目录中,而不是创建包含所有内容的单个存档文件。有一个免费版本,但不是开源的。我除了测试之外没有使用过这个工具。
至于PAR,它确实是一个工具包。它配备了一个打包工具,用于扫描依赖项和组装独立可执行文件,但也可以用于生成和使用所谓的.par文件,类似于Java的JAR文件。它还配备了客户端服务器,可自动在网络上加载缺少的软件包等。我的PAR演讲幻灯片YAPC::EU 2008年会议上详细介绍了这一点。还有一个活跃的邮件列表:par at perl dot org。

2
根据cavapack的回答和Cava网站,现在它也可以在Linux和OS X上运行。 - Andy
请问您能告诉我如何使用Cava Packager吗? - Balakumar

5

这个问题被提出已经有一段时间了,但是现在Cava Packager可以生成适用于Windows、Linux和Mac OS X的可执行包。它不再仅支持Windows系统。

注意:由于我的名字表明,我与Cava Packager有关联。


1

我是Perl的新手,刚刚下载了Cava Packager,这是我找到的唯一一个可用的。我已经尝试过在Windows XP上使用ActiveState 5.10.1005和Strawberry Perl与PAR-Packager,但pp在中途就卡住了,没有创建任何可执行文件。

Cava目前提供了在Windows上创建exe的唯一解决方案。谢谢。


草莓配合pp对我有用(在您的回答4年后)。 - Nate Glenn

-3

你可以使用大多数Perl发行版附带的perlcc工具。我还发现:perl2exe和Active State的Perl Dev kit对于发布Perl应用程序非常有用。


1
perlcc并不真正起作用,而且这个问题已经存在很长时间了。PAR是正确的选择。 - asksol
2
perlcc 大多数情况下不起作用(请参阅 perldoc perlcc),并已从 Perl 5.10 中删除。 - szabgab

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