返回文章列表

Homebrew使用速记

分类
标签
SilentBlade
SilentBlade
2026-08-18 3 分钟阅读 138 阅读

介绍

Homebrew(下文简称 brew)是 macOS 上事实标准的包管理器,后来也支持了 Linux。它的定位类似 Debian 的 apt、CentOS 的 yum:一条命令完成软件的安装、升级和卸载,依赖关系自动处理,不用再到处找安装包、手动拖应用。

brew 管的东西分两类,先把这个概念弄清楚,后面的命令都围绕它展开:

  • Formula:命令行工具和库,来自 homebrew-core 仓库,比如 wgetnoderedis
  • Cask:macOS 的图形界面应用,比如 Chrome、VS Code。早期由 Homebrew Cask 这个扩展提供,后来并入了 brew 本体,现在不需要单独安装。对这类应用,brew 等于把“下载 dmg → 拖进 Applications → 手动清缓存”这套流程变成了命令行操作。

安装

官方安装命令:

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

国内网络直连 GitHub 经常超时,推荐用镜像脚本安装,脚本会让你选镜像源(中科大、清华等),并自动把 git remote 和下载源都换掉:

bash
# 安装
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"
# 卸载
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/HomebrewUninstall.sh)"

装完值得确认一件事:brew 装在哪个目录。Apple Silicon 机器是 /opt/homebrew,Intel 机器是 /usr/local,用 brew --prefix 一查便知。网上不少教程默认 /usr/local,照抄后在 M 系列芯片上跑不通,多半就是这个原因。

常用命令

查找与安装

bash
# 搜索软件(formula 和 cask 一起搜)
brew search wget
# 查看软件详情:版本、依赖、官网
brew info wget
# 安装
brew install wget
# 装坏了重装
brew reinstall wget

升级

updateupgrade 是两个动作,容易混:

bash
# 更新 brew 自己和软件目录(有哪些软件、最新版本是多少),不升级已装软件
brew update
# 列出有新版本的软件
brew outdated
# 升级指定软件;不带参数则升级全部
brew upgrade wget
# 锁定某个软件,不让 upgrade 动它
brew pin wget
brew unpin wget

卸载与清理

注意 cleanup 不是卸载,它清的是旧版本文件和下载缓存:

bash
# 卸载软件
brew uninstall wget
# 清理指定软件的旧版本和缓存
brew cleanup wget
# 全量清理,顺带删掉所有不再被任何软件依赖的包
brew cleanup
brew autoremove

查看与体检

bash
# 已安装列表,formula 和 cask 分开列
brew list --formula
brew list --cask
# 只看你主动安装的软件(不含作为依赖装进来的),清理前排查很有用
brew leaves
# 某个软件装了哪些文件、装在哪
brew list wget
# 环境体检,装不上、升级失败时先跑这个
brew doctor
# 查看配置:版本、安装路径、镜像源等
brew config

服务管理:brew services

装 MySQL、Redis、Nginx 这类需要长期跑后台的服务时,用 brew services 管理,体验接近 Linux 的 systemctl。底层是 macOS 的 launchd:不带 sudo 时注册为当前用户的 LaunchAgent(登录后自启),加 sudo 则注册为系统级 LaunchDaemon(开机自启,服务跑在 root 下)。

bash
# 查看服务列表和状态(status 列:started / stopped / error / unknown)
brew services list
# 启动并注册(登录自启)
brew services start redis
# 停止并取消注册
brew services stop redis
# 重启并注册
brew services restart redis
# 只启动一次,不注册自启,临时调试用
brew services run redis
# 立即停止服务,但保留注册(下次登录还会启动)
brew services kill redis
# 查看某个服务的运行状态和日志路径,服务起不来先看这里
brew services info redis
# 清掉已卸载软件残留的服务配置
brew services cleanup

以上命令都支持 --all 一次操作所有服务,比如 brew services restart --all

一个经典报错

如果执行 brew services 报下面的错:

使用services报错

text
Error: uninitialized constant Homebrew::Service
/opt/homebrew/Library/Taps/homebrew/homebrew-services/cmd/services.rb:113:in `services'

不是 brew 坏了,而是磁盘上残留了老版本的 homebrew/services tap。早期 brew services 靠这个 tap 提供,从 brew 2.1.16(2019 年)起已内置进 brew 本体;残留的旧脚本会覆盖内置命令,和新版 brew 不兼容。把残留删掉即可,不要再按老教程 brew tap homebrew/services 装回来:

bash
rm -rf "$(brew --repository)/Library/Taps/homebrew/homebrew-services"
# 或者
brew untap homebrew/services

删完 brew services 会自动走内置实现,不需要重启终端。

安装 GUI 应用:Cask

installuninstallsearchupgrade 这些命令对 cask 同样适用,这里只记几个特有的写法和坑。注意早期的 brew cask install xxx 写法已废弃,统一用 --cask 参数:

bash
# 安装 GUI 应用
brew install --cask google-chrome
# 搜索应用(直接 brew search 也行,结果里 cask 会单独列出)
brew search --cask chrome
# 列出已装的 GUI 应用
brew list --cask
# 升级
brew upgrade --cask google-chrome

两个容易踩的坑:

  1. 卸载残留。brew uninstall --cask xxx 只删应用本体,偏好设置、缓存都还留在 ~/Library 下,想删干净加 --zap
bash
brew uninstall --cask --zap google-chrome
  1. upgrade 升不动自带更新功能的应用。像 VS Code、Chrome 这类自己会弹更新框的应用,cask 定义里标了 auto_updates: truebrew upgrade --cask 默认会跳过它们,要强制纳入升级范围需加 --greedy
bash
brew upgrade --cask --greedy

参考

评论 0

访
暂无评论,来发表第一条评论吧。