Skip to content

M1 Mac 安装 Homebrew 错误及解决方案

问题描述

当在 Apple M1/M2 芯片(ARM 架构)的 Mac 设备上尝试使用 Homebrew 安装软件时,可能会遇到以下错误:

bash
Error: Cannot install in Homebrew on ARM processor in Intel default prefix (/usr/local)!
Please create a new installation in /opt/homebrew using one of the
"Alternative Installs" from:
  https://docs.brew.sh/Installation
You can migrate your previously installed formula list with:
  brew bundle dump

这个错误产生的原因是:Apple Silicon 芯片(M1/M2)与 Intel 芯片的 Homebrew 安装路径不同:

芯片架构默认安装路径
Intel(x86_64)/usr/local
Apple Silicon(ARM)/opt/homebrew

解决方案

方案一:重新安装 Homebrew(推荐)

这是最彻底的解决方案,适用于大多数用户:

  1. 卸载现有的 Homebrew(如果有):

    bash
    # 交互式卸载(推荐)
    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/uninstall.sh)"
    
    # 或者非交互式卸载
    NONINTERACTIVE=1 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/uninstall.sh)"
  2. 安装新的 Homebrew

    bash
    /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  3. 配置环境变量: 安装完成后,Homebrew 会提供两条命令,需要将它们添加到 shell 配置文件中(如 ~/.zshrc~/.bashrc):

    bash
    echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zshrc
    source ~/.zshrc
  4. 迁移已有软件列表(可选): 如果之前有备份的 Brewfile,可以使用以下命令迁移:

    bash
    brew bundle dump

方案二:手动创建正确路径

如果不想完全重新安装,可以手动设置正确的 Homebrew 路径:

  1. 创建 Homebrew 目录

    bash
    cd /opt
    sudo mkdir homebrew
    sudo chmod go+w homebrew
  2. 安装 Homebrew 到正确位置

    bash
    curl -L https://github.com/Homebrew/brew/tarball/master | tar xz --strip 1 -C homebrew
  3. 设置环境变量

    bash
    eval "$(/opt/homebrew/bin/brew shellenv)"
    echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zshrc
  4. 更新并修复权限

    bash
    brew update --force --quiet
    chmod -R go-w "$(brew --prefix)/share/zsh"

方案三:使用别名快捷方式

对于需要同时维护 Intel 和 ARM 版本 Homebrew 的高级用户:

bash
# 添加到 ~/.zshrc 或 ~/.bashrc
alias armbrew="arch -arm64 /opt/homebrew/bin/brew"
alias x86brew="arch -x86_64 /usr/local/bin/brew"

# 使用方式
armbrew install package_name    # 安装 ARM 版本软件
x86brew install package_name    # 安装 Intel 版本软件

方案四:临时解决方案

如果只需要临时解决,可以使用 arch 命令前缀:

bash
# 安装 ARM 版本软件
arch -arm64 /opt/homebrew/bin/brew install package_name

# 或者使用已设置的别名
arch -arm64 brew install package_name

验证安装

安装完成后,验证 Homebrew 是否正确配置:

bash
# 检查 brew 路径
which brew
# 应该输出: /opt/homebrew/bin/brew

# 检查 brew 版本
brew --version

# 检查系统状态
brew doctor
# 应该输出: "Your system is ready to brew."

常见问题

WARNING

终端应用架构问题 某些终端应用(如 IntelliJ 内置终端)可能默认运行在 Rosetta 模式下,这会导致架构检测错误。确保使用系统自带的 Terminal 应用。

TIP

同时需要 Intel 和 ARM 版本 如果有需要运行 Intel 架构软件的需求,可以先安装 Rosetta 2:

bash
/usr/sbin/softwareupdate --install-rosetta --agree-to-license

总结

Apple Silicon Mac 用户应该将 Homebrew 安装在 /opt/homebrew 路径下,而不是传统的 /usr/local 路径。通过重新安装或手动配置可以解决此问题。对于大多数用户,推荐使用方案一的完整重新安装方法,这是最彻底且符合 Homebrew 官方推荐的解决方案。

如果遇到其他问题,建议参考 Homebrew 官方文档 获取最新安装指南。