0

我需要打包 Ruby 应用程序(一个批处理作业),然后分发给其他用户。理想情况下,我不需要用户设置 Ruby,并且包中应包含所有依赖项。

有没有简单的方法可以做到这一点?我正在使用 Ruby v1.9.3。

4

1 回答 1

3

您的问题不清楚,所以我假设以下情况属实:

  • 您和您的用户在 Windows 上
  • 这是一个简短的脚本,几乎没有依赖项

鉴于此,您最好的选择可能是“ocra”宝石。有了它,您可以使用 .exe 将脚本打包成 .exe ocra <script>.rb。这会将您的 Ruby 运行时、您的脚本使用的任何 gem 以及您的源代码捆绑到一个<script>.exe文件中,如下所示:

    C:\Users\Walton>cat hello.rb
    puts 'Hello World!'

    C:\Users\Walton>ocra hello.rb
    === Loading script to check dependencies
    Hello World!
    C:/Ruby193/lib/ruby/gems/1.9.1/gems/ocra-1.3.0/bin/ocra:467: Use RbConfig instead of obsolete and deprecated Config.
    === Including 52 encoding support files (5179608 bytes, use --no-enc to exclude)

    === Building hello.exe
    === Adding user-supplied source files
    === Adding ruby executable ruby.exe
    === Adding library files
    === Compressing 14898286 bytes
    === Finished building hello.exe (3261400 bytes)

    C:\Users\Walton>hello.exe
    Hello World!

由于它打包了您现有的 ruby​​ 运行时,因此您可能应该运行 32 位 Ruby 以确保您的可执行文件可以在 32 位和 64 位平台上运行。

如果您需要的东西超出了 ocra 所能提供的范围,那么最好的办法是构建一个安装程序来打包 Ruby 和您的应用程序。

于 2012-08-13T01:26:04.733 回答