2011-01-13 83 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