【问题标题】:Deploying Ruby-Tk app on OS X在 OS X 上部署 Ruby-Tk 应用程序
【发布时间】:2012-06-15 14:27:44
【问题描述】:

我正在寻找一种在 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 脚本:

  1. 跟踪应用程序中的所有依赖项/gem。
  2. 将 Ruby 解释器和依赖项复制到应用程序包中。
  3. 在 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 丰富得多的部署工具传统,这点我一直不太了解。)

【问题讨论】:

    标签: ruby macos deployment tk


    【解决方案1】:

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

    ruby2app

    ruby2app 是一个简单的命令行工具,其灵感来自于类似的 Mac 工具,如 Python 的 py2app,它将 Ruby 脚本与 Ruby 运行时捆绑到一个独立的 Mac 应用程序中。它读取一个基本配置文件以找到合适的 Ruby 安装,编译一个嵌入 Ruby 解释器的小型 C 程序,将整个 Ruby 安装复制到应用程序包中,并将相关库与主可执行文件重新链接。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-01
      • 2018-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多