【问题标题】:How can I package my Perl script to run on a machine without Perl?如何打包我的 Perl 脚本以在没有 Perl 的机器上运行?
【发布时间】:2010-09-09 18:55:26
【问题描述】:

人们也经常问“我怎样才能编译 Perl?”而他们真正想要的是创建一个可以在没有安装 Perl 的机器上运行的可执行文件。

我知道有几种解决方案:

  1. 靛蓝之星perl2exe 它是商业的。我从来没有尝试过。它的网站说它可以交叉编译 Win32、Linux 和 Solaris。
  2. Perl Dev Kit 来自 ActiveState。 它是商业的。几年前我在 Windows 上使用过它,它很好地满足了我的需求。根据其网站,它可以在 Windows、Mac OS X、Linux、Solaris、AIX 和 HP-UX 上运行。
  3. PAR 或者更确切地说是PAR::Packer,它是免费和开源的。根据测试报告,它适用于 Windows、Mac OS X、Linux、NetBSD 和 Solaris,但理论上它也应该适用于其他 UNIX 系统。 最近开始在 Linux 上使用 PAR 进行打包,Windows 上也会用到。

其他推荐的解决方案?

【问题讨论】:

    标签: perl compilation executable distribution


    【解决方案1】:

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

    对于 PAR,它确实是一个工具包。它带有一个打包工具,可以对独立的可执行文件进行依赖扫描和组装,但它也可以用来生成和使用所谓的 .par 文件,类似于 Java 的 JAR。它还带有clientserver,用于通过网络自动加载丢失的包等。slides of my PAR talkYAPC::EU 2008 对此进行了详细说明。 还有一个活跃的邮件列表:par at perl dot org。

    【讨论】:

    • 根据 cavapack 的回答和 Cava 网站,它现在也可以在 Linux 和 OS X 上运行。
    • 你能告诉我如何使用 cava 打包器
    【解决方案2】:

    距离第一次提出这个问题已经有一段时间了,但Cava Packager 目前可以为 Windows、Linux 和 Mac OS X 生成可执行包。它不再仅限于 Windows。

    注意:如我的名字所示,我隶属于 Cava Packager。

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

      • Strawberry with pp 为我工作(您回答后 4 年)。
      【解决方案4】:

      您可以使用大多数 Perl 发行版附带的 perlcc 工具。我还发现 perl2exe 和 Active State 的 Perl 开发工具包对于发布 Perl 应用程序很有用。

      【讨论】:

      • perlcc 真的不行,一直这样。 PAR 是要走的路。
      • perlcc 大部分都不起作用(参见 perldoc perlcc)并且已从 perl 5.10 中删除
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-11-28
      • 2010-09-26
      • 2010-11-17
      • 2012-09-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多