我需要打包 Ruby 应用程序(一个批处理作业),然后分发给其他用户。理想情况下,我不需要用户设置 Ruby,并且包中应包含所有依赖项。
有没有简单的方法可以做到这一点?我正在使用 Ruby v1.9.3。
我需要打包 Ruby 应用程序(一个批处理作业),然后分发给其他用户。理想情况下,我不需要用户设置 Ruby,并且包中应包含所有依赖项。
有没有简单的方法可以做到这一点?我正在使用 Ruby v1.9.3。
您的问题不清楚,所以我假设以下情况属实:
鉴于此,您最好的选择可能是“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 和您的应用程序。