修复Apple Silicon Mac上的brew错误“该软件需要arm64架构”

Avilas

如果您已使用 Homebrew 尝试将特定软件包安装到 Apple Silicon Mac 上,并且看到一条错误消息,指出“此软件需要 arm64 架构”,从而阻止安装该软件包,那么考虑到您使用的是 Apple Silicon Mac(任何 M1、M2、M3、M4 等机器),您可能会对此错误消息感到惊讶。

事实证明,一些过去安装过 Homebrew 的 Apple Silicon Mac 用户可能无意中将 x86 版本设置为默认版本,甚至安装了 x86 版本(Intel)的 Homebrew,而不是 arm64 版本(Apple Silicon),从而导致在尝试安装适用于 ARM Mac 的软件包时出现“此软件需要 arm64 架构”错误消息。

幸运的是,通过一些命令行调整就可以很容易地解决这个问题,因此,如果您在 Homebrew 中看到“该软件需要 arm64 架构”消息,请继续阅读,它很快就会得到解决。

如果您尚未在 Mac 上打开终端并引发 brew 错误,请打开终端,然后执行以下操作。

首先,使用以下命令切换到 HomeBrew 的 arm64 Apple Silicon 版本:
eval "$(/opt/homebrew/bin/brew shellenv)"

此命令将您的 shell 环境配置为在 ARM64 (Apple Silicon) 版本的 Homebrew (/opt/homebrew/bin/brew) 使用的路径处识别 Homebrew,该路径与 Homebrew 的 x86 路径 (/usr/local/bin/brew) 不同。

接下来,我们使用arm64版本的Homebrew来安装最初抛出错误消息的相关软件包,命令如下:

arch -arm64 brew install asitop

在此示例中,我们正在安装 asitop,它需要 Apple Silicon 架构才能充分利用 powermetrics 命令。 “arch -arm64”命令指定使用该命令的体系结构,在本例中是用于 Apple Silicon 处理器(包括 M1、M2、M3、M4 等)的 ARM64。

推荐阅读:修复 Mac 上的“需要软件更新才能在虚拟机中安装 macOS”错误

使用上述命令后,asitop for arm64 将按预期安装并启动:

使用 arch 命令作为前缀并不总是必要的,但在本例中,我们使用它来确保该命令在 ARM64 模式下运行,而不是在 Rosetta 2 中以 x86 模式运行。

我需要卸载并重新安装 Homebrew for ARM64 吗?

不,在大多数情况下,您只需使用上述命令将 Homebrew 切换到 /opt/homebrew/bin/brew 路径中的 arm64 版本即可。

x86 Intel 版本的 Homebrew 位于 /usr/local/bin/brew 的单独位置

如果您出于某种原因需要,只需使用之前的以下命令即可在两者之间来回切换:

使用arm64版本的Homebrew:
eval "$(/opt/homebrew/bin/brew shellenv)"

使用 x86 版本的 Homebrew:
eval "$(/usr/local/bin/brew shellenv)"

通常,这对于大多数 Homebrew 用户来说并不是必需的,但在某些情况下,当使用 Game Porting Toolkit、wineskin 等甚至某些软件包时,一些 Mac 用户可能需要来回切换。

您以前在使用 Homebrew 时是否遇到过此错误消息,上面概述的解决方案是否也为您解决了该问题?请在评论中告诉我们您使用 ARM64 Homebrew 的经验。