打包并分发Ruby批处理应用程序

时间:2012-08-12 16:57:36

标签: ruby package distribution

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

有简单的方法吗?我使用的是Ruby v1.9.3。

1 个答案:

答案 0 :(得分:3)

你的问题不明确,所以我认为以下是正确的:

  • 您和您的用户在Windows上
  • 这是一个很少依赖的短脚本

鉴于此,你最好的选择可能是'ocra'宝石。有了它,您可以使用ocra <script>.rb将脚本打包成.exe。这将捆绑您的Ruby运行时,您的脚本使用的任何宝石,以及您的源到<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和您的应用程序的安装程序。