古い宝石を更新した後の Ruby の「宝石が見つかりません」エラー
概要
ラックを 2.2.7 から 3.0.8 に更新しましたが、バンドル インストールを実行すると次のエラーが発生します。
C:/Ruby30-x64/lib/ruby/site_ruby/3.0.0/rubygems.rb:265:in `find_spec_for_exe': can't find gem rack (>= 0.a) with executable rackup (Gem::GemNotFoundException)
from C:/Ruby30-x64/lib/ruby/site_ruby/3.0.0/rubygems.rb:284:in `activate_bin_path'
from C:/Ruby30-x64/bin/rackup:25:in `<main>'
エラーは、Gem ラックセッションが明らかに新しいバージョンまたはラックを必要としていたときに始まりました。
C:/Ruby30-x64/lib/ruby/gems/3.0.0/gems/rack-2.2.7/lib/rack/session/cookie.rb:155:in `<class:Cookie>': undefined method `DelegateClass' for Rack::Session::Cookie:Class
そこで、最新バージョンに更新し、古いバージョンのラックを削除したところ、エラーが発生しました。どうすればよいですか?
解決策
ラック 3.0.0 以降、ラックアップ実行可能ファイルはラックから別のラックアップ gem に抽出されました。したがって、rack >= 3.0 でrackup コマンドを使用するには、以下も追加する必要があります。
gem "rackup"
Gemfile に追加します。