初めに
バージョン変更をする必要があった理由はロリポップマネージドクラウドを使い、自作アプリのデプロイを考えたからです。
バージョン変更前はRuby 3.1.1を使用し開発していましたが、ロリポップマネージドクラウドでは2.7系の開発環境が必要なようです。(念の為問い合わせました)
バージョン変更
バージョン変更方法に関しての詳細は省略しますが、参考にしたサイトとしてこちらを挙げさせていただきます。
Ruby 3.0.0 から 2.7.2 にダウングレードさせる。
私はこのサイトを参考にし、3.1.1から2.7.0にバージョン変更を行いました。
発生したエラー
バージョン変更後に発生したエラーのログはこちらです。
/Users/tamio/.rbenv/versions/2.7.0/lib/ruby/2.7.0/net/protocol.rb:66: warning: already initialized constant Net::ProtocRetryError /Users/tamio/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/net-protocol-0.1.3/lib/net/protocol.rb:68: warning: previous definition of ProtocRetryError was here /Users/tamio/.rbenv/versions/2.7.0/lib/ruby/2.7.0/net/protocol.rb:206: warning: already initialized constant Net::BufferedIO::BUFSIZE /Users/tamio/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/net-protocol-0.1.3/lib/net/protocol.rb:208: warning: previous definition of BUFSIZE was here /Users/tamio/.rbenv/versions/2.7.0/lib/ruby/2.7.0/net/protocol.rb:503: warning: already initialized constant Net::NetPrivate::Socket /Users/tamio/.rbenv/versions/2.7.0/lib/ruby/gems/2.7.0/gems/net-protocol-0.1.3/lib/net/protocol.rb:504: warning: previous definition of Socket was here <internal:trace_point>:346: [BUG] Segmentation fault at 0x0000000000000008 ruby 2.7.0p0 (2019-12-25 revision 647ee6f091)
初めに言っておくと、このエラーログを理解しようとすることは、おすすめしません。
実際に私も(https://github.com/ruby/net-imap/issues/16)
こちらのサイトを参考にし、Gemfileにnet-httpを追加したりしましたが、新たなエラーが発生するなど、解決することが出来ませんでした。
解決した方法
私自身では解決することが出来なかったので、
こちらのRubyに関するSlackワークスペースで質問をさせて頂くことで解決に至りました。
解決した方法は2.7.0に変更していたRubyのバージョンを、2.7.6に変更したという単純なものです。
発生していたエラーが2.7.1以前特有のエラーだったようで、バージョンを2.7系最新に変更するだけで解決することが出来ました。
最新バージョンでは修正されているエラーも存在するので、取り敢えずパッチバージョンを最新にしてみると良いのかな、と感じました。
最後に
簡単なエラーであったとしても、ネット上で情報があまりなかったり、自分では気付けないということもあるので、質問することが出来たのは大変有り難かったです。
この記事をご覧になられた初心者の方がいれば、ぜひ先程話したワークスペースなどで質問することをおすすめします。
最後に、初めての投稿というのもあり、読みにくい点も多かったと思います。
アドバイスなどがあれば、コメントください。