2012-02-14 4 views
0

誤ったバージョンのラック(one with a bug)を使用しているため、My Rails 2.3.xアプリケーションが失敗しています。私のシステムには、2つのバージョンのRackがあります。これはapt-getを介してインストールされたベンダー版(正しいバージョン)とシステム版です。Rubyが私のRailsアプリケーションに含まれているRackの宝石を使用していることを、どうすれば保証できますか?

なぜ間違ったバージョンを使用していますか?これは特に、販売されているバージョンがコールスタックの早期で正しく使用されているために私を困惑させています。そして、私はそれが正しいバージョンを使用するようにすることができますか?

はここでアプリケーションが失敗したときに、私は取得していますスタックトレースからの抜粋です:

/usr/lib/ruby/vendor_ruby/rack/utils.rb:202:in `set_cookie_header!' 
/home/alaveteli/vendor/gems/rack-1.1.0/lib/rack/response.rb:57:in `set_cookie' 
/home/alaveteli/vendor/rails/actionpack/lib/action_controller/response.rb:181:in `set_cookie' 

注vendoredラックを使用している2行目が、1行目は、システムのラックを使用しています。 (ラインはresponse.rbの57は、このように、ラックからモジュールを呼び出します。Utils.set_cookie_header!(header, key, value)

$LOAD_PATH私はvendored宝石は、システムのものの前に来て、それがあるべきと考えているようです。

はい、すぐにBundlerを使用するように移行する予定です。

+0

おそらくapt-getでインストールしたものをアンインストールしてみてください。 – Batkins

+0

これはこのシステムのオプションではありません。とにかく、私のベンダー版が動作しない理由を理解したいので、私のソフトウェアがどこでも動作するようにすることができます。 – seb

答えて

0

rbenvとruby-buildを試してみてください。それは正常なルビーバージョン管理システムです(rvmとは異なり、非常識です)。あなたは、フォルダごとにルビーバージョンを取得し、それはすべて宝石です。私がalaveteliの問題を抱えているとき、私は通常それらをdevメーリングリストで尋ねます。私はルーマニアalaveteliを実行します。

関連する問題