【问题标题】:Distributing Ruby along with application?与应用程序一起分发 Ruby?
【发布时间】:2012-02-06 18:29:10
【问题描述】:

我有一个简单的桌面 Ruby 客户端,我想将它分发给少数(技术和非技术)人员。

客户端将作为守护程序运行,因此没有 GUI。我只需要客户端在 OSX 和 Linux 上运行。

有没有办法可以将某个版本的 Ruby 与应用程序一起分发并使用该版本运行我的客户端?我该怎么做?

【问题讨论】:

    标签: ruby client desktop-application distribution


    【解决方案1】:

    是的,但它可能过于复杂。 Ruby 需要针对您运行它的平台进行编译,因此您需要能够访问您将分发到的所有不同平台,然后针对这些平台进行编译,将它们全部包含在您的分发中,并在运行当前平台并选择正确的二进制文件。这整个过程过度且容易出错。此外,这些二进制文件不一定非常小,这会使您的可分发文件变得臃肿。

    那么为什么不直接将他们指向 Windows 的 RubyInstaller,告诉他们他们准备在 OS X 上运行,而 Ubuntu 用户通常足够精明,你可以给他们更复杂的说明,或者更好的是,分发你的应用程序作为一个 Ubuntu 包,因此 Ruby 被安装为依赖项。

    【讨论】:

      【解决方案2】:

      一半的答案是您不需要将 ruby​​ 分发给 OSX 用户 - ruby​​ 已经安装在 OSX 机器上。只要您的代码适用于 Ruby 1.8.7,您在 Mac 上就可以了。

      【讨论】:

      • 是的。我知道这一事实。
      • 差不多了,我要指出的是,很多 Linux 发行版也默认安装了 Ruby。 which ruby 应该让你知道。如果您希望使用最新和最大的性能改进并在哈希语法上节省一些击键,这无济于事,但如果 OP 是针对非技术用户,这可能是最简单的方法。
      • 您不需要将 Ruby 分发给 OSX 用户,但是 a) 如果应用程序需要 1.9.2,而不是安装的任何版本,该怎么办?如果它需要宝石怎么办?如果它甚至需要二进制 gem,这需要在编译之前安装 XCode(下载数 GB)怎么办?这对用户有很多要求。
      • 这是一个很好的问题,我支持 Stian。与使用 Compass 和 SASS 等技术含量较低的前端开发人员一起工作,并看到 Ruby 可能带来的版本依赖的噩梦,打包 Ruby+Gems 绝对有价值。我认为虽然有一些工具可以帮助解决这个问题(例如 RVM),但有时它只会让它变得更加复杂,事情就会变得一团糟。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-11
      • 1970-01-01
      • 1970-01-01
      • 2010-10-30
      • 2023-03-08
      • 2023-03-22
      相关资源
      最近更新 更多