2009-05-06 15 views
1

私はTigerを実行していて、Railsを1.1.6から1.2.6にアップグレードすることにしました(ばかげて)。私はコマンド "sudo gem install rails --include-dependencies"を実行し、すべてがうまくいくように見えました。しかし、インストール後、 "rails -v"コマンドを実行すると、以下のエラーが出ます。 1.2.6はTigerに対応していない可能性がありますか?私はインターネットで互換性情報を検索してきましたが、何も見つかりませんでした。ちなみに、必死になって、私は1.1.6に戻ろうとしましたが、私はまだ同じエラーが出ていますので、今私はうんざりしています。誰も助けることができますか?ありがとう。問題Railsをアップグレードする

/usr/local/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support/dependencies.rb:55: uninitialized constant ActiveSupport::Dependencies::Mutex (NameError) 
    from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_require' 
    from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `require' 
    from /usr/local/lib/ruby/gems/1.8/gems/activesupport-2.3.2/lib/active_support.rb:56 
    from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_require' 
    from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `require' 
    from /usr/local/lib/ruby/gems/1.8/gems/activerecord-2.3.2/lib/active_record.rb:25 
    from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_require' 
    from /usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in `require' 
    from /usr/local/lib/ruby/site_ruby/1.8/rubygems.rb:229:in `activate' 
    from /usr/local/lib/ruby/site_ruby/1.8/rubygems.rb:228:in `each' 
    from /usr/local/lib/ruby/site_ruby/1.8/rubygems.rb:228:in `activate' 
    from /usr/local/lib/ruby/site_ruby/1.8/rubygems.rb:214:in `activate' 
    from /usr/local/lib/ruby/site_ruby/1.8/rubygems.rb:213:in `each' 
    from /usr/local/lib/ruby/site_ruby/1.8/rubygems.rb:213:in `activate' 
    from /usr/local/lib/ruby/site_ruby/1.8/rubygems.rb:66:in `active_gem_with_options' 
    from /usr/local/lib/ruby/site 

答えて

3

あなたが行ったことは、あなたが右にレール2.3.2にジャンプしたように見えます。

sudo gem update --system 
sudo gem update 

そしてあまりにも1.2.6バージョンをインストールします。私はあなたが今やってお勧めする何

は、最初にすべてをアップグレードすることです。今、あなたは1.1.6、1.2.6および2.3.2

sudo gem install rails -v1.2.6 

を持っているだろうと、ところで、あなたのルビーバージョンものだ、とあなたは、Appleから供給されたものを使用していますか?特に、次の2つのコマンドを実行すると、必要な情報が得られます。 (確かに私と違うでしょう)

$ ruby --version 
ruby 1.8.7 (2009-04-08 patchlevel 160) [i686-darwin9] 
$ which ruby 
/opt/local/bin/ruby 

いいえ、Tigerとの互換性はありません。

+0

ありがとうkch、私はビジネスに戻っているようで、今はRails 2.3.2(およびRuby 1.8.5)を実行しています。あなたが気にしないならば、さらに2つの質問。一つは、これら3つのバージョンのRailsはどこに保存されていますか?/usr/local/binにあるrailsファイルは単なるスクリプトファイルです。 2つ目は、アプリケーションを作成するときに、どのバージョンのRailsを実行したいのかを指定する方法です。再度、感謝します。私は本当にあなたの助けに感謝します。私が他の "初心者"に好意を返すことができるように、私は十分に経験してくれることを願っています。 –

+0

Mineは/opt/local/lib/ruby/gems/1.8/gemsにありますが、ルビがどこにあるかによって異なります。例えば。標準のOS X版では、/usr/lib/ruby/gems/1.8/gemsにあります。 – kch

+0

railsコマンドを実行するときにどのレールバージョンを使用するかを選択する方法についてはわかりません。ただし、アプリケーションを入手したら、environment.rbに希望の宝石バージョンを設定するか、希望のレールバージョンをベンダーに入れてください。新しいSOの質問全体がこの問題に対してより良いでしょう。 – kch

0

私は(盲目的に)OSX RoRのインストール手順に従ってHiveLogicからこのエラーが発生しました。アップルは彼らにリンクしているので、彼らはOKだと思うだろう。 どのように、この文書のバイナリパスのインクルードは期限切れです!!!

特に、RubyGemsは1.3ではなく0.9でした。リスト内の他のバイナリは古いリンクでは古くなっていました。

問題を解決するには、Ruby on Railsの現在の指示に従ってください。 RubyGemsの正しいバージョンをダウンロードしてインストールして、うまく行けます!

HiveLogicの指示に従っている場合は、すべてのバージョンを確認することができます。

0

config/environment.rbの一番上にRAILS_GEM_VERSION定数を設定して、希望のGemバージョンを指定します。

RAILS_GEM_VERSION = '2.3.2' 

または、ベンダー/レールでRailsをフリーズできます。 Railsがあなた自身のアプリケーションからブートストラップすると、最初にベンダー/レールが検索されるので、そこであなたの希望するバージョンをフリーズすることができます。しかし私は自分自身でRAILS_GEM_VERSIONの方が好きです。

関連する問題