2012-08-12 56 views
0

我需要打包Ruby應用程序(一個批處理作業)並分發給其他用戶。理想情況下,我不需要用戶設置Ruby,並且該軟件包應包含其中的所有依賴關係。打包併發布Ruby批處理應用程序

有沒有簡單的方法來做到這一點?我正在使用Ruby v1.9.3。

回答

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和您的應用程序打包在一起。

+0

非常感謝! – iwan 2012-10-17 17:18:17