我需要打包Ruby应用程序(批处理作业),并分发给其他用户。理想情况下,我不需要用户设置Ruby,并且包中应包含所有依赖项。
有简单的方法吗?我使用的是Ruby v1.9.3。
答案 0 :(得分:3)
你的问题不明确,所以我认为以下是正确的:
鉴于此,你最好的选择可能是'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和您的应用程序的安装程序。