Apple silicon 平台安装 x86_64 架构应用包

最近开发工作中需要在 Apple Silicon 平台中交叉编译 x86_64 的包,因为有 x86_64 的库依赖需要安装,就想到了使用 homebrew 进行安装,就是本文内容了。

主要会用到:

  • Rosetta
  • Homebrew

前言

你能找到这篇文章,想必你是了解现在 macOS 平台下应用(比如 APP)的分类:

  • Universal(通用)
  • Apple Silicon(Apple 芯片)
  • Intel

以 App 为例,我们可以找到一个 app,看一下它的信息就能知道这个 app 是哪种分类:

Safari 就是通用的,钉钉是Apple 芯片的,图压是Intel的,其实 Intel 就是 x86_64 架构的。

尽管我们在 Apple Silicon 的平台(比如我使用的是 M1 Pro 的 MBP)使用默认方式安装的 homebrew 是无法正常安装 x86_64 架构的应用,但我们又想通过 homebrew 的方式安装,下面就开始搞起!

安装 Rosetta 2

一行命令搞定:

/usr/sbin/softwareupdate --install-rosetta

为 universal 或者 Apple Silicon 应用安装 Homebrew

按照官方的方式安装即可,比如:

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

通常使用这个会安装到 /opt/homebrew/bin/brew

使用 homebrew:

brew install xxx
brew list

为 Intel 应用安装 homebrew

这是本文重点,通常在 Intel 的 macOS 下,brew 会安装到 /usr/local/homebrew 下,我们手动安装一下:

# 下载 homebrew
cd ~/Downloads
mkdir homebrew
curl -L https://github.com/Homebrew/brew/tarball/master | tar xz --strip 1 -C homebrew

# 移动到目标位置
sudo mv ~/Downloads/homebrew /usr/local/homebrew

修改 shell 配置文件,bash 就修改 ~/.bashrc,zsh 的话就修改 ~/.zshrc,在最后添加以下内容:

# 修改 PATH 变量
# for intel x86_64 brew
export PATH=$HOME/bin:/usr/local/bin:$PATH
# 建立别名
alias xbrew='arch -x86_64 /usr/local/homebrew/bin/brew'

重新开启新的终端,就可以使用 xbrew 安装 x86_64 的软件或库了。

使用 homebrew:

xbrew install xxx
xbrew list