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

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

How can I package my Perl script to run on a machine without Perl?

人们还经常问"如何编译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上使用它。
  • 其他推荐的解决方案?


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

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


    自从首次提出此问题以来已有一段时间,但是Cava Packager当前可以为Windows,Linux和Mac OS X生成可执行程序包。它不再仅仅是Windows。

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


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

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


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


    推荐阅读

      脚本linux上运行命令?

      脚本linux上运行命令?,工具,代码,时间,密码,系统,环境,名字,位置,第三,下来,t

      linux修改脚本的命令?

      linux修改脚本的命令?,系统,密码,服务,工作,工具,环境,信息,百度,代码,脚本,

      linux脚本命令单引号?

      linux脚本命令单引号?,系统,工作,美元,地址,命令,信息,情况,标准,管理,引号,l

      重启计算机命令linux?

      重启计算机命令linux?,系统,工作,命令,服务,标准,设备,灵活,首要,意义,参数,L

      linux终端编译命令?

      linux终端编译命令?,代码,工具,环境,系统,终端,文件,源程序,编译器,语言,指

      linux计算机的命令?

      linux计算机的命令?,系统,工作,信息,设备,技术,命令,网站,管理,灵活,基础,lin

      linux命令行运行中断?

      linux命令行运行中断?,连续,工作,系统,信息,程序,命令,设备,工具,网络,情况,L

      linux命令解决方案?

      linux命令解决方案?,系统,管理,数据,电子,工作,电脑,软件,情况,不了,档案,lin

      vim运行linux命令?

      vim运行linux命令?,系统,工作,信息,地址,命令,标准,时间,情况,工具,基础,linu

      linux下并行运行命令?

      linux下并行运行命令?,系统,服务,工作,命令,环境,网络,暂停,文件,脚本,参数,l

      jar运行命令linux?

      jar运行命令linux?,项目,系统,平台,工具,上期,命令,选项,日志,文件名,目录,Li

      jar运行命令linux?

      jar运行命令linux?,项目,系统,平台,工具,上期,命令,选项,日志,文件名,目录,Li

      linux下并行运行命令?

      linux下并行运行命令?,系统,服务,工作,命令,环境,网络,暂停,文件,脚本,参数,l

      linux命令行编译文件?

      linux命令行编译文件?,代码,系统,项目,工具,网上,手机,电脑,地址,官网,文件,L

      linux系统编译命令?

      linux系统编译命令?,系统,代码,百度,暂停,电脑,工具,命令,终端,内核,程序,Lin

      linux交叉编译命令?

      linux交叉编译命令?,工具,平台,位置,网上,环境,基础,代码,编译器,路径,目标,

      linux脚本多个命令?

      linux脚本多个命令?,系统,工作,标准,服务,命令,软件,管理,连续,电脑,设备,lin

      linux脚本注释命令?

      linux脚本注释命令?,代码,系统,工作,名称,地方,脚本,命令,信息,状态,简介,lin

      linux命令行后台运行?

      linux命令行后台运行?,服务,状态,标准,暂停,命令,后台,连续,地方,工作,方法,l