2011-01-13 19 views
2

この質問はこのサイトで何度も尋ねられていますが、他の回答を掘り下げた後も、これを解決する方法についてはまだ空白になっています。Missing Rails Gem

Iちょうど本番サーバからのレールのアプリのコピーを引っ張って、私は次のエラーを取得する:

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に私は肝炎この行はレールを選択する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つのバージョンは同じ場所にインストールされています。なぜ2.3.8はエラーを起こさないのですか?2.3.4はエラーですか?

この問題を解決するにはどうすればよいですか?

注:私は旅客

上で実行していますまた、注OF:スクリプト/コンソールは、2.3.4の下で動作しているように見えます...しかし、アプリはまだWebブラウザで失敗します。

UPDATE

わかりましたので、私はhttpd.confPassengerRubyディレクティブをチェックしwhich ruby/usr/bin/rubyを生産しながら、それが/usr/local/bin/rubyでした。この指令を/usr/bin/rubyに変更しました。

これは、Webブラウザの問題を解決しかし今スクリプト/コンソールが同じエラーで失敗している、:

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

あなたは宝石がインストールされているかもしれないが、乗客は別の場所に見ていてもよいです。 1つは、構成内でGEM_HOME環境変数を設定することです。アパッチで

これは次のようになります。あなたはそれはそれはすべてのファイルが含まれていないインストールできなかったように2.3.4が、何らかの理由でそのディレクトリにないことがあり

SetEnv GEM_HOME /Library/Ruby/Gems/1.8 

2.3。4は、適切な外観を持つことによってロードされます。

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

乗客は2.3.8ではなく2.3.8で '/ Library/Ruby/Gems/1.8'両方の宝石は破損していないようです。 – jordanstephens

2

Apacheの設定でPassengerRubyディレクティブを使用すると、「どのルビー」から取得出力と一致していますか?そうでない場合、あなたの乗客はあなたと同じ場所にある宝石を探していません

+0

ありがとうございました!私はそれを確認することは考えていないだろう。ブラウザの問題は修正されましたが、script/consoleで新しい問題が作成されました。私は質問を更新しました。 – jordanstephens