最新版のDevise 4.7.3が入っている状態でOmniAuth 2.0.0をインストールすると、Rails Serverを起動することができない問題の対処方法
Dependabotに「Devise 1.9.1はSecurityに脆弱性があるからDevise 2.0.0にアップデートしよう」と通知をもらったので、ライブラリのバージョンをアップデートしようとしたところ、Rails Serevrが起動しなくなりました。😢
実行環境
エラー内容
/Users/mbp2021/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/devise-4.7.3/lib/devise/omniauth.rb:12:in `<main>': You are using an old OmniAuth version, please ensure you have 1.0.0.pr2 version or later installed. (RuntimeError)
OmniAuthのバージョンは2.0.0なので、1.0.0より古いはずはない・・・🤔
エラー全文
$ bundle exec rails c /Users/mbp2021/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/devise-4.7.3/lib/devise/omniauth.rb:12:in `<main>': You are using an old OmniAuth version, please ensure you have 1.0.0.pr2 version or later installed. (RuntimeError) from /Users/mbp2021/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require' from /Users/mbp2021/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `block in require_with_bootsnap_lfi' from /Users/mbp2021/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/loaded_features_index.rb:92:in `register' from /Users/mbp2021/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require_with_bootsnap_lfi' from /Users/mbp2021/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:31:in `require' from /Users/mbp2021/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/zeitwerk-2.4.2/lib/zeitwerk/kernel.rb:34:in `require' from /Users/mbp2021/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/activesupport-6.1.0/lib/active_support/dependencies.rb:332:in `block in require' from /Users/mbp2021/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/activesupport-6.1.0/lib/active_support/dependencies.rb:299:in `load_dependency' from /Users/mbp2021/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/activesupport-6.1.0/lib/active_support/dependencies.rb:332:in `require' from /Users/mbp2021/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/devise-4.7.3/lib/devise.rb:443:in `omniauth' from /Users/mbp2021/projects/s4na/twi-note/config/initializers/devise.rb:266:in `block in <main>' from /Users/mbp2021/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/devise-4.7.3/lib/devise.rb:307:in `setup' from /Users/mbp2021/projects/s4na/twi-note/config/initializers/devise.rb:5:in `<main>' from /Users/mbp2021/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:59:in `load' from /Users/mbp2021/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:59:in `load' from /Users/mbp2021/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/activesupport-6.1.0/lib/active_support/dependencies.rb:326:in `block in load' from /Users/mbp2021/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/activesupport-6.1.0/lib/active_support/dependencies.rb:299:in `load_dependency' from /Users/mbp2021/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/activesupport-6.1.0/lib/active_support/dependencies.rb:326:in `load' from /Users/mbp2021/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/railties-6.1.0/lib/rails/engine.rb:681:in `block in load_config_initializer' from /Users/mbp2021/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/activesupport-6.1.0/lib/active_support/notifications.rb:205:in `instrument' from /Users/mbp2021/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/railties-6.1.0/lib/rails/engine.rb:680:in `load_config_initializer' from /Users/mbp2021/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/railties-6.1.0/lib/rails/engine.rb:634:in `block (2 levels) in <class:Engine>' from /Users/mbp2021/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/railties-6.1.0/lib/rails/engine.rb:633:in `each' from /Users/mbp2021/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/railties-6.1.0/lib/rails/engine.rb:633:in `block in <class:Engine>' from /Users/mbp2021/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/railties-6.1.0/lib/rails/initializable.rb:32:in `instance_exec' from /Users/mbp2021/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/railties-6.1.0/lib/rails/initializable.rb:32:in `run' from /Users/mbp2021/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/railties-6.1.0/lib/rails/initializable.rb:61:in `block in run_initializers' from /Users/mbp2021/.rbenv/versions/2.7.2/lib/ruby/2.7.0/tsort.rb:228:in `block in tsort_each' from /Users/mbp2021/.rbenv/versions/2.7.2/lib/ruby/2.7.0/tsort.rb:350:in `block (2 levels) in each_strongly_connected_component' from /Users/mbp2021/.rbenv/versions/2.7.2/lib/ruby/2.7.0/tsort.rb:422:in `block (2 levels) in each_strongly_connected_component_from' from /Users/mbp2021/.rbenv/versions/2.7.2/lib/ruby/2.7.0/tsort.rb:431:in `each_strongly_connected_component_from' from /Users/mbp2021/.rbenv/versions/2.7.2/lib/ruby/2.7.0/tsort.rb:421:in `block in each_strongly_connected_component_from' from /Users/mbp2021/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/railties-6.1.0/lib/rails/initializable.rb:50:in `each' from /Users/mbp2021/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/railties-6.1.0/lib/rails/initializable.rb:50:in `tsort_each_child' from /Users/mbp2021/.rbenv/versions/2.7.2/lib/ruby/2.7.0/tsort.rb:415:in `call' from /Users/mbp2021/.rbenv/versions/2.7.2/lib/ruby/2.7.0/tsort.rb:415:in `each_strongly_connected_component_from' from /Users/mbp2021/.rbenv/versions/2.7.2/lib/ruby/2.7.0/tsort.rb:349:in `block in each_strongly_connected_component' from /Users/mbp2021/.rbenv/versions/2.7.2/lib/ruby/2.7.0/tsort.rb:347:in `each' from /Users/mbp2021/.rbenv/versions/2.7.2/lib/ruby/2.7.0/tsort.rb:347:in `call' from /Users/mbp2021/.rbenv/versions/2.7.2/lib/ruby/2.7.0/tsort.rb:347:in `each_strongly_connected_component' from /Users/mbp2021/.rbenv/versions/2.7.2/lib/ruby/2.7.0/tsort.rb:226:in `tsort_each' from /Users/mbp2021/.rbenv/versions/2.7.2/lib/ruby/2.7.0/tsort.rb:205:in `tsort_each' from /Users/mbp2021/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/railties-6.1.0/lib/rails/initializable.rb:60:in `run_initializers' from /Users/mbp2021/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/railties-6.1.0/lib/rails/application.rb:384:in `initialize!' from /Users/mbp2021/projects/s4na/twi-note/config/environment.rb:7:in `<main>' from /Users/mbp2021/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `require' from /Users/mbp2021/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in `block in require_with_bootsnap_lfi' from /Users/mbp2021/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/loaded_features_index.rb:92:in `register' from /Users/mbp2021/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:22:in `require_with_bootsnap_lfi' from /Users/mbp2021/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/bootsnap-1.5.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:31:in `require' from /Users/mbp2021/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/zeitwerk-2.4.2/lib/zeitwerk/kernel.rb:34:in `require' from /Users/mbp2021/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/activesupport-6.1.0/lib/active_support/dependencies.rb:332:in `block in require' from /Users/mbp2021/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/activesupport-6.1.0/lib/active_support/dependencies.rb:299:in `load_dependency' from /Users/mbp2021/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/activesupport-6.1.0/lib/active_support/dependencies.rb:332:in `require' from /Users/mbp2021/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/spring-2.1.1/lib/spring/application.rb:106:in `preload' from /Users/mbp2021/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/spring-2.1.1/lib/spring/application.rb:157:in `serve' from /Users/mbp2021/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/spring-2.1.1/lib/spring/application.rb:145:in `block in run' from /Users/mbp2021/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/spring-2.1.1/lib/spring/application.rb:139:in `loop' from /Users/mbp2021/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/spring-2.1.1/lib/spring/application.rb:139:in `run' from /Users/mbp2021/.rbenv/versions/2.7.2/lib/ruby/gems/2.7.0/gems/spring-2.1.1/lib/spring/application/boot.rb:19:in `<top (required)>' from /Users/mbp2021/.rbenv/versions/2.7.2/lib/ruby/site_ruby/2.7.0/rubygems/core_ext/kernel_require.rb:85:in `require' from /Users/mbp2021/.rbenv/versions/2.7.2/lib/ruby/site_ruby/2.7.0/rubygems/core_ext/kernel_require.rb:85:in `require' from -e:1:in `<main>'
原因
原因を調べてみたところ、
lib/devise/omniauth.rb
のファイルに
unless OmniAuth::VERSION =~ /^1\./ raise "You are using an old OmniAuth version, please ensure you have 1.0.0.pr2 version or later installed." end
と書いてあって、OmniAuthのバージョンが 1.X.X
じゃないとエラーになってしまうようでした。
対処方法(更新:2021/5/5)
Devise 4.8.0がリリースされているので、Gemのバージョンアップをすることで対処可能です。
バージョンアップの方法はGemfileに
gem "devise"
と記載して、ターミナルで
$ bundle update devise
を実行すれば更新されます。
おわりに
相談に乗ってくださった神速さんありがとうございました🙏