在 Ubuntu 上使用 RVM Gemsets 时,如何将 Passenger 指向正确的 Gem 文件?Bundler::GemNotFound

在 Ubuntu 上使用 RVM Gemsets 时,如何将 Passenger 指向正确的 Gem 文件?Bundler::GemNotFound

我有一台安装了 nginx 和 Passenger 的 Ubuntu 服务器 (10.04)。我已在其上安装了 RVM,并且我有一个安装了 Passenger 3.02 的全局 gemset。我的应用程序位于另一个安装了 rails 等的 gemset 中。当我配置 nginx 来为应用程序提供服务时,我收到一条错误消息,提示 Bundler 找不到该 gem。

在任何来源中都找不到 abstract-1.0.0(Bundler::GemNotFound)

运行 rvm info 我看到以下内容:

environment:
PATH: "/home/richard/.rvm/gems/[email protected]/bin:/home/richard/.rvm/gems/ree-1.8.7-2010.02@global/bin:/home/richard/.rvm/rubies/ree-1.8.7-2010.02/bin:/home/richard/.rvm/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"
GEM_HOME:     "/home/richard/.rvm/gems/ree-1.8.7-2010.02@richarddowden"
GEM_PATH:     "/home/richard/.rvm/gems/ree-1.8.7-2010.02@richarddowden:/home/richard/.rvm/gems/ree-1.8.7-2010.02@global"
MY_RUBY_HOME: "/home/richard/.rvm/rubies/ree-1.8.7-2010.02"
IRBRC:        "/home/richard/.rvm/rubies/ree-1.8.7-2010.02/.irbrc"
RUBYOPT:      ""
gemset:       "richarddowden"

在我的(全局)nginx conf文件中,有以下内容:

http {
passenger_root /home/richard/.rvm/gems/ree-1.8.7-2010.02@global/gems/passenger-3.0.2;
passenger_ruby /home/richard/.rvm/wrappers/ree-1.8.7-2010.02@global/ruby;

我做错了什么蠢事?我需要在应用程序的 nginx 配置文件中复制 Passenger_ruby 变量吗?

谢谢,理查德

答案1

手掌 -> 脸部...

http://dalibornasevic.com/posts/21-rvm-and-passenger-setup-for-rails-2-and-rails-3-apps

&

http://rvm.beginrescueend.com/integration/passenger/

不过,仍然希望在未来的版本中这两者能够更紧密地集成。对于新手来说,使用 Rails(Heroku 之外)进行部署仍然很棘手。

相关内容