RVM 経由の Ruby ARM64 インストールで呼び出される Mac M1 dyld 欠落シンボル
概要
私はしばらくの間、信頼できる M1 Mac で Ruby と一緒に巡回していましたが、特に古き良き x86_64 モード (Rosetta ターミナル上の RVM 経由でインストール) では特に苦労はしませんでした。人生はよかった。
rvm ls
ruby-2.7.7 [ x86_64 ]
=* ruby-3.0.5 [ arm64 ]
ruby-3.0.6 [ x86_64 ]
私はネイティブの将来を受け入れ、Ruby 3.0.5 をネイティブの arm64 モードでインストールすることにしました。簡単ですよね?間違っている…
確かに、問題なくインストールされ、動作しているように見えます。私は問題がないと思って、喜んでバンドル インストールを通じて Rails gem をインストールしました。しかし、Rails アプリを起動しようとするとすぐに、次のような嬉しいメッセージが表示されます。
dyld[*****]: missing symbol called
Webで見つけたいくつかの手順に関連している可能性があるため、libffi sith arm64 homebrewを再インストールしましたが、最終的に同じエラーで失敗したため、rvmの再インストールは成功しませんでした…
この関連する SO 投稿を見つけましたが、mysql に関連していたので、私には当てはまりません。私のプロジェクトでは postgres を使用しています。 回答がゼロの悲しく孤独な StackOverflow 投稿がまたありますが、それはまるで鏡を見ているようです。悲しみの未解決の鏡…
Rubyを再インストールする前に、libyamlとlibffiを再インストールしましたが、うまくいきませんでした。 ffi バイナリを指すようにLDPFlagsを設定しますが、これもうまくいきません。ネットで調べられることはすべてやったのですが、何も解決しませんでした…
解決策
Ruby 2.7.5 から Ruby 3.3.0 にアップグレードしましたが、同じエラーが発生しました。 問題はこの行にありました
gem 'therubyracer', platform: :ruby
だから私はそれを削除しただけです。