如何在默认终端正常使用brew且不破坏Apple Game Porting Toolkit运行?
解决Apple Silicon Mac上双Homebrew版本冲突问题
背景
我按照一篇关于使用Apple Game Porting Toolkit的指南操作,指南说明:即使macOS已安装Homebrew,它大概率是针对Apple Silicon架构的,需要额外安装Intel架构版本,并给出以下命令:
arch -x86_64 zsh /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" export PATH="/usr/local/bin:${PATH}"
问题
现在在默认终端执行brew命令会出现以下错误:
Error: Cannot install in Homebrew on ARM processor in Intel default prefix (/usr/local)!
请通过官方安装文档中的「替代安装」方式在/opt/homebrew创建新的安装,你可以使用brew bundle dump迁移已安装的公式列表。
只有再次执行arch -x86_64 zsh切换到Intel架构终端后,brew才能正常使用。
需求
希望找到方法让brew在默认终端正常运行,同时不破坏以下命令的执行:
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
解决方法
由于你当前同时存在两个Homebrew版本:ARM架构版本安装在/opt/homebrew,Intel架构版本安装在/usr/local。默认终端为ARM架构,直接调用brew会触发Intel版本的架构不匹配报错,可通过设置别名区分两个版本:
- 打开shell配置文件(如
~/.zshrc或~/.bashrc),添加以下内容:
# 区分ARM与Intel架构的Homebrew alias brew_arm="/opt/homebrew/bin/brew" alias brew_x86="/usr/local/bin/brew" # 将默认brew指向ARM版本(适配默认终端架构) alias brew="brew_arm"
- 保存文件后,执行以下命令使配置立即生效:
# 若使用zsh source ~/.zshrc # 若使用bash source ~/.bashrc
这样设置后:
- 默认终端输入
brew会调用ARM版本,不再报错; - 需要使用Intel版本时,输入
brew_x86即可; - 原Game Porting Toolkit命令不受任何影响,因为它明确指定了
/usr/local/bin路径与arch -x86_64,会自动调用Intel架构的工具。
也可以选择不修改默认brew别名,直接通过完整路径调用对应版本,但别名方式更便于日常操作。
内容的提问来源于stack exchange,提问作者kando
相关产品推荐
相关产品推荐

