実行環境
- M1 mac
- Rails 7.0.4
- ruby 3.1.0
エラー内容
rails s
を実行しようとすると次のようなエラーが出てきた。
$ rails s
/Users/hoge/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/bootsnap-1.13.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:32:in `require': dlopen(/Users/hoge/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/ffi-1.15.5/lib/ffi_c.bundle, 0x0009): tried: '/Users/hoge/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/ffi-1.15.5/lib/ffi_c.bundle' (mach-o file, but is an incompatible architecture (have (x86_64), need (arm64e))) - /Users/hoge/.rbenv/versions/3.1.0/lib/ruby/gems/3.1.0/gems/ffi-1.15.5/lib/ffi_c.bundle (LoadError)
エラー内容から、ffiの実行ファイルがx86_64で生成されてしまっているが、本当はarm64eで生成されなければならないというのが原因だとわかった。
解決方法
以下のコマンドを実行する
sudo arch -arm64e gem install ffi
再度rails s
を実行すると無事にローカルサーバーが立ち上がった。
参考