Gem のメンテナンスに重い腰を上げてるプロジェクトを見てるんだけど、rspec を回していて掲題のエラーに遭遇した。
具体的には bundle exec rspec
実行時の出力に、以下のようになる。
/Users/donbulinux/Workspace/example/vendor/bundle/ruby/2.6.0/gems/net-protocol-0.2.1/lib/net/protocol.rb:68: warning: already initialized constant Net::ProtocRetryError /Users/donbulinux/.anyenv/envs/rbenv/versions/2.6.3/lib/ruby/2.6.0/net/protocol.rb:66: warning: previous definition of ProtocRetryError was here /Users/donbulinux/Workspace/example/vendor/bundle/ruby/2.6.0/gems/net-protocol-0.2.1/lib/net/protocol.rb:214: warning: already initialized constant Net::BufferedIO::BUFSIZE /Users/donbulinux/.anyenv/envs/rbenv/versions/2.6.3/lib/ruby/2.6.0/net/protocol.rb:206: warning: previous definition of BUFSIZE was here /Users/donbulinux/Workspace/example/vendor/bundle/ruby/2.6.0/gems/net-protocol-0.2.1/lib/net/protocol.rb:541: warning: already initialized constant Net::NetPrivate::Socket /Users/donbulinux/.anyenv/envs/rbenv/versions/2.6.3/lib/ruby/2.6.0/net/protocol.rb:503: warning: previous definition of Socket was here
で、これどうするかだけど、 Ruby 2.7.2 ?だかどっかで net-http
が取り込まれると解消するんだけど、それまでは Gemfile に書いて回避しろ、とのこと。
group :test do ... # net-protocol-0.2.1 がエラーを出しまくるので抑制のため一時的に入れる、 Ruby 2.7.1 以降なら解消されているらしい? gem 'net-http' end
これでとりあえずオッケー。 Ruby 自体が EOL なバージョンなので、早いとこ Ruby 3.x に移行せなという感じ。