分发脱机Ruby on Rails应用程序的选项

我正在开发一个使用Ruby on Rails的应用程序,主要是作为学习语言的借口。

这不是一个基于Web的应用程序 – 也许我选择了错误的语言,但……

我的理解是,为了在别人的计算机上运行这个应用程序的实例,他们需要在rails上安装ruby,在webserver(或者webrick,或许)上安装,以及我的应用程序代码。

我只是好奇是否有任何其他选项可以将我的应用程序作为独立应用程序分发,或者可能只是一个简单的方法来将Web浏览器和ROR与我的应用程序一起打包进行简单的一步安装?

我个人从来不需要这样做。 但是,我已经浏览了这个教程http://www.erikveen.dds.nl/distributingrubyapplications/rails.html ,我认为这将有所帮助。 本教程介绍了如何将rails应用程序实际转换为独立的exe文件。

注意,Slingshot似乎是一个死项目(见评论)。 我会在这里留下这个答案用于历史目的以及它回来的可能性

Joyent的弹弓可能是一个不错的选择。

Joyent Slingshot允许开发人员部署Rails应用程序,如标准桌面应用程序,可在线和离线(同步)工作,拖放,并与所有其他桌面应用程序交互。

使用Joyent弹弓:

  • 创建混合Web /桌面应用程序
  • 同步在线和离线数据
  • 在线和离线应用程序使用相同的代码
  • 轻松部署和更新您的应用程序
  • 拖入和拖出应用程序

以下是一些帮助您评估和/或帮助您入门的其他链接:

  • 介绍Joyent弹弓
  • 基本应用程序演练
  • 弹弓维基

大多数人运送ruby程序的方式,包括Rails webapps,作为一个独立的exe是通过rubyscript2exe。 他们描述了如何在http://www.erikveen.dds.nl/distributingrubyapplications/rails.html上打包Rails应用程序。 Ruby,Rails和所有相关的库将包含在EXE文件中。

正如其他人提到的,Ruby不一定是Rails,如果你真的想要一种简单的方法来编写Ruby中可分发的GUI应用程序,那么Shoes是一个很好的开始寻找的地方。

Rails上的Gears可能吗?

您可以考虑将Ruby编译为JVM字节代码(通过JRuby )或.NET字节代码(通过IronRuby ),以便分发给拥有这些虚拟机并且不想安装Ruby运行时的人。

您可能想要查看用于在Ruby中构建桌面应用程序的Shoes 。 Rails确实用于构建网站。

您可以通过将Ruby冻结到要在项目中使用的Rails版本来包含Ruby on Rails。 他们称之为冻结。 用户无需安装Rails即可使用您的应用程序。 您可以使用项目中使用的任何库来执行此操作。 如果项目使用库,只需将其放在项目的Vendor文件夹下。 然后使用类似于@Josh回答的工具来打包它。

您将需要一个Web服务器来运行该项目。 没有办法解决这个问题。 在这方面,Ruby on Rails就像ASP.NET一样,它是一个服务器端框架。 服务器运行代码并使用Rails框架将HTML输出到浏览器。

不幸的是,你可能选择了错误的框架来做你想做的事情。 您可能想要查看Shoes ,而不是Ruby on Rails,这是一个使用Ruby开发GUI应用程序的框架。

您没有具体说明它是否应该是GUI应用程序。 从其他答案来看,我猜是这样的。

因此,您需要澄清您的目标是什么。 RoR是Web应用程序的专用框架。 如果您的目标是学习RoR,我会说让自己得到一些廉价的虚拟主机并让自己成为一个应用程序。 如果你的目标是学习Ruby,不一定是Rails,那么Shoes,IronRuby,JRuby,MacRuby和其他人可能是很好的选择。