【发布时间】:2012-04-20 05:24:06
【问题描述】:
我有以下内容(并已缩短到“/.../”的完整路径):
$ gem environment
RubyGems Environment:
- RUBYGEMS VERSION: 1.8.21
- RUBY VERSION: 1.9.2 (2012-02-14 patchlevel 318) [x86_64-linux]
- INSTALLATION DIRECTORY: /.../.rvm/gems/ruby-1.9.2-p318@rails-3.0
- RUBY EXECUTABLE: /.../.rvm/rubies/ruby-1.9.2-p318/bin/ruby
- EXECUTABLE DIRECTORY: /.../.rvm/gems/ruby-1.9.2-p318@rails-3.0/bin
- RUBYGEMS PLATFORMS:
- ruby
- x86_64-linux
- GEM PATHS:
- /.../.rvm/gems/ruby-1.9.2-p318@rails-3.0
- /.../.rvm/gems/ruby-1.9.2-p318@global
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :benchmark => false
- :backtrace => false
- :bulk_threshold => 1000
- REMOTE SOURCES:
- http://rubygems.org/
如您所见,我有 @global 和 @rails-3.0 gemsets。乘客 3.0.11 安装在 @global gemset 中,我的应用程序根目录中有一个 .rmvrc 文件:
rvm ruby-1.9.2-p318@rails-3.0
但是,在运行 $ bundle install 并通过 $ touch tmp/restart.txt 重新启动应用程序后,我不断收到以下乘客错误屏幕:
Error message: Could not find aaronh-chronic-0.3.9 in any of the sources (Bundler::GemNotFound)
此 gem 安装在 @rails-3.0 gemset 中
如果我在 @global gemset 中安装 aaronh-chronic gem,那么它只会抱怨下一个。就像它只是检查@global gemset 而不是首先查看我的@rails-3.0 gemset。我怎样才能让它同时使用两个 gemset? (Full backtrace here.)
更新:这是我的乘客 Apache 配置:
# In /etc/apache2/mods_available/passenger.load
LoadModule passenger_module /.../.rvm/gems/ruby-1.9.2-p318@global/gems/passenger-3.0.11/ext/apache2/mod_passenger.so
# In /etc/apache2/mods_available/passenger.conf
<IfModule mod_passenger.c>
PassengerRoot /.../.rvm/gems/ruby-1.9.2-p318@global/gems/passenger-3.0.11
PassengerRuby /.../.rvm/wrappers/ruby-1.9.2-p318@global/ruby
</IfModule>
【问题讨论】:
-
请在apache中添加您的乘客配置
-
请添加您的 Gemfile 内容
-
您好,我添加了指向我的 Gemfile 内容的链接,然后在底部添加了我的乘客 Apache 配置。谢谢。
-
附言。我发现stackoverflow.com/questions/4136894/… 接受了答案,说它在将Passenger 安装在应用程序的gemset 而不是全局gemset 中时有效。我试过这个并且它有效,但这需要在每次使用新的 gemset 时更改 apache 配置,并且似乎违背了 gemset 的目的。必须有一种方法可以在全局 gemset 中使用Passenger...
标签: ruby-on-rails-3 gem rvm passenger