生产中的RVM和Bundle

时间:2011-08-17 18:10:08

标签: ruby-on-rails passenger rvm

我正在将我的rails应用程序最初在ruby 1.8.7和rails 2.3.5升级到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。

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

  

“/家庭/ web应用程序/网络/共享/捆”

当我输入“捆绑列表”时,我可以看到我安装的宝石(包括我的导轨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(可以从捆绑中访问,而不是在本地宝石中访问)。不知道如何告诉乘客共享/捆绑文件夹中有一些可用的宝石......

会喜欢一些帮助!

- EDITS:

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

  

sudo passenger-install-apache2-module

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

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

1 个答案:

答案 0 :(得分:2)

使用RVM时,请在没有sudo命令的情况下安装Passenger。只是做:

  

乘客安装-apache2的模块

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