therubyracer 找不到合适的图像 mach-o,但错误的架构

therubyracer no suitable image found mach-o, but wrong architecture

我正在我的新 Apple Silicon 机器上 ruby rails 进行设置,以正确安装 v8 和 rubyracer。 As abundantly documented,为了能够执行基本的 rails 命令,我正在解决一些问题。

我一直在使用 this Github thread 作为我的参考点。我安装了带有 arch -x86_64 的 v8@3.15,以使用安装在 Rosetta 终端上的 Homebrew。之后我安装了我需要的特定 gem:

arch -x86_64 gem install libv8 -v '3.16.14.19' -- --with-system-v8 
arch -x86_64 gem install therubyracer -v '0.12.3' -- --with-v8-dir=/usr/local/opt/v8@3.15

然后我 return 到我的常规终端。然后我 运行 bundle install 然后 rails s(或任何 rails 命令)我看到以下错误:

dlopen(/Users/myuser/.rvm/gems/ruby-2.6.3@myproject/gems/therubyracer-0.12.3/lib/v8/init.bundle, 9): no suitable image found.  Did find: (LoadError)
    /Users/myuser/.rvm/gems/ruby-2.6.3@myproject/gems/therubyracer-0.12.3/lib/v8/init.bundle: mach-o, but wrong architecture
    /Users/myuser/.rvm/gems/ruby-2.6.3@myproject/gems/therubyracer-0.12.3/lib/v8/init.bundle: mach-o, but wrong architecture - /Users/myuser/.rvm/gems/ruby-2.6.3@myproject/gems/therubyracer-0.12.3/lib/v8/init.bundle

如果我从 Rosetta 终端 运行 看到同样的错误。我还没有发现任何能让我更接近于诊断这个错误的东西。这很难,因为如果我在没有拱门 -x86_64 的情况下安装那些相同的 gem,我会看到一组 errors described here.

我有两个版本的 Homebrew:一个链接到 Rosetta Terminal,另一个链接到原生 Apple Silicon。我一直小心使用 Rosetta Terminal Homebrew 来安装 v8 和本地 Apple Silicon Homebrew 来安装其他所有东西。

非常感谢您的时间和精力。我非常乐意根据需要提供更多背景信息。谢谢。

我最终解决这个问题的方法就是不使用 therubyracer。这是一个相当令人不满意的答案,但我认为如果可能的话避免这个 gem 是最好的方法。