错误:v8@3.15 已被禁用,因为它依赖于 Python 2 构建

Div*_*ang 1 v8 apple-m1 apple-m2

我想在带有 M2 pro 苹果芯片的 MacO 上安装 v8 3.15。收到禁用的错误。

我尝试使用 Rosetta 安装 x86-64 brew 并使用它来安装 v8,但仍然遇到相同的错误。有没有人有解决这个问题的方法,或者 homebrew 已经完全废弃了英特尔和苹果芯片的 v8@3.15 ?

小智 8

这对很多人来说都是一个问题,因为至少 therubyracer gem 仍然依赖于这个版本的 libv8。最好不要通过升级应用程序来使用这个旧版本。如果您绝对需要,我找到了一种使用 Rosetta 2 和自制程序安装它的方法。

确保您使用的是 Rosetta 和 x86_64 版本的自制程序。

安装Python 2:

brew install pyenv
pyenv install 2.7.18
pyenv global 2.7.18
Run Code Online (Sandbox Code Playgroud)

将 pyenv 添加到您的路径:

PATH=$(pyenv root)/shims:$PATH
Run Code Online (Sandbox Code Playgroud)

尝试安装v8@3.15

HOMEBREW_NO_INSTALL_FROM_API=1 brew install v8@3.15
Run Code Online (Sandbox Code Playgroud)

您将收到以下错误:

Error: v8@3.15 has been disabled because it depends on Python 2 to build
Run Code Online (Sandbox Code Playgroud)

编辑公式以启用安装旧版本的 v8:

brew edit v8@3.15
Run Code Online (Sandbox Code Playgroud)

删除这一行:

disable! date: "2023-06-19", because: "depends on Python 2 to build"
Run Code Online (Sandbox Code Playgroud)

现在您可以安装 v8@3.15:

HOMEBREW_NO_INSTALL_FROM_API=1 arch -x86_64 /usr/local/bin/brew install v8@3.15
Run Code Online (Sandbox Code Playgroud)

我相信只要旧配方仍然可以从自制程序中获得,这就会起作用。