将Ruby打包成exe可执行文件

目前将Ruby代码打包成exe可执行文件主要有3种方式:

  1. rubyscript2exe,年久失修,打包出来的文件太大,不对源文件进行加密,运行时将源码释放到一个临时目录后执行;
  2. exerb,已经支持Ruby1.8.7和1.9,可以设置程序的版本信息,图标等,打包后的可执行文件可以用UPX压缩,功能很强大,执行时不释放源文件出来,对程序加密较好,但是对waitr这种需要调用DLL的gem支持不是很好,无法进行打包处理;
  3. ocra,原理和 rubyscript2exe差不多,可定制性不强,但是对 Ruby1.8.7和1.9以及 waitr都提供很好的支持,而且打包的时候会对文件进行压缩,打包后程序的大小可以接受,程序图标和版本信息暂时不能定制,但是默认图标比 rubyscript2exe要好看,如果对源码保护要求不是很强,用exerb又无法成功打包的时候,可以采用这个。

下载最新版exerb 安装见其官方说明。

先执行mkexy main.rb,会自动生成一个main.exy的配置文件;

打开生成的配置文件,加入下面的代码:

resource:
  icon:
    - width : 16
      height: 16
      color : 8
      file  : 19lou.ico
    - width : 32
      height: 32
      color : 8
      file  : 19lou.ico
  version:
    file_version_number   : 1.2.3.4
    product_version_number: 5.6.7.8
    comments              : Comments Field
    company_name          : Company Name Field
    legal_copyright       : Legal Copyright Field
    legal_trademarks      : Legal Trademarks Field
    file_version          : File Version Field
    product_version       : Product Version Field
    product_name          : Product Name Field
    file_description      : File Description Field
    internal_name         : Internal Name Field
    original_filename     : Original Filename Field
    private_build         : Private Build Field
    special_build         : Special Build Field

这些代码用来配置生成的exe文件的一些信息,如图标、版本等;

然后执行exerb main.exy,生成最终的可执行文件,该可执行文件比较大,可以使用UPX进行压缩,压缩率可以达到70%以上。

 

安装和使用ocra都比较简单,直接gem install ocra

cd到代码目录,执行ocra 你的.rb,然后开始打包。

你可能感兴趣的:(C++,c,C#,Ruby)