【问题标题】:RVM and Bundle in production生产环境中的 RVM 和 Bundle
【发布时间】:2011-10-29 04:08:16
【问题描述】:

我正在将我最初在 ruby​​ 1.8.7 和 rails 2.3.5 中的 rails 应用程序升级到 ruby​​ 1.9.2 和 rails 2.3.12,并尝试使用 RVM 和 bundler,预计迁移会更容易.在我的本地机器上一切正常,但我很难使用 RVM 并将我的包部署到生产环境中。

首先,我不确定 RVM 是否正确加载了我的默认环境。我用我的 root 用户进行了多用户安装。然后我输入:

rvm --默认使用1.9.2

并添加:

[[ -s "/usr/local/rvm/scripts/rvm" ]] && ."/usr/local/rvm/scripts/rvm"

到我的 root 用户 ~/.bash_profile,但是当我打开一个新的 shell 并输入“which ruby​​”时,它会链接到“/usr/local/rvm/bin/ruby”。当我输入“rvm default”然后输入“which ruby​​”时,我得到了预期的“/usr/local/rvm/rubies/ruby-1.9.2-p290/bin/ruby”。所以我不确定 RVM 是否已正确安装和配置。

然后,我的包安装在(我相信)在:

“/home/web-app/www/shared/bundle”

当我输入“捆绑列表”时,我可以看到我安装的 gem(包括我的 rails 2.3.12)。但是当我做“宝石清单”时,我只看到:

*** LOCAL GEMS ***

bundler (1.0.18) 
daemon_controller (0.2.6) 
fastthread (1.0.7)
passenger (3.0.8) 
rack (1.3.2) 
rake (0.9.2 ruby)

我的捆绑包中的宝石不在列表中。所以现在,在我的现场(叹气)上,乘客找不到 Rails 2.3.12(可以从捆绑包中访问,而不是在 Local Gems 中)。不知道如何告诉乘客共享/捆绑文件夹中有一些可用的宝石......

希望得到一些帮助!

-- 编辑:

1:我没有以正确的方式安装乘客。我用过

sudo 乘客安装-apache2-模块

使用“sudo”导致安装发生在我的系统 ruby​​ 上,而不是 RVM 上。一旦我运行命令 WITHOUT sudo,控制台就会给我正确的行插入到我的 apache2.conf 文件中,并且我能够启动我的服务器。第一步很好,但现在我无法开始思考-sphinx:它抱怨找不到 Rails 2.3.12...

  1. 默认情况下,Rails 2.3 仅从 Gemset 加载 gem。正如here 所解释的那样,我必须添加一些代码来告诉我的应用程序也加载捆绑的 Gems。

【问题讨论】:

  • 上周我在设置一些 Rails 服务器(CentOS 和 Ubuntu)时发现,如果我尝试将 RVM 与Passenger 结合使用,则会导致严重的问题。这可能是一个巧合,但如果您只是在生产模式下设置服务器,我建议您尝试在没有 RVM 的情况下设置您的东西(因为无论如何您在生产服务器上实际上不需要多个版本的 Rails )。其次,我不完全确定 Ruby 1.9.2 可以与 Rails 2.x 一起使用,尽管我可能是错的。我建议只使用 Ruby 1.8.7——没有真正的理由使用 1.9.2,不是吗?
  • 我开始使用 Ruby 1.9 准备迁移到 Rails 3,并且在本地一切正常。但即使没有 RVM,因为捆绑的 gem 位于 shared/bundle 文件夹中,我认为 Ruby 和乘客不会找到它们,不是吗?所以我现在想,我只需要让 RVM 知道 gems 在哪里,或者在特定位置提供“捆绑安装”选项,但我不知道那个位置应该是什么。有什么想法吗?
  • RVM 把你的宝石放在一个奇怪的位置,我相信。您可以检查您的环境变量(命令行 printenv)并将路径导出到您的 gem 真正所在的位置,但是如果您只是卸载了 RVM、Ruby gem 等并安装了老式的 RoR,这一切不会简单得多大大地?我保证不会花那么长时间,值得一试:)

标签: ruby-on-rails passenger rvm


【解决方案1】:

使用 RVM 时,安装Passenger 时不要使用 sudo 命令。做吧:

passenger-install-apache2-module

它将为您提供与您的 RVM 环境相匹配的配置行(而不是您的系统 Ruby 的 env)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-10-14
    • 2018-06-04
    • 2015-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-29
    相关资源
    最近更新 更多