我正在尝试在 Rails 应用程序上部署一个 ruby。它使用 mysql 作为数据库。我想做的是将它作为 Windows 可执行文件分发。它应该是这样一种方式,用户可以点击应用程序,一切都会加载,并会出现一个全屏浏览器窗口。这样用户就不会知道它是一个浏览器,也不需要安装 ruby 组件来运行应用程序。
我正在使用 3.2.6 , ruby 1.9.3 , gem 1.8.24 有没有人做过这样的事情?
我正在尝试在 Rails 应用程序上部署一个 ruby。它使用 mysql 作为数据库。我想做的是将它作为 Windows 可执行文件分发。它应该是这样一种方式,用户可以点击应用程序,一切都会加载,并会出现一个全屏浏览器窗口。这样用户就不会知道它是一个浏览器,也不需要安装 ruby 组件来运行应用程序。
我正在使用 3.2.6 , ruby 1.9.3 , gem 1.8.24 有没有人做过这样的事情?
好吧,您可以创建一个可移植的发行版 - 自解压存档,它将提取您的 Rails 应用程序、带有所有必要 gem 的预配置 Ruby 包和一个 bat 文件,它将将 Ruby 添加到 PATH 变量、运行 Rails 服务器并打开浏览器窗户。我想,让 MySQL 可移植肯定会让人头疼。
主要缺点之一是几乎零级兼容性 - 某些 gem 无法在某些系统上运行,数据库驱动程序不兼容等。
我曾经尝试用 Apache+MySQL+PHP 做同样的事情,最终使用一台共享 PC 作为服务器,仅将浏览器启动器作为独立应用程序分发。
我会尝试用你的应用程序需要的所有东西预先打包一个虚拟 linux 盒子,然后发布它。
而且,是的,我也对最终答案很感兴趣 :-)
这可能是 JRuby 的工作。
尝试在您的开发机器上安装 JRuby 并查看您的应用程序是否在 JRuby 中运行而没有任何兼容性问题。如今,这很有可能。
在 JRuby 中运行您的应用程序使您能够将所有 Ruby、Rails、gem 和应用程序打包为单个 .war 文件,然后可以将其部署在像 Tomcat 这样的 java 应用程序服务器中(使用类似warbler的工具)
这仍然留给您安装所有基础设施(数据库、java、java 应用程序服务器等)的任务。