我正在寻找一种在 OS X 上部署独立 Ruby-Tk 桌面应用程序的简单方法。在 Mac 上部署桌面 Ruby GUI 应用程序的所有现有选项(例如standaloneify.rb)都假设您使用的是 RubyCocoa 或 MacRuby,并且是紧密绑定到 Xcode/Interface Builder 项目结构;或者,您正在通过 Platypus 包装一个不涉及部署整个 Ruby 运行时的简单脚本。我发现的其他现有选项——rubyscript2exe、ocra、crate——都不支持 Mac 和/或支持 Ruby 1.9。
我希望有人可以将我指向执行以下操作的 shell 脚本或 Ruby 脚本:
- 跟踪应用程序中的所有依赖项/宝石。
- 将 Ruby 解释器和依赖项复制到应用程序包中。
- 在 Ruby 解释器和所有 dylib 上运行 install_name_tool 以使其可移植。
应用程序包可以是 Platypus 创建的东西,使用 Cocoa 存根启动器,甚至是 shell 脚本——我知道如何处理这些。我遇到的问题是以可移植的方式包装 Ruby 运行时。
在http://weft-qda.rubyforge.org/svn/trunk/weft-qda/rake/rake_osx.rb有一个 rakefile,它包含了我想要完成的任务,但是这个 rakefile 是一个更大的构建的一部分我无法在我的 Mac 上运行的结构。我对 rakefile 结构不够熟悉,无法将其重构为一个可以通过“ruby rake_osx.rb”甚至“rake”运行的简单脚本。
如果有人可以向我建议如何修改这个 rakefile 以独立运行,或者将我指向另一个示例项目,甚至分享一些代码,我将不胜感激。我正在从事的项目比 Python 更适合 Ruby(Ruby 中更好的库支持),但如果部署不起作用,我不会在它上面投入时间。(Python 拥有比 Ruby 丰富得多的部署工具传统,这是我一直不太了解的。)