将 Ruby 脚本转换成 Windows 下的可执行(.exe)文件

红薯 发布于 2009/03/14 23:52
阅读 2K+
收藏 3

Serverless 架构就不要服务器了?>>>

自从关注并使用 Ruby on Rails 以来,也对 Ruby 语言本身很感兴趣,并经常尝试用它写一些日常使用的小工具脚本。虽然自己使用很方便,但要分享给不用 Ruby 的朋友就比较麻烦了。

但是知道 Exerb 后,事情就变得简单了。Exerb 是一个可以把 Ruby 脚本以及其依赖的 Ruby 扩展库转换成 Windows 下的单个的可独立运行的可执行文件的工具(这么长的一句话读起来是不是很有想扁我的冲动?:p),到 Exerb Project 的主页 下载安装包解开并执行里面的 setup.rb 即可完成安装。

用法也很简单,先执行 mkexy your_script.rb,让 mkexy 启动你的脚本并运行,这期间它会自动探测出 your_script.rb 所依赖的类库文件以及扩展库文件,并在 your_script.rb 结束运行后创建一份清单 your_script.exy,然后执行命令 exerb your_script.exy 即可生成 your_script.exe。OK,现在可以轻松地把你的 Ruby 脚本分享给朋友们了。(注1)

看到这里,也许你会跟我一样想,哇哈哈哈,有了这个工具,用 Ruby 来做 GUI 的小工具就变得有意义了啊。没错,对依赖 fxruby、wxruby 的 Ruby GUI 脚本也能正常的使用 Exerb 完成转换 (注2) (注3)。但是,由于 Exerb 会把 fxruby/wxruby 的运行库嵌入到 .exe 文件里,生成的 .exe 文件都非常大,fxruby 的在 9MB 左右,wxruby 的 11MB 左右。对于一个功能简单的小工具来说,这个程度的体积显然是很多人不能接受的。

事实上,已经有了一个 GUI toolkit 运行库很小,VisualuRuby,虽然它是 Windows Only 的,虽然它现在在 Vista 上还有点小问题。不过这又是另外一个话题了,我会在下一篇 blog 里继续聊。

注1: 在这之前也许你需要用 upx 压缩一下生成的 .exe 文件,因为它确实比较大,一个最简单的 Hello world 也有 1.4MB 左右。

注2: Tk/Gtk/FLTK 我没有试过,对 Tk 不感兴趣,Gtk 在 Windows 下的运行库太过庞大,FLTK 则是因为找到的 ruby-fltk 在 Windows 下的二进制发行版依赖的 Ruby 版本太老,源代码发行版还没来得及尝试自己编译。

注3: 对于 GUI 脚本,使用 exerb -c gui your_script.exy 可以避免生成的可执行文件运行时带有 Windows 命令行窗口。

加载中
返回顶部
顶部