1

我正在我的新 Apple Silicon 机器上安装 ruby​​ on rails,以正确安装 v8 和 therubyracer。正如大量记录的那样,为了能够执行基本的 rails 命令,我正在解决一些问题。

我一直使用这个 Github 线程作为我的参考点。我使用 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

之后我回到我的常规终端。然后我运行 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 Terminal 运行它,我会看到同样的错误。我还没有找到任何能让我更接近诊断此错误的东西。这很难,因为如果我在没有 arch -x86_64 的情况下安装相同的 gem,我会看到这里描述的一组错误

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

非常感谢您的时间和精力。我很乐意在必要时提供更多背景信息。谢谢你。

4

1 回答 1

0

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

于 2021-08-18T20:58:13.273 回答