ラック1.3.2の問題。すでにラック1.3.2をアクティブ化していますが、Gemfileにはラック1.2.3が必要です -Railsを実行しようとするとYou have already activated rack 1.6.0, but your Gemfile requires rack 1.6.4
が発生します( 4.2)PumaとNginxで生産中。
bundle update rake
もrm Gemfile.lock && bundle install
も役立つようですが、これまでのところ、Gemfile.lockでrack (1.6.4)
をrack (1.6.0)
に手動で変更するしかありません。
不要な1つのバージョンのラックをアンインストールする必要があります。
これをしてください
gem uninstall rack -v 1.6.0
経験豊富な1人Rails開発者 強くお勧めします ビンスタブを使用します。インストール者:
bundle install --binstubs
相対パスを介して実行します。
./bin/Rails server
または、最も推奨される更新PATHで、バンドラーの問題を忘れてください。
export PATH="./bin:$PATH"
Rails server
次のように実行します:bundle exec Rails s
。これは、Gemfile.lockの設定を使用します
これらの問題は、複数のプロジェクトにローカルまたはグローバルのgemsetを使用している場合に発生する可能性があります。プロジェクトごとに個別のgemsetを作成してみませんか。
あなたはrvmを使用してこれを行うことができます
新しいジェムセットを作成する
rvm gemset create new_test
rvm gemset use new_test
bundle install
以下のcmdを実行するだけで、サーバーに最新のラックをインストールして問題を解決できます。
gem install rack
私はこの問題を経験しました:
これが私の解決策です:
解決策1:
このソリューションは多くの場合機能し、問題の原因となっているgemを更新するだけです。
bundle update rack
ソリューション2:
場合によってはソリューション1が機能しない可能性があり、Gemfile.lock
ファイルを編集する必要があります。
Gemfile.lock
ファイルを開いて、バージョンを要求された更新に変更するだけです。
私の場合、rack 2.0.7
ファイルにGemfile.lock
を定義しましたが、アプリケーションにはrack 2.1.2
が必要でした。単に、rack 2.1.2
でGemfile.lock
に変更する必要がありました。ファイル。
次に、以前のバージョンのrack 2.0.7
であるラックをアンインストールする必要がありました。
gem uninstall rack -v 2.0.7
そしてついに新しいgemを本番環境にインストールしました
bundle install --without development test
ソリューション:
非常にまれなケースですが、ソリューション1およびソリューション2が機能しない場合があり、gemを更新する前にGemfile
を編集する必要があります。
私の場合、gemはpuma
で、Gemfile
にpuma ~> 3.11
が定義されていましたが、アプリケーションにはpuma ~> 4.3.1
が必要でした。この時点で、Gemfileで指定されたbundle update puma
バージョンではGemfile.lock
の更新が許可されないため、puma ~> 3.11
を実行してpuma ~> 4.3.1
ファイルを編集することはできませんでした。
Gemfileのpumaのバージョンをpuma ~> 4.3.1
に変更してから、コマンドを実行するだけで済みました。
bundle update puma
それで全部です。
これがお役に立てば幸いです