【问题标题】:Deploy Rails 3 with Phusion Passenger on Ubuntu WITH ALL GEMS INCLUDED在包含所有 GEMS 的 Ubuntu 上部署带有 Phusion Passenger 的 Rails 3
【发布时间】:2013-10-20 19:43:35
【问题描述】:

我需要将 Rails 3/Phusion Passenger/Apache2 应用程序部署到 Ubuntu 12.04 服务器,而无需在服务器上安装任何 gem。

我可以安装任何 Debian 软件包。

如何在我的项目中包含所有需要的 gem(包括 Rails、从 github 上的 git 项目安装的几个 gem,以及从 ruby​​gems.org 安装的一堆常规 gem)我的项目中,这样,部署后,Passenger 会找到 Rails 和所有的宝石并开心吗?

(我知道很多人可能会好奇我为什么要这样做。很遗憾,我不能谈论这个。抱歉。)

这里有一些没有奏效的事情。如果稍微修改一下,其中一个可能会起作用,我不知道:

方法一失败:

  1. 在 Ubuntu 12.04 开发机器上。红宝石 1.9.3。捆绑器 1.3.5。捆绑包——全部。 Git 提交。
  2. 在 Ubuntu 12.04 服务器机器上(无法从 Internet 安装 gem)。部署项目文件并安装包(apache2、ruby1.9.3、ruby-bundler、rubygems、libapache2-mod-passenger,它带来了 ruby​​1.8)。 bundle -v 提供 Bundler 版本 1.0.15(来自 ruby​​-bundle 包)。确保还部署了来自开发机器的 .bundle/config 文件。 bundle install --local 尝试从 github 下载 git gem,所以失败了。

【问题讨论】:

  • 尝试使用gem unpack,如this article所示。希望这比您迄今为止尝试的两件事效果更好。

标签: ruby-on-rails-3 ubuntu gem bundler passenger


【解决方案1】:

尝试使用bundle package --all,这应该会将您的宝石保存到./vendor/cache。您还可以使用 gem unpack --target vendor 在本地环境中解压缩 gem 以将它们保存在供应商目录中。然后,您可以在 Gemfile 中提供一个位置,以便您的应用程序可以找到 gem。可以不使用网络安装gem,还是真的不允许以任何方式安装gem?

来源: 1, 2

【讨论】:

  • 暂时+1。一直没有机会尝试这个,看看它是否会起作用。
  • @David 是的,我也没有测试过。告诉我进展如何,我会尽力帮助找到解决方案。
  • 我应该如何让部署的应用程序知道 gems?我无法使用 gem install 安装捆绑程序。 Ubuntu 12.04 上有 ruby​​-bundler 和 ruby​​gems debian 软件包,但 /usr/bin/bundle -v 报告“Bundler version 1.0.15”,这有点旧。不过,我猜它是否有效。
  • @David 我认为您可能只需要使用该软件包,因为如果您无法使用 ruby​​gems 安装,那么我想不出任何其他安装捆绑程序的方式。
【解决方案2】:

尝试使用pkgr 工具,它可以将您的 Rails 应用程序和所有依赖项转换为一个可安装的 Debian 软件包。

【讨论】:

  • 抱歉懒惰没有自己研究,但它说它只适用于喘息?不是 Ubuntu 12.04 精确的吗?
【解决方案3】:

update-alternatives --install /usr/bin/ruby ruby​​ /usr/bin/ruby1.9.3 200 update-alternatives --install /usr/bin/gem gem /usr/bin/gem1.9.3 200

(Phusion Passenger 不关心这一点,但对于我们将要安装的 gem 以及使用 Rails 控制台或将来的任何东西进行调试来说,这可能是一个好主意。)

  • gem install --local vendor/bundler-1.3.5.gem

  • 捆绑安装 --local

  • 设置所有其他 Apache 配置...

  • 服务 apache2 重启

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-05-31
    • 1970-01-01
    • 2012-10-16
    • 2015-08-31
    • 1970-01-01
    • 1970-01-01
    • 2010-10-25
    • 2019-01-17
    相关资源
    最近更新 更多