1
0

More than 1 year has passed since last update.

Rubyを3.1系から2.7系にバージョン変更した際に起きたエラー

Posted at

初めに

バージョン変更をする必要があった理由はロリポップマネージドクラウドを使い、自作アプリのデプロイを考えたからです。

バージョン変更前は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系最新に変更するだけで解決することが出来ました。

最新バージョンでは修正されているエラーも存在するので、取り敢えずパッチバージョンを最新にしてみると良いのかな、と感じました。

最後に

簡単なエラーであったとしても、ネット上で情報があまりなかったり、自分では気付けないということもあるので、質問することが出来たのは大変有り難かったです。

この記事をご覧になられた初心者の方がいれば、ぜひ先程話したワークスペースなどで質問することをおすすめします。

最後に、初めての投稿というのもあり、読みにくい点も多かったと思います。
アドバイスなどがあれば、コメントください。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0