Techioz Blog

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

だから私はそれを削除しただけです。