在OS X上部署Ruby-Tk应用程序

时间:2012-06-15 14:27:44

标签: ruby macos deployment tk

我正在寻找一种直接在OS X上部署独立Ruby-Tk桌面应用程序的方法。在Mac上部署桌面Ruby GUI应用程序的所有现有选项(例如standaloneify.rb)都假设您使用的是RubyCocoa或MacRuby ,并与Xcode / Interface Builder项目结构紧密结合;或者,您通过Platypus包装一个简单的脚本,不涉及部署整个Ruby运行时。我发现的其他现有选项 - ruby​​script2exe,ocra,crate - 都不支持Mac和/或支持Ruby 1.9。

我希望有人能指出我执行以下操作的shell脚本或Ruby脚本:

  1. 跟踪应用中的所有依赖项/宝石。
  2. 将Ruby解释器和依赖项复制到应用程序包中。
  3. 在Ruby解释器和所有dylib上运行install_name_tool以使它们可移植。
  4. 应用程序包可以是由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以独立运行,或者指向另一个示例项目,或者甚至共享一些代码,我将不胜感激。我正在开发的项目比Ruby更适合Ruby(Ruby中更好的库支持),但如果部署不起作用,我不打算花时间。 (Python拥有比Ruby更丰富的部署工具传统,这是我从未完全理解的。)

1 个答案:

答案 0 :(得分:0)

事后有点晚了,但是以经典的方式,因为我在Mac上找不到Ruby-Tk的桌面应用程序部署工具,我自己写了:

ruby2app

ruby​​2app是一个简单的命令行工具,受类似Mac工具(如py2app for Python)的启发,它将Ruby脚本与Ruby运行时捆绑在一个独立的Mac应用程序中。它读取基本配置文件以找到适当的Ruby安装,编译嵌入Ruby解释器的小型C程序,将整个Ruby安装复制到应用程序包中,并将相关库与主可执行文件重新链接。

它试图为Mac提供ocra和exerb为Windows提供的内容。希望这对其他人有用。