Jac*_*ord 9 homebrew zsh macos-big-sur apple-silicon rosetta-2
我想在 Apple Silicon Mac 上同时安装和运行两个版本的 Homebrew:ARM64 版本和在 Rosetta 2 下运行的 Intel 版本。
我知道我可以在任何 brew 命令之前arch --x86_64
模拟该命令的英特尔,但这可能会导致您已经为 ARM64 构建依赖项的公式发生冲突。例如:
Error: gnupg dependencies not built for the x86_64 CPU architecture:
pkg-config was built for arm64
gettext was built for arm64
readline was built for arm64
openssl@1.1 was built for arm64
Run Code Online (Sandbox Code Playgroud)
如何安装和运行两个独立的 Homebrew 版本(一个用于本地 ARM64,一个用于模拟 Intel),并保持每个安装的公式和依赖项分开?
Jac*_*ord 28
在 Apple Silicon 上本地安装 Homebrew /opt/homebrew
:
mkdir homebrew && curl -L https://github.com/Homebrew/brew/tarball/master | tar xz --strip 1 -C homebrew
Run Code Online (Sandbox Code Playgroud)
将 Intel 模拟的 Homebrew 安装为默认值/usr/local
:
arch --x86_64 /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
Run Code Online (Sandbox Code Playgroud)
如果您尚未安装 Rosetta 2,则需要先运行softwareupdate --install-rosetta
。
为英特尔自制软件创建别名。我打电话给我的,brow
因为老了。但是,嘿,你做你自己的事。
在~/.zshrc
(或您的 shell 的等效项)中添加:
alias brow='arch --x86_64 /usr/local/Homebrew/bin/brew'
Run Code Online (Sandbox Code Playgroud)
将 ARM Homebrew 添加到您的 PATH。
在~/.zshrc
(或您的 shell 的等效项)中添加:
# Homebrew on Apple Silicon
path=('/opt/homebrew/bin' $path)
export PATH
Run Code Online (Sandbox Code Playgroud)
如果您对还在bash
它会是PATH=/opt/homebrew/bin:$PATH
确认
which brew
应该回来 /opt/homebrew/bin/brew
brew --prefix
应该回来 /opt/homebrew
which brow
应该回来 brow: aliased to arch --x86_64 /usr/local/Homebrew/bin/brew
brow --prefix
应该回来 /usr/local
如果您在两个 Homebrew 中都安装了相同的命令,它将默认为 Apple Silicon ( /opt/homebrew/
),因为我们在 PATH 中添加了该命令。要覆盖,请使用其完整路径 ( /usr/local/bin/youtube-dl
)运行该命令,或覆盖您PATH
的一个命令 ( PATH=/usr/local/bin youtube-dl
)。
我还在.zshrc
( alias ib='PATH=/usr/local/bin'
) 中创建了另一个方便的别名,因此我可以在任何 Homebrew 安装的命令之前添加ib
强制使用该命令的 Intel 版本:
~ ? which youtube-dl
/opt/homebrew/bin/youtube-dl
~ ? ib which youtube-dl
/usr/local/bin/youtube-dl
Run Code Online (Sandbox Code Playgroud)
如果您希望 Intel 成为默认值brew
,请将其添加/opt/homebrew/bin
到PATH的末尾而不是开头。
liv*_*xin 27
安装本机自制软件
\n\xe2\x9d\xaf arch --arm64 zsh -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"\n
Run Code Online (Sandbox Code Playgroud)\n所有与 Homebrew 相关的东西都在/opt/homebrew
.
安装 Rosetta Homebrew
\n\xe2\x9d\xaf arch --x86_64 zsh -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"\n
Run Code Online (Sandbox Code Playgroud)\n所有与 Homebrew 相关的东西都在/usr/local
.
配置~/.zshrc
为默认使用Brew
基于arch
,
# Multiple Homebrews on Apple Silicon\nif [ "$(arch)" = "arm64" ]; then\n eval "$(/opt/homebrew/bin/brew shellenv)"\n export PATH="/opt/homebrew/opt/python@3.8/bin:$PATH"\n # export LDFLAGS="-L/opt/homebrew/opt/python@3.8/lib" # For compilers to find python@3.8\nelse\n eval "$(/usr/local/bin/brew shellenv)"\n export PATH="/usr/local/opt/python@3.7/bin:$PATH"\n export PATH="/usr/local/opt/python@3.9/bin:$PATH"\n # export LDFLAGS="-L/usr/local/opt/python@3.7/lib" # For compilers to find python@3.7\nfi\n
Run Code Online (Sandbox Code Playgroud)\n测试
\n\xe2\x9d\xaf arch\narm64\n\xe2\x9d\xaf which brew\n/opt/homebrew/bin/brew\n\xe2\x9d\xaf arch -x86_64 zsh\n\xe2\x9d\xaf arch\ni386\n\xe2\x9d\xaf which brew\n/usr/local/bin/brew\n# set alias as you like\n\xe2\x9d\xaf rzsh=\'arch -x86_64 zsh\'\n
Run Code Online (Sandbox Code Playgroud)\n 归档时间: |
|
查看次数: |
3006 次 |
最近记录: |