【问题标题】:Deploying self contained Perl 6 script部署自包含的 Perl 6 脚本
【发布时间】:2016-08-29 11:22:19
【问题描述】:

部署使用外部模块(如LWP::Simple)的 Perl 6 脚本的最佳策略是什么?

例如,在 Perl 中,我们有 PAR。 Perl 6 中是否有一个选项可以部署一个用户只需要运行的自包含脚本,而无需安装 Rakudo 和外部 Perl 6 模块?

【问题讨论】:

    标签: raku


    【解决方案1】:

    您可以创建一个 .jar 文件,然后使用 java 执行代码。从那里,有很多工具可以将 .jar 转换为二进制文件(或 Windows 中的 .exe)。

    语法是:

    perl6 --target=jvm  --output=your_file.jar your_file.pl6
    

    如果那个脚本是微不足道的

    say "this is running as a .jar file"
    

    你应该可以运行java -jar your_file.jar并得到

    this is running as a .jar file
    

    在 macOS 上存在一些问题,因为此功能要求您使用 Java 1.7+ 而不是 Mac 的系统 Java 构建 perl6 (Rakudo Star)。因此,您系统上的版本可能未附带 JVM 支持。

    如果您使用的是 homebrew,请执行以下操作来解决此问题:

    1. brew uninstall perl6
    2. brew tap homebrew/versions(这样你就可以安装 Java 1.7)
    3. brew install Caskroom/versions/java7(安装 Java 1.7)
    4. 可选:在终端中打开一个新选项卡(仅当由于某种原因收到 Java 1.6 仍在使用中的错误时才需要这样做。)
    5. brew install perl6 --with-jvm(构建 perl6 并支持 Java 虚拟机)

    【讨论】:

    • 几年后(2013→2016)有一些发展:有an NQP tool to do this,但我不确定它是否有效。今天可以在 JVM 中运行 Perl 6(当 Rakudo 与 JVM 后端兼容时),但我不确定目前是否可以创建独立的 JAR。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多