文档
前提条件
安装 Git
# Debian/Ubuntu
apt update
apt install -y git
# CentOS
yum install -y git
安装 curl
# Debian/Ubuntu
apt update
apt install -y curl
# CentOS
yum install -y curl
使用非 root 用户
# Debian/Ubuntu
# 添加用户:创建用户文件夹、指定 Shell
useradd -m -s /bin/bash xuxiaowei
# 修改密码
passwd xuxiaowei
# 添加 sudo 权限
sudo usermod -aG sudo xuxiaowei
# 切换用户
sudo su xuxiaowei
# 进入用户文件夹
cd ~
# CentOS
# 添加用户:创建用户文件夹、指定 Shell
useradd -m -s /bin/bash xuxiaowei
# 修改密码
passwd xuxiaowei
# 添加 sudo 权限
sudo usermod -aG wheel xuxiaowei
# 切换用户
sudo su xuxiaowei
# 进入用户文件夹
cd ~
安装
# 清华大学开源软件镜像站
export HOMEBREW_BREW_GIT_REMOTE="https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git"
export HOMEBREW_CORE_GIT_REMOTE="https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git"
export HOMEBREW_BOTTLE_DOMAIN="https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles"
export HOMEBREW_INSTALL_FROM_API=1
git clone --depth=1 https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/install.git brew-install
/bin/bash brew-install/install.sh
# GitHub
/bin/bash -c "$(curl -fsSL https://github.com/Homebrew/install/raw/master/install.sh)"
配置
- 只能使用
安装 HomeBrew 用户安装/更新软件 其他用户运行下列配置后,可以使用 HomeBrew 已经安装好的软件
# Linux
test -d ~/.linuxbrew && eval "$(~/.linuxbrew/bin/brew shellenv)"
test -d /home/linuxbrew/.linuxbrew && eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
test -r ~/.bash_profile && echo "eval \"\$($(brew --prefix)/bin/brew shellenv)\"" >>~/.bash_profile
test -r ~/.profile && echo "eval \"\$($(brew --prefix)/bin/brew shellenv)\"" >>~/.profile
test -r ~/.zprofile && echo "eval \"\$($(brew --prefix)/bin/brew shellenv)\"" >>~/.zprofile
brew -v
# Apple Silicon CPU
test -r ~/.bash_profile && echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >>~/.bash_profile
test -r ~/.zprofile && echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >>~/.zprofile
brew -v
测试安装
# neovim
brew list
brew install neovim
nvim -v
nvim -V1 -v
先找出”顶层包”
brew leaves
brew tap
管理第三方仓库(Taps),扩展可安装的 Formulae 和 Casks。
列出所有已 Tap 的仓库
brew tap
Tap 一个 GitHub 仓库
brew tap <user>/<repo>
这会自动克隆 https://github.com/<user>/homebrew-<repo>。
例如:
brew tap mongodb/brew
Tap 自定义地址的仓库
brew tap <user>/<repo> <URL>
例如:
brew tap mycompany/internal https://gitlab.example.com/mycompany/homebrew-internal.git
brew tap someuser/sometap git@github.com:someuser/homebrew-sometap.git
完整克隆(非浅克隆)
brew tap --full <user>/<repo>
移除 Tap
brew untap <user>/<repo>
直接安装(无需先 tap)
安装时使用完整限定名,Homebrew 会自动 tap 并信任该项:
brew install <user>/<repo>/<formula>
brew install --cask <user>/<repo>/<cask>
查看 Tap 存储位置
$(brew --repository)/Library/Taps/<user>/homebrew-<repo>/
brew trust
Formulae、Casks 和外部命令是可执行的 Ruby 代码。信任一个 tap 或特定项意味着你允许该代码以你的用户权限运行。此机制将在 Homebrew 5.2.0 或 6.0.0 中默认启用。
可提前启用:export HOMEBREW_REQUIRE_TAP_TRUST=1
信任特定 Formula
brew trust --formula <user>/<repo>/<formula>
信任特定 Cask
brew trust --cask <user>/<repo>/<cask>
信任特定外部命令
brew trust --command <user>/<repo>/<command>
信任整个 Tap(信任其所有当前和未来的内容)
brew trust <user>/<repo>
建议优先信任特定 Formula 或 Cask,而不是整个 Tap,以限制风险范围。
列出已信任的项
brew trust
列出未信任的项
brew untrust
取消信任
brew untrust <user>/<repo>
brew untrust --formula <user>/<repo>/<formula>
brew untrust --cask <user>/<repo>/<cask>
brew untrust --command <user>/<repo>/<command>
安装时的信任关系
| 场景 | 命令 |
|---|---|
| 完整限定安装(仅信任该项) | brew install <user>/<repo>/<formula> |
| 先 tap,再信任特定项,再安装 | brew tap <user>/<repo> → brew trust --formula <user>/<repo>/<formula> → brew install <formula> |
| 信任整个 Tap,然后用短名安装 | brew tap <user>/<repo> → brew trust <user>/<repo> → brew install <formula> |
要禁用信任检查:
export HOMEBREW_NO_REQUIRE_TAP_TRUST=1
这不推荐,并将在未来版本中移除。