kariaの日記 @ Alice::Diary

ノリツッコミの鳩子がはてなブログ書いちゃうよ

Ruby3.0.5でbundle installが失敗するときの対処法

結論から書く

$ gem update --system

経緯

Ruby3.0.5の環境でbundle installを実行したとき、以下のエラーメッセージと共にコケてしまう問題があった。

ArgumentError: undefined class/module YAML::Syck::
  /opt/rubies/ruby-3.0.5/lib/ruby/3.0.0/rubygems/specification.rb:1268:in `load'
  /opt/rubies/ruby-3.0.5/lib/ruby/3.0.0/rubygems/specification.rb:1268:in `_load'
  /opt/rubies/ruby-3.0.5/lib/ruby/gems/3.0.0/gems/bundler-2.4.10/lib/bundler.rb:618:in `load'
  /opt/rubies/ruby-3.0.5/lib/ruby/gems/3.0.0/gems/bundler-2.4.10/lib/bundler.rb:618:in `load_marshal'
  /opt/rubies/ruby-3.0.5/lib/ruby/gems/3.0.0/gems/bundler-2.4.10/lib/bundler.rb:526:in `safe_load_marshal'
  /opt/rubies/ruby-3.0.5/lib/ruby/gems/3.0.0/gems/bundler-2.4.10/lib/bundler/fetcher.rb:109:in `fetch_spec'
(以下省略)

調べて見るとRubyGemsの以下のIssueが見つかった。

github.com

以下のPRで解消されるようで既にマージされている。

github.com

Ruby3.0.5にバンドルされているRubyGemsのバージョンは3.2.33なのだがそのままではダメで、バージョン上げれば解決しそうだね、ということで以下のコマンドを実行。

$ gem update --system

RubyGemsのバージョンが3.4.10に上がり、無事bundle installも通るようになった。