1

我在 box1 上运行了一个 RoR 应用程序……它显然在那个盒子上安装了 Ruby、RubyGems 和 Rails,以及其他一些 gem。

我想复制整个设置,这样它也可以在 box2 上独立运行。

两个盒子都没有互联网连接,但另一台机器上有互联网连接。

据我所知,我需要——

  • 在 box2 上安装 Ruby(我有 RPM,没问题)
  • 在 box2 上安装 RubyGems(我有 RPM,没问题)
  • 安装 Rails(我该怎么做?
  • 将整个 Rails 应用程序目录复制到 box2 上?

Ruby on Rails 站点上的唯一指导是运行gem install rails,但如果没有 Internet 连接,我无法执行此操作。

那么我可以只bundle package在 box1 上运行,然后将生成的 gem 文件复制到 box2 上并在每个文件上进行本地 gem install 来安装它们吗?或者我可以简单地将'usr/local/lib/ruby/gems/1.9.1/gems'目录复制到box2上吗?

其次,我计划将我的 Rails 应用程序打包到 RPM 中,这样我就可以轻松地将它部署到我想要的任何地方......我可以将我的 gem 文件(由 产生bundle package)包含在 RPM 目录结构中,然后在 .spec文件在安装过程中进行 gem 安装?这样,它将在安装 RPM 时安装所需的 gem。

可能我忽略了一个更简单的方法,或者误解了一些东西,如果是这样,请赐教。有什么帮助吗?

4

1 回答 1

1

看看VagrantRailscasts 插曲

Vagrant 将通过将所有内容放在安装了所有 gem 的虚拟机中来解决您的“在任何地方部署”问题。

当然,由于缺乏互联网访问权限,这不会解决您的直接问题,但听起来您确实走在正确的轨道上。

于 2012-04-04T17:10:47.437 回答