2011-01-13 64 views
2

我知道这个问题已经在这个网站上被多次询问,但是在深入了解其他答案之后,我仍然对如何解决这个问题留下了空白。Missing Rails Gem

我只是拉从生产服务器一个Rails应用程序的副本,我得到以下错误:

Missing the Rails 2.3.4 gem. Please gem install -v=2.3.4 rails , update your RAILS_GEM_VERSION setting in config/environment.rb for the Rails version you do have installed, or comment out RAILS_GEM_VERSION to use the latest version installed.

轨道2.3.4在我的宝石列表:

*** LOCAL GEMS *** 

actionmailer (2.3.8, 2.3.5, 2.3.4, 2.2.2, 1.3.6) 
actionpack (2.3.8, 2.3.5, 2.3.4, 2.2.2, 1.13.6) 
actionwebservice (1.2.6) 
activerecord (2.3.8, 2.3.5, 2.3.4, 2.2.2, 1.15.6) 
activeresource (2.3.8, 2.3.5, 2.3.4, 2.2.2) 
activesupport (2.3.8, 2.3.5, 2.3.4, 2.2.2, 1.4.4) 
acts_as_ferret (0.4.3) 
authlogic (2.1.6) 
capistrano (2.5.2) 
cgi_multipart_eof_fix (2.5.0) 
daemons (1.0.10) 
dnssd (0.6.0) 
fastercsv (1.5.4) 
fastthread (1.0.1) 
fcgi (0.8.7) 
ferret (0.11.6) 
gem_plugin (0.2.3) 
gemcutter (0.6.1) 
google-spreadsheet-ruby (0.1.2) 
highline (1.5.0) 
hpricot (0.6.164) 
libxml-ruby (1.1.2) 
mongrel (1.1.5) 
mysql (2.8.1) 
needle (1.3.0) 
net-scp (1.0.1) 
net-sftp (2.0.1, 1.1.1) 
net-ssh (2.0.4, 1.1.4) 
net-ssh-gateway (1.0.0) 
nokogiri (1.4.4) 
oauth (0.4.4) 
packet (0.1.15) 
prawn (0.8.4) 
prawn-core (0.8.4) 
prawn-fast-png (0.2.3) 
prawn-layout (0.8.4) 
prawn-security (0.8.4) 
rack (1.2.1, 1.1.0, 1.0.1) 
rails (2.3.8, 2.3.5, 2.3.4, 2.2.2, 1.2.6) 
rake (0.8.3) 
RedCloth (4.1.1) 
rmagick (2.13.1) 
roo (1.9.3) 
ruby-ole (1.2.11.1) 
ruby-openid (2.1.2) 
ruby-yadis (0.3.4) 
rubynode (0.1.5) 
rubyzip (0.9.4) 
spreadsheet (0.6.5.0) 
sqlite3-ruby (1.2.4) 
termios (0.9.4) 
xmpp4r (0.4) 

而且gem list -d rails看起来是这样的:

*** LOCAL GEMS *** 

rails (2.3.8, 2.3.5, 2.3.4, 2.2.2, 1.2.6) 
    Author: David Heinemeier Hansson 
    Rubyforge: http://rubyforge.org/projects/rails 
    Homepage: http://www.rubyonrails.org 
    Installed at (2.3.8): /Library/Ruby/Gems/1.8 
       (2.3.5): /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8 
       (2.3.4): /Library/Ruby/Gems/1.8 
       (2.2.2): /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8 
       (1.2.6): /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8 

    Web-application framework with template engine, control-flow layer, 
    and ORM. 

现在,这里是我失去了:在environment.rb我甲肝e此行选择导轨2.3.4。

RAILS_GEM_VERSION = '2.3.4' unless defined? RAILS_GEM_VERSION

如果我改变了行:

RAILS_GEM_VERSION = '2.3.8' unless defined? RAILS_GEM_VERSION

错误消失。我知道有不同位置安装的导轨版本,但有问题的两个版本安装在相同的位置。为什么2.3.8不会引发错误,而2.3.4呢?

我该如何解决这个问题?

注意:我客运运行

此外,注意事项:脚本/控制台出现2.3.4下工作......但应用程序仍然在Web浏览器失败。

UPDATE

好了,所以我查了PassengerRuby指令在httpd.conf,这是/usr/local/bin/rubywhich ruby生产/usr/bin/ruby。我将该指令更改为/usr/bin/ruby

这解决了网络浏览器的问题,但是现在脚本/控制台与同样的错误失败:

Missing the Rails 2.3.4 gem. Please gem install -v=2.3.4 rails , update your RAILS_GEM_VERSION setting in config/environment.rb for the Rails version you do have installed, or comment out RAILS_GEM_VERSION to use the latest version installed.

所以,现在,我可以在Web浏览器中查看该项目的罚款。但我不能使用任何脚本的轨道,并rake db:migrate失败,出现以下错误:

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems.rb:827:in report_activate_error': Could not find RubyGem rake (>= 0) (Gem::LoadError) from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems.rb:261:in activate' from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/rubygems.rb:68:in `gem' from /usr/bin/rake:18

回答

0

你可能已经安装了宝石,但乘客可能会寻求在不同的位置。可能有用的一件事是在您的配置中设置GEM_HOME环境变量。

在Apache中,这将是这样的:

SetEnv GEM_HOME /Library/Ruby/Gems/1.8 

您可能会发现2.3.4是不在该目录中由于某种原因,就像是一个失败的安装,不包含任何文件。

确保2.3。

% ls -l /Library/Ruby/Gems/1.8/gems/rails-2.3.4 
+0

为什么乘客会在`/ Library/Ruby/Gems/1.8`中寻找rails 2.3.8但不是2.3.4?这两个宝石似乎都没有损坏。 – jordanstephens 2011-01-13 20:32:04

2

是否在你的Apache配置的PassengerRuby指令你“这红宝石”获得匹配输出:4被适当地在看看装?如果不是,那么你的乘客不在同一个地方寻找宝石

+0

谢谢!我从来没有想过检查。这修复了浏览器问题,但用脚本/控制台创建了一个新问题,我更新了我的问题。 – jordanstephens 2011-01-13 20:43:37