HomeBrew

文档

  1. https://mirrors.tuna.tsinghua.edu.cn/help/homebrew/

前提条件

安装 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)"

配置

  1. 只能使用 安装 HomeBrew 用户 安装/更新 软件
  2. 其他用户 运行下列配置后,可以使用 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

这不推荐,并将在未来版本中移除。