Homebrew for Mac:从零开始的安装与使用教程
Homebrew for Mac:从零开始的安装与使用教程
引言:为什么选择 Homebrew?
对于 macOS 用户,尤其是开发者、系统管理员或喜欢探索命令行工具的爱好者来说,管理各种软件包和依赖项可能是一项挑战。macOS 自带的工具集虽然强大,但在安装、更新和管理第三方开源软件方面却有所欠缺。这时,Homebrew 应运而生,它被誉为 “macOS(或 Linux)缺失的软件包管理器”,极大地简化了在 Mac 上安装和管理各种命令行工具、开发库甚至图形界面应用程序的过程。
使用 Homebrew 的主要优势包括:
- 易于安装与使用:一条命令即可安装软件,命令简单直观。
- 庞大的软件库:涵盖了数千种流行的开源软件包(称为 Formulae)和应用程序(称为 Casks)。
- 自动处理依赖:安装软件时,Homebrew 会自动下载并安装其所需的依赖库。
- 方便的版本管理:轻松更新、切换或卸载软件包版本。
- 保持系统纯净:Homebrew 将软件安装在独立的目录(通常是
/opt/homebrew
或/usr/local
),避免与系统自带的文件混淆,易于管理和卸载。 - 开源与社区驱动:拥有活跃的社区支持,不断更新和添加新的软件包。
本教程旨在为 Mac 用户提供一份从零开始的 Homebrew 安装与使用指南,无论您是初次接触命令行,还是希望系统化地学习 Homebrew,都能从中受益。我们将详细介绍安装步骤、核心概念、常用命令以及一些高级技巧和故障排除方法。
第一部分:安装前的准备
在开始安装 Homebrew 之前,请确保满足以下条件:
- 操作系统:macOS 10.14 (Mojave) 或更高版本。Homebrew 对较新版本的 macOS 支持最好。
- Command Line Tools (CLT) for Xcode:Homebrew 依赖于苹果提供的命令行开发者工具,其中包含了编译器(如 Clang)、Git 等基础工具。
- 检查是否已安装:打开“终端”应用程序(位于“应用程序” > “实用工具”),输入以下命令并按回车:
bash
xcode-select -p
如果看到类似/Library/Developer/CommandLineTools
的路径输出,说明已安装。 - 安装方法:如果未安装,可以直接在终端中输入以下命令,系统会弹出安装提示框,按指引操作即可:
bash
xcode-select --install
安装过程需要网络连接,并可能需要几分钟时间。
- 检查是否已安装:打开“终端”应用程序(位于“应用程序” > “实用工具”),输入以下命令并按回车:
- 管理员权限:安装 Homebrew 需要执行
sudo
命令,因此您需要知道当前用户的管理员密码。 - 稳定的网络连接:安装过程需要从网络下载脚本和文件。
第二部分:安装 Homebrew
Homebrew 的安装过程非常简单,官方提供了一个安全的安装脚本。
-
打开终端:再次确认您已打开“终端”应用程序。
-
执行安装命令:复制以下命令粘贴到终端中,然后按回车键执行。
bash
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"- 命令解释:
curl -fsSL ...
:使用curl
工具从指定的 URL 下载安装脚本。-f
表示失败时不显示 HTTP 错误,-s
表示静默模式(不显示进度),-S
表示显示错误信息,-L
表示跟随重定向。/bin/bash -c "..."
:使用 Bash shell 执行下载到的脚本内容。
- 命令解释:
-
按照提示操作:
- 脚本首先会检查您的系统环境是否满足要求。
- 接着,它会列出将要创建的目录和将要执行的操作,并请求您确认(通常是按
Return
或Enter
键)。 - 脚本会提示您输入管理员密码(输入时密码不会显示在屏幕上,这是正常的安全机制),以获取必要的权限来创建目录和链接文件。输入密码后按回车。
- 安装过程开始,会自动下载 Homebrew 的核心文件并进行配置。根据网络速度,这可能需要几分钟到十几分钟不等。
-
配置 PATH 环境变量(重要!):
- 安装脚本完成后,务必仔细阅读终端输出的最后几行。通常会提示您需要执行一到两条命令,将 Homebrew 的可执行文件路径添加到系统的
PATH
环境变量中。这确保了您可以在任何目录下直接运行brew
命令。 - 对于 Apple Silicon (M1/M2/M3) Macs:Homebrew 默认安装在
/opt/homebrew
。您需要执行类似以下的命令(请以您终端实际显示的为准):
bash
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"
这些命令的作用是将设置 Homebrew 环境的命令添加到您的 shell 配置文件(通常是.zprofile
for Zsh,macOS Catalina 及以后版本的默认 shell)中,并立即在当前会话中生效。 - 对于 Intel Macs:Homebrew 通常安装在
/usr/local
。路径可能已自动配置好,但如果提示,请按照指示操作,可能涉及修改.bash_profile
或.zshrc
文件。 - 验证 PATH 设置:关闭当前终端窗口,重新打开一个新的终端窗口。输入以下命令:
bash
which brew
如果看到类似/opt/homebrew/bin/brew
或/usr/local/bin/brew
的输出,则表示 PATH 配置成功。
- 安装脚本完成后,务必仔细阅读终端输出的最后几行。通常会提示您需要执行一到两条命令,将 Homebrew 的可执行文件路径添加到系统的
-
验证安装:运行 Homebrew 的内置诊断工具:
bash
brew doctor
如果安装成功且配置无误,通常会输出Your system is ready to brew.
。如果存在一些小问题或警告,brew doctor
会给出修复建议,请根据提示操作。
至此,Homebrew 已成功安装在您的 Mac 上!
第三部分:核心概念理解
在使用 Homebrew 之前,了解一些核心概念有助于更好地运用它:
- Formula (配方):一个 Ruby 脚本,定义了如何下载、编译和安装一个特定的命令行软件包(如
git
,wget
,node
)。Homebrew 的主要管理对象就是 Formulae。 - Cask (木桶):用于管理 macOS 图形界面应用程序(如
google-chrome
,visual-studio-code
,iterm2
)或字体、插件等的扩展。它处理的是预编译的应用程序包(.app
文件等),通常只是将其移动到/Applications
目录并进行必要的链接。 - Tap (水龙头):一个 Git 仓库,包含了 Formulae 和 Casks 的定义。Homebrew 默认自带了
homebrew/core
(核心 Formulae) 和homebrew/cask
(核心 Casks)。用户可以添加(tap)其他的第三方仓库来获取更多软件。 - Cellar (酒窖):Homebrew 安装所有软件包(通过 Formulae)的实际存储位置。每个软件包的不同版本都存放在 Cellar 下的独立子目录中(例如
/opt/homebrew/Cellar/wget/1.21.3
)。 - Prefix (前缀):Homebrew 的主安装目录。在 Apple Silicon Mac 上通常是
/opt/homebrew
,在 Intel Mac 上通常是/usr/local
。Homebrew 会在 Prefix 目录下创建bin
,lib
,share
,Cellar
等子目录,并将 Cellar 中安装的软件链接到bin
,lib
等处,方便系统调用。
理解这些概念后,我们来看如何使用 Homebrew。
第四部分:常用 Homebrew 命令详解
以下是日常使用中最常遇到的 Homebrew 命令及其用法:
-
搜索软件包/应用 (
brew search
)- 搜索 Formula (命令行工具):
bash
brew search <关键词>
# 示例:搜索包含 "python" 的 Formulae
brew search python - 搜索 Cask (图形应用等):
bash
brew search --casks <关键词>
# 示例:搜索 Chrome 浏览器
brew search --casks google-chrome - 模糊搜索:即使关键词不完全匹配,也会列出相关的结果。
- 搜索 Formula (命令行工具):
-
安装软件包/应用 (
brew install
)- 安装 Formula:
bash
brew install <formula_name>
# 示例:安装下载工具 wget
brew install wget
# 示例:安装 Node.js
brew install node
Homebrew 会自动处理依赖关系。 - 安装 Cask:
bash
brew install --cask <cask_name>
# 示例:安装 Visual Studio Code
brew install --cask visual-studio-code
# 示例:安装 iTerm2 终端模拟器
brew install --cask iterm2
Cask 安装通常是将.app
文件移动到/Applications
目录。
- 安装 Formula:
-
卸载软件包/应用 (
brew uninstall
)- 卸载 Formula:
bash
brew uninstall <formula_name>
# 示例:卸载 wget
brew uninstall wget - 卸载 Cask:
bash
brew uninstall --cask <cask_name>
# 示例:卸载 iTerm2
brew uninstall --cask iterm2 - 强制卸载(包括所有版本):
bash
brew uninstall --force <formula_name>
brew uninstall --cask --force <cask_name>
- 卸载 Formula:
-
更新 Homebrew 及软件包
- 更新 Homebrew 自身和所有 Taps 的软件包列表 (
brew update
):这是执行任何更新操作前的第一步,它会从远程仓库拉取最新的 Formulae 和 Casks 定义。
bash
brew update - 升级所有已安装的、有新版本的软件包 (
brew upgrade
):
bash
brew upgrade
这会升级所有通过brew install
安装的 Formulae。 - 升级指定的软件包:
bash
brew upgrade <formula_name>
# 示例:只升级 Node.js
brew upgrade node - 升级所有已安装的 Casks (
brew upgrade --cask
):
bash
brew upgrade --cask
注意:升级 Cask 可能会重新下载整个应用程序。 - 升级指定的 Cask:
bash
brew upgrade --cask <cask_name>
# 示例:只升级 Visual Studio Code
brew upgrade --cask visual-studio-code - 推荐流程:定期先运行
brew update
,然后根据需要运行brew upgrade
或brew upgrade --cask
。
- 更新 Homebrew 自身和所有 Taps 的软件包列表 (
-
查看已安装的软件包 (
brew list
)- 列出所有已安装的 Formulae:
bash
brew list
# 或者 brew list --formula - 列出所有已安装的 Casks:
bash
brew list --cask - 查看某个 Formula 安装了哪些文件:
bash
brew list <formula_name>
# 示例:查看 wget 安装的文件
brew list wget
- 列出所有已安装的 Formulae:
-
查看软件包信息 (
brew info
)- 查看 Formula 的信息(版本、依赖、安装路径、官网等):
bash
brew info <formula_name>
# 示例:查看 Python 的信息
brew info python - 查看 Cask 的信息(版本、来源、安装状态等):
bash
brew info --cask <cask_name>
# 示例:查看 Google Chrome 的信息
brew info --cask google-chrome
- 查看 Formula 的信息(版本、依赖、安装路径、官网等):
-
清理旧版本和缓存 (
brew cleanup
)- Homebrew 在升级软件包后,默认会保留旧版本。
brew cleanup
可以删除所有已安装 Formulae 的旧版本以及下载的缓存文件。
bash
brew cleanup - 清理指定 Formula 的旧版本:
bash
brew cleanup <formula_name> - 清理下载缓存(不删除旧版本):
bash
brew cleanup --prune=0
# 或者直接删除缓存目录内容,通常位于 ~/Library/Caches/Homebrew/ - 预览将要删除的内容(推荐先执行):
bash
brew cleanup -n
- Homebrew 在升级软件包后,默认会保留旧版本。
-
检查 Homebrew 健康状况 (
brew doctor
)- 再次强调此命令的重要性。当遇到问题时,首先运行
brew doctor
。它会检查常见的配置错误、权限问题、过时的链接等,并给出修复建议。
bash
brew doctor
- 再次强调此命令的重要性。当遇到问题时,首先运行
第五部分:进阶使用与技巧
-
管理后台服务 (
brew services
)- Homebrew 可以方便地管理一些需要后台运行的服务(如数据库
mysql
,postgresql
,Web 服务器nginx
,httpd
等)。 - 安装服务(例如 Nginx):
bash
brew install nginx - 启动服务并在登录时自动启动:
bash
brew services start nginx - 仅启动服务(不设置开机自启):
bash
brew services run nginx - 停止服务:
bash
brew services stop nginx - 重启服务:
bash
brew services restart nginx - 查看当前由 Homebrew 管理的服务状态:
bash
brew services list
- Homebrew 可以方便地管理一些需要后台运行的服务(如数据库
-
使用 Tap 添加第三方仓库
- 有时需要的软件不在官方仓库中,可以添加第三方 Tap。
- 添加 Tap:
bash
brew tap <user>/<repo>
# 示例:添加字体仓库
brew tap homebrew/cask-fonts
# 示例:添加 PHP 相关工具的仓库
brew tap shivammathur/php - 添加后,就可以像安装官方软件一样安装 Tap 中的 Formulae 或 Casks:
bash
# 安装字体 Fira Code
brew install --cask font-fira-code
# 安装 PHP 8.1
brew install shivammathur/php/[email protected] - 查看已添加的 Taps:
bash
brew tap - 移除 Tap:
bash
brew untap <user>/<repo>
-
固定软件包版本 (
brew pin
/unpin
)- 如果希望某个软件包不被
brew upgrade
自动升级(例如保持特定版本以兼容项目),可以将其 pin 住:
bash
brew pin <formula_name>
# 示例:固定 Node.js 版本
brew pin node - 取消固定:
bash
brew unpin <formula_name> - 查看已固定的软件包:
bash
brew list --pinned
- 如果希望某个软件包不被
-
使用 Brewfile 管理环境
Brewfile
是一个纯文本文件,用于记录您希望通过 Homebrew 安装的所有软件包(Formulae, Casks, Taps)。这对于在新机器上快速恢复环境或保持团队开发环境一致性非常有用。- 生成当前的 Brewfile:
bash
brew bundle dump
# 这会在当前目录下创建一个名为 Brewfile 的文件 - 根据 Brewfile 安装所有内容:
bash
brew bundle install
# Homebrew 会读取当前目录下的 Brewfile 并安装其中列出的所有项目 - 检查 Brewfile 中的状态(哪些已安装,哪些待安装):
bash
brew bundle check - 清理 Brewfile 中未列出的已安装项:
bash
brew bundle cleanup --force
第六部分:常见问题与故障排除
-
命令找不到 (
command not found: brew
)- 最常见的原因是 PATH 环境变量未正确配置。请回顾安装部分的第 4 步,确保按照终端提示执行了添加 PATH 的命令,并重启了终端。
- 使用
echo $PATH
检查路径是否包含 Homebrew 的bin
目录。
-
权限问题 (
Permission denied
)- 可能是 Homebrew 安装目录的权限不正确。尝试修复权限:
bash
# 对于 Apple Silicon (/opt/homebrew)
sudo chown -R $(whoami) /opt/homebrew/*
# 对于 Intel (/usr/local)
sudo chown -R $(whoami) /usr/local/*
之后运行brew doctor
检查。 - 有时是特定文件权限问题,
brew doctor
通常能检测并给出修复命令。
- 可能是 Homebrew 安装目录的权限不正确。尝试修复权限:
-
下载缓慢或失败
- 检查网络连接。
- 尝试更换 Homebrew 的镜像源。可以搜索 "Homebrew 国内镜像源" 找到相关教程,通常涉及修改 Git 远程 URL 和环境变量。
- 网络高峰期或特定资源服务器问题,稍后再试。
-
brew doctor
报告警告或错误- 仔细阅读
brew doctor
的输出,它通常会提供非常具体的修复建议或命令。按照指示操作。 - 常见的警告包括:存在未链接的 kegs(
brew link <formula>
)、存在旧的配置文件、Xcode CLT 版本过旧等。
- 仔细阅读
-
更新或安装时出现冲突
- 可能是依赖关系冲突或文件冲突。仔细阅读错误信息。
- 有时需要先卸载冲突的包,或者使用
brew link --overwrite <formula>
强制覆盖链接(请谨慎使用)。 - 在 GitHub 的 Homebrew 仓库 (Issues section) 搜索类似错误,看是否有解决方案。
-
卸载 Homebrew
- 如果需要完全卸载 Homebrew,官方提供了卸载脚本:
bash
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/uninstall.sh)" - 根据提示操作,它会移除 Homebrew 安装的所有文件和目录。执行前请三思,所有通过 Homebrew 安装的软件都将被移除。
- 如果需要完全卸载 Homebrew,官方提供了卸载脚本:
结语
Homebrew 无疑是 macOS 上一个极其强大且便利的工具,它让管理第三方软件变得前所未有的简单。通过本教程,您应该已经掌握了 Homebrew 的安装、基本使用方法以及一些进阶技巧。熟练运用 Homebrew,不仅能极大地提高您的工作效率,还能让您更方便地探索和使用丰富的开源软件世界。
随着您使用的深入,会发现 Homebrew 还有更多功能和可能性等待发掘。建议经常查阅官方文档(man brew
或访问 docs.brew.sh),并关注其更新动态。开始享受 Homebrew 带来的便捷吧!