Homebrew:“错误:无法在 Intel 默认前缀 (/usr/local) 的 ARM 处理器上的 Homebrew 中安装!”

kan*_*ndo 2 homebrew

背景

\n

我遵循了指南(关于使用Apple Game Porting Toolkit),其中指出:

\n
\n

即使您已经Homebrew在 macOS 上安装,它也可能是为 Apple Silicon 安装的。您需要为 Intel 架构安装它:

\n
\n
arch -x86_64 zsh\n\n/bin/bash -c \xe2\x80\x9c$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)\xe2\x80\x9d\n\nexport PATH="/usr/local/bin:${PATH}"\n
Run Code Online (Sandbox Code Playgroud)\n

问题

\n

现在,在新终端中,brew命令会生成以下消息:

\n
\n

错误:无法在 Intel 默认前缀 (/usr/local) 的 ARM 处理器上安装 Homebrew!\n请使用以下位置的\n“替代安装”
之一在 /opt/homebrew 中创建新安装: \n https://docs.brew.sh/Installation \n您可以使用以下命令迁移以前安装的公式列表:\nbrew 包倾倒



\n
\n

除非我再次运行:

\n
arch -x86_64 zsh\n
Run Code Online (Sandbox Code Playgroud)\n

问题

\n

有没有办法以brew默认形式开始,但不会破坏:

\n
PATH="/usr/local/bin:${PATH}" arch -x86_64 /usr/local/bin/gameportingtoolkit-no-hud ~/Games/battle-net  ~/Games/battle-net/drive_c/Program\\ Files\\ \\(x86\\)/Battle.net/Battle.net\\ Launcher.exe\n
Run Code Online (Sandbox Code Playgroud)\n

\n

kan*_*ndo 8

这里,我可以编辑(或创建,如果不存在)文件~/.zshrc(通过TextEdit.app或 zshnano命令):

# ~/.zshrc

export PATH="/usr/local/bin:$PATH"    # arm64e homebrew path (m1   )
export PATH="/opt/homebrew/bin:$PATH" # x86_64 homebrew path (intel)

alias mbrew="arch -arm64e /opt/homebrew/bin/brew" # arm64e homebrew path (m1   )
alias ibrew="arch -x86_64 /usr/local/bin/brew"    # x86_64 homebrew path (intel)
Run Code Online (Sandbox Code Playgroud)

这些export命令确保brew可以找到这两个命令。
我认为 M1 ( arm64e) 版本将是默认版本,因为它是订单中的第一个。

这些alias命令允许使用 M1 brew(带有mbrew)和 intel brew(带有ibrew)。

保存 zsh 配置文件(~/.zshrc)后,运行:

source ~/.zshrc
Run Code Online (Sandbox Code Playgroud)

将更改生效到终端。

注意: 的使用alias由我编写,如此处指定