こういうやつ。
Fetching gem metadata from https://rubygems.org/........ ffi-1.17.0-x86_64-linux-musl requires rubygems version >= 3.3.22, which is incompatible with the current version, 3.1.6
見てるプロジェクトのバックエンド側で「動かないんじゃが?」と言っている兄貴がいたのでちょっと見たりしていた。
対処方法
とりあえず Gemfile に以下のように 1.17.0 未満をインストールするように明示してしまえば、動きはするはず。
gem "ffi", "< 1.17.0"
原因
rubygems 見てて気付いたんですが、v1.17.0 以降は Linux プラットフォーム向けだけ rubygems の要求が >= 3.3.22 となっているんですよね。
以下とか。
AppleSillicon 向けと思われるやつだと、 rubygems の要求がない。
答えは chef の organization で issue 書いてる兄貴がいるんだけど
ffi 1.17 and beyond requires a newer RubyGems than is installed with the ruby versions we are using.
FFI 1.17以降は、使用しているRubyバージョンでインストールされているよりも新しいRubygemsを必要とします。
という感じ。
外人兄貴たちの悲鳴
以下のように。
Macbook で開発してて本番は Linux
というヤツだと悲劇の発生が遅れて「オンギャアア」となると思うんだけど、今回は幸い開発環境を x86 な Linux にしている兄貴のお陰で助かった、というワケ。
これ理由がわかんねえんだよな、なんで rubygem の要求が厳しいんだろう。
Gemfile 見ると以下のように書いてあって 2.6 以上を許容しているように見えるんだけどな。 rubygems のバージョン要求ってどこで書いてんだろ。
group :type_check do if RUBY_VERSION >= "2.6" && %w[ ruby truffleruby ].include?(RUBY_ENGINE) gem 'rbs', '~> 3.0' end end