目前将Ruby代码打包成exe可执行文件主要有3种方式:
- rubyscript2exe,年久失修,打包出来的文件太大,不对源文件进行加密,运行时将源码释放到一个临时目录后执行;
- exerb,已经支持Ruby1.8.7和1.9,可以设置程序的版本信息,图标等,打包后的可执行文件可以用UPX压缩,功能很强大,执行时不释放源文件出来,对程序加密较好,但是对waitr这种需要调用DLL的gem支持不是很好,无法进行打包处理;
- 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