分发离线Ruby on Rails应用程序的选项

分发离线Ruby on Rails应用程序的选项

Options for distribution of an offline Ruby on Rails application

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

这并不是要成为基于Web的应用程序-也许我选择了错误的语言,但是...

我的理解是,为了在其他人的计算机上运行此应用程序的实例,他们将需要在Rails上安装ruby,Web服务器(也许是Webrick,以及我的应用程序代码)。 >

我只是想知道是否还有其他选择将应用程序作为独立应用程序分发,或者仅仅是将Web浏览器和ROR与我的应用程序打包在一起以进行简单的一步安装的简单方法?铅>


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


注意,弹弓似乎是一个无效的项目(请参阅注释)。我将把这个答案留在这里是出于历史目的以及它回来的机会

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

Joyent Slingshot allows developers to deploy Rails applications like a standard desktop application, which work online and offline (with synchronization), have drag and drop, and interact with all the other desktop applications.

With Joyent Slingshot:

  • Create a hybrid Web/desktop application
  • Synchronize online and offline data
  • Use the same code for online and offline application(s)
  • Deploy and update your application easily
  • Drag into and out of application

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

  • 介绍Joyent弹弓
  • 基本应用演练
  • 弹弓Wiki

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

就像其他人提到的那样,Ruby不一定是Rails,如果您真的想以一种简单的方式在Ruby中编写可分发的GUI应用程序,那么Shoes是一个不错的开始。


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

您可能想查看Shoes以便在Ruby中构建桌面应用程序。 Rails确实适合构建网站。


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

尽管如此,您将需要Web服务器来运行项目。这没有办法。在这方面,Ruby on Rails就像ASP.NET,因为它是服务器端框架。服务器运行代码,并使用Rails框架将HTML输出到浏览器。

不幸的是,您可能选择了错误的框架来执行所需的操作。您可能要检查Shoes,而不是Ruby on Rails,这是一个使用Ruby开发GUI应用程序的框架。


可能是Rails上的装备?


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

因此,您需要澄清您的目标是什么。 RoR是Web应用程序的专用框架。如果您的目标是学习RoR,那么我想给自己准备一些便宜的虚拟主机,并让自己成为一个应用。如果您的目标是学习Ruby,而不必学习Rails,那么Shoes,IronRuby,JRuby,MacRuby和其他工具可能是不错的选择。


推荐阅读

    linux汇编语言命令?

    linux汇编语言命令?,系统,地址,代码,数据,网络,平台,平均,位置,灵活,工作,汇

    linux没有命令行选项?

    linux没有命令行选项?,系统,首页,命令,工具,分析,第一,软件,异常,终端,空格,

    linux命令是什么语言?

    linux命令是什么语言?,系统,环境,代码,传播,管理,语言,操作系统,源码,自由,

    linux改语言命令行?

    linux改语言命令行?,系统,环境,工具,密码,概念,地方,软件,通信,管理,国际,lin

    linux命令行c语言?

    linux命令行c语言?,代码,系统,工具,环境,工作,保险,发行,命令,文件,终端,linu

    c语言在linux命令?

    c语言在linux命令?,系统,工作,管理,命令,保险,基础,环境,信息,文件,语言,linu

    linux编写c语言命令?

    linux编写c语言命令?,系统,基础,环境,代码,盘面,保险,百度,情况,数据,工具,在

    linux命令选项说明?

    linux命令选项说明?,系统,标准,地址,设备,命令,工作,软件,工具,基础,数据,Lin

    linux7个命令选项?

    linux7个命令选项?,标准,管理,系统,基础,地址,命令,环境,单位,工具,信息,linu

    linux安装离线包命令?

    linux安装离线包命令?,系统,软件,代码,名字,图片,环境,电脑,官网,命令,文件,l

    linux改变语言命令?

    linux改变语言命令?,系统,管理,网上,官方网站,情况,服务,中文,语言,命令,终

    linux常用命令及选项?

    linux常用命令及选项?,工作,系统,地址,管理,信息,网络,命令,目录,文件,操作,l

    c语言编译linux命令?

    c语言编译linux命令?,代码,工具,环境,系统,基础,保险,百度,语言,源程序,文件

    学习linux命令心得?

    学习linux命令心得?,基础,基础知识,报告,系统,管理,时间,社会,数字,技术,命

    linux命令和应用程序?

    linux命令和应用程序?,软件,系统,环境,管理,基础,情况,位置,电脑,工具,中心,

    linux命令选项是什么?

    linux命令选项是什么?,系统,地址,工作,管理,命令,信息,选项,检测,标准,简介,

    linux命令文档离线版?

    linux命令文档离线版?,地址,系统,工作,标准,命令,信息,管理,文件,单位,数据,

    linux命令选项的约定?

    linux命令选项的约定?,系统,基础,设备,命令,工作,情况,信息,地址,名称,网络,

    linux常用命令语言?

    linux常用命令语言?,工作,地址,系统,信息,命令,目录,标准,管理,工具,服务,lin

    r语言命令行写linux?

    r语言命令行写linux?,环境,数据,系统,工具,简介,官网,语言,报告,软件,发展,如