跳到主要内容

Homebrew 入门及使用

Homebrew是MacOS上的包管理工具,可以用来管理MacOS上的软件包

安装Homebrew

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

配置软件源

默认情况下,Homebrew使用的是国外的软件源,如果你在国内使用,可以配置国内的软件源来加速下载速度,常用的软件源有清华阿里的,配置方法也很简单

~ vim .zshrc # 打开.zshrc文件
# set brew
export HOMEBREW_API_DOMAIN="https://mirrors.aliyun.com/homebrew-bottles/api"
export HOMEBREW_BREW_GIT_REMOTE="https://mirrors.aliyun.com/homebrew/brew.git"
export HOMEBREW_CORE_GIT_REMOTE="https://mirrors.aliyun.com/homebrew/homebrew-core.git"
export HOMEBREW_BOTTLE_DOMAIN="https://mirrors.aliyun.com/homebrew/homebrew-bottles"
~ source .zshrc # 使配置生效

软件包的安装、卸载及常用操作

通过 brew 可以直接安装命令行工具、服务、图形界面软件等,其中:

  • Formula:命令行工具,如 git、python、node
  • Cask:图形界面应用,如 VS Code、Chrome、iTerm2

安装

# 安装命令行工具(formula)
brew install <软件名>

# 安装 GUI 应用(cask)
brew install --cask <应用名>

卸载

要卸载通过Homebrew安装的软件,可以使用以下命令:

# 卸载
brew uninstall <软件名>
brew uninstall <package_name>
brew uninstall --force <package_name> # 强制卸载
brew autoremove # 自动删除无用的依赖
brew cleanup --prune=all # 删除无用的文件

但是这种方式有时会留下配置文件和数据文件。如果你想彻底删除软件及其相关文件,可以使用 rmtree 增强工具,用于一次性卸载某个 formula仅因它而安装、且现已不再被其他软件需要的依赖项,尽可能把整棵依赖树一并清掉(类似 aptautoremove,但针对指定包构建依赖树后做有选择的递归卸载)

也就是说,rmtree 会计算依赖树,移除那些不再被其他已安装包依赖的“孤儿”依赖,同时保留仍被其他包共享的依赖

先安装 rmtree,注意使用 tap 而不是 install

brew tap beeftornado/rmtree

举例使用

brew rmtree hugo # 卸载hugo及其相关文件
# 或
brew rmtree --force hugo # 强制卸载hugo及其相关文件
brew rmtree --dry-run hugo # 测试卸载
brew cleanup
brew list hugo # 查看安装的目录,如果没有则说明全部卸载成功

更新和升级

brew update # 更新 Homebrew 自身(只是刷新"菜单")
brew outdated # 查看哪些软件有新版本
brew upgrade # 升级所有已安装软件
brew upgrade <软件名> # 只升级指定软件

搜索和查看

brew search <关键词> # 搜索软件
brew info <软件名> # 查看软件详情
brew list # 列出已安装的命令行工具
brew list --cask # 列出已安装的 GUI 应用
brew deps --tree <软件名> # 查看依赖关系树

维护和清理

brew doctor # 系统诊断,检查环境是否健康
brew cleanup # 清理旧版本和缓存
brew cleanup -s # 更彻底的清理
brew config # 查看 Homebrew 配置信息

版本锁定

brew pin <软件名> # 锁定版本
brew unpin <软件名> # 解除锁定

服务管理

brew services list # 查看所有后台服务
brew services start <软件名> # 启动并设为开机自启
brew services stop <软件名> # 停止服务
brew services restart <软件名> # 重启服务