Homebrew 完全指南(2024 年最新)
Homebrew,被誉为 macOS(或 Linux)上“缺失的软件包管理器”,是开发者和高级用户必备的工具之一。它极大地简化了在命令行中安装、更新、卸载和管理各种开源软件、工具和库的过程。无论您是进行 Web 开发、数据科学、系统管理还是其他技术领域的工作,Homebrew 都能让您的工作流程更加高效。
本文将深入探讨 Homebrew 的方方面面,从基础安装到高级用法,并提供一些实用的技巧和最佳实践,旨在帮助您充分利用这个强大的工具。
1. Homebrew 是什么?
Homebrew 是一个用 Ruby 编写的开源软件包管理系统,最初是为 macOS 设计的。它使用 Git 进行版本控制,并允许用户通过简单的命令从源代码编译和安装软件,或者安装预编译的二进制包(称为 “bottles”)。Homebrew 的目标是提供一个简单、灵活、可扩展的平台,让用户能够轻松地管理他们所需的各种软件。
Homebrew 的核心概念:
- Formula(配方): Formula 是一个 Ruby 脚本,定义了如何下载、编译和安装特定的软件包。每个软件包都有一个对应的 Formula 文件,其中包含了软件的名称、版本、依赖关系、安装步骤等信息。
- Tap(软件仓库): Tap 是一个 Git 仓库,其中包含了一组相关的 Formula。Homebrew 官方维护了一个核心 Tap(
homebrew/core
),包含了大量常用的软件包。此外,还有许多第三方 Tap,提供了特定领域或特定软件的 Formula。 - Keg(酒桶): Keg 是一个目录,其中包含了已安装软件包的所有文件。Homebrew 将每个软件包安装到其自己的 Keg 中,以避免不同软件包之间的文件冲突。
- Cellar(酒窖): Cellar 是一个目录,其中包含了所有已安装软件包的 Keg。默认情况下,Cellar 位于
/usr/local/Cellar
(macOS)或/home/linuxbrew/.linuxbrew/Cellar
(Linux)。 - Bottle(酒瓶): Bottle 是预编译的二进制包,可以更快地安装软件包,而无需从源代码编译。Homebrew 会优先尝试使用 Bottle,以提高安装速度。
2. 为什么选择 Homebrew?
与其他软件包管理器(如 MacPorts、Fink)相比,Homebrew 具有以下优势:
- 简单易用: Homebrew 的命令简洁明了,易于学习和使用。只需几个简单的命令,就可以完成软件包的安装、更新和卸载。
- 活跃的社区: Homebrew 拥有一个庞大而活跃的社区,这意味着您可以轻松地找到所需的软件包,并获得及时的帮助和支持。
- 丰富的软件包: Homebrew 的核心 Tap 和第三方 Tap 提供了数千个软件包,涵盖了各种领域,包括开发工具、命令行实用程序、图形界面应用程序等。
- 依赖管理: Homebrew 会自动处理软件包之间的依赖关系,确保所有必需的库和工具都已正确安装。
- 版本控制: Homebrew 使用 Git 进行版本控制,可以轻松地回滚到旧版本或安装特定版本的软件包。
- 与 macOS 集成: Homebrew 与 macOS 紧密集成,遵循 macOS 的惯例和最佳实践。
- 支持 Linux: Homebrew 也支持 Linux 系统,可以在 Linux 上提供与 macOS 类似的软件包管理体验。
3. 安装 Homebrew
在 macOS 或 Linux 上安装 Homebrew 非常简单。只需打开终端(Terminal),然后运行以下命令:
bash
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
此命令会下载并运行 Homebrew 的安装脚本。该脚本会执行以下操作:
- 检查系统要求: 确保您的系统满足 Homebrew 的最低要求(如 Xcode 命令行工具、Git 等)。
- 下载 Homebrew: 从 GitHub 下载 Homebrew 的核心代码。
- 安装 Homebrew: 将 Homebrew 安装到默认位置(
/usr/local
或/home/linuxbrew/.linuxbrew
)。 - 配置环境变量: 将 Homebrew 的
bin
目录添加到您的PATH
环境变量中,以便您可以直接运行 Homebrew 命令。 - 更新Homebrew数据库: 安装脚本可能会自动运行
brew update
以确保您使用的是最新的Homebrew版本和可用的软件包列表。
安装后的配置(重要):
安装脚本完成后,您可能需要按照终端中的提示,手动将 Homebrew 添加到您的 shell 配置文件中(如 ~/.zshrc
或 ~/.bash_profile
)。通常,您需要添加类似以下几行:
“`bash
对于 macOS (Apple Silicon)
eval “$(/opt/homebrew/bin/brew shellenv)”
对于 macOS (Intel) 或 Linux
eval “$(/usr/local/bin/brew shellenv)”
或
eval “$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)”
“`
然后,运行 source ~/.zshrc
(或 source ~/.bash_profile
)使更改生效。
验证安装:
安装完成后,运行以下命令来验证 Homebrew 是否已正确安装:
bash
brew doctor
brew doctor
命令会检查您的系统是否存在任何可能与 Homebrew 冲突的问题,并提供相应的建议。如果没有错误提示,则表示 Homebrew 已成功安装。
4. 基本用法
Homebrew 的命令非常直观,以下是一些最常用的命令:
brew search <keyword>
: 搜索软件包。例如,brew search node
会搜索与 “node” 相关的软件包。brew info <formula>
: 查看软件包的详细信息,包括版本、依赖关系、安装选项等。例如,brew info node
。brew install <formula>
: 安装软件包。例如,brew install node
。brew uninstall <formula>
: 卸载软件包。例如,brew uninstall node
。brew upgrade
: 更新所有已安装的软件包到最新版本。brew upgrade <formula>
: 更新指定的软件包。例如,brew upgrade node
。brew list
: 列出所有已安装的软件包。brew outdated
: 列出所有已过时的软件包(即有新版本可用的软件包)。brew update
: 更新 Homebrew 本身及其 Formula 列表。强烈建议在安装或更新软件包之前运行此命令。brew cleanup
: 清理旧版本的软件包和下载缓存,释放磁盘空间。brew tap <tap>
: 添加第三方 Tap。例如,brew tap caskroom/cask
。brew untap <tap>
: 删除第三方 Tap。brew help
: 查看 Homebrew 的帮助信息。
示例:安装 Node.js
以下是如何使用 Homebrew 安装 Node.js 的示例:
-
搜索 Node.js:
bash
brew search node -
查看 Node.js 信息:
bash
brew info node -
安装 Node.js:
bash
brew install node -
验证安装:
bash
node -v
npm -v
5. Homebrew Cask
Homebrew Cask 是 Homebrew 的一个扩展,用于管理图形界面应用程序(如 Chrome、Firefox、VS Code 等)。它允许您像安装命令行工具一样安装、更新和卸载这些应用程序。
安装 Homebrew Cask:
Homebrew Cask 通常已包含在 Homebrew 的安装中,无需单独安装。
基本用法:
Homebrew Cask 的命令与 Homebrew 类似,只需在命令前加上 cask
即可:
brew install --cask <cask>
: 安装应用程序。例如,brew install --cask google-chrome
。brew uninstall --cask <cask>
: 卸载应用程序。例如,brew uninstall --cask google-chrome
。brew search --cask <keyword>
: 搜索应用程序。brew info --cask <cask>
: 查看应用程序的详细信息。brew list --cask
: 列出所有用cask安装的软件。
注意: 对于图形界面应用程序,Homebrew Cask 通常会将应用程序安装到 /Applications
目录,与手动安装的方式相同。
6. 高级用法
除了基本用法之外,Homebrew 还提供了一些高级功能,可以帮助您更灵活地管理软件包:
- 安装特定版本: 默认情况下,Homebrew 会安装软件包的最新稳定版本。如果您需要安装特定版本,可以使用
@
符号指定版本号。例如,brew install node@14
。 注意: 这需要该Formula支持旧版本,很多Formula只保留最新版本。 - 从源代码编译: 如果您需要自定义编译选项,可以使用
--build-from-source
选项从源代码编译软件包。例如,brew install --build-from-source node
。 - 安装 HEAD 版本: 如果您想尝试软件包的最新开发版本(可能不稳定),可以使用
--HEAD
选项。例如,brew install --HEAD node
。 - 忽略依赖: 如果您只想安装特定的软件包,而不想安装其依赖项,可以使用
--ignore-dependencies
选项。例如,brew install --ignore-dependencies node
。 注意: 除非您非常清楚自己在做什么,否则通常不建议这样做。 - 固定软件包(Pinning): 如果您不希望某个软件包被自动更新,可以使用
brew pin <formula>
命令将其固定。例如,brew pin node
。要取消固定,可以使用brew unpin <formula>
命令。 - 创建自己的 Formula: 如果您需要安装的软件包不在 Homebrew 的官方仓库中,您可以创建自己的 Formula。这需要您了解 Ruby 语法和 Homebrew 的 Formula 规范。
7. 实用技巧和最佳实践
- 定期更新: 定期运行
brew update
和brew upgrade
,以确保您使用的是最新版本的 Homebrew 和软件包。 - 定期清理: 定期运行
brew cleanup
,以清理旧版本的软件包和下载缓存,释放磁盘空间。 - 使用
brew doctor
: 定期运行brew doctor
,以检查系统是否存在任何可能与 Homebrew 冲突的问题。 - 使用 Tap: 如果您经常需要安装特定领域或特定软件的软件包,可以考虑添加相应的第三方 Tap。
- 备份
Brewfile
: 如果您需要在一台新机器上快速安装与当前机器相同的软件包,可以使用brew bundle
命令。首先,在当前机器上运行brew bundle dump
,这将在当前目录下创建一个名为Brewfile
的文件,其中包含了所有已安装软件包的列表。然后,将Brewfile
复制到新机器上,并在新机器上运行brew bundle
,即可自动安装所有软件包。 - 阅读文档: Homebrew 的官方文档非常详细,包含了所有命令和选项的说明。如果您遇到任何问题,可以查阅官方文档或寻求社区的帮助。
- 了解 Formula 的位置: 了解已安装Formula的实际位置很有帮助。可以使用
brew --prefix <formula>
来找到特定Formula的安装目录。 - 审计安全性(对于高级用户): 在安装来自非官方 Tap 的 Formula 之前,最好先检查一下 Formula 的代码,以确保其安全性。
8. 常见问题解答 (FAQ)
-
Q: Homebrew 安装的软件包在哪里?
A: Homebrew 将软件包安装到其自己的 Keg 中,然后将 Keg 链接到
/usr/local
(macOS)或/home/linuxbrew/.linuxbrew
(Linux)。您可以使用brew --prefix <formula>
命令查看特定软件包的安装位置。 -
Q: 如何卸载 Homebrew?
A: 您可以运行 Homebrew 提供的卸载脚本来卸载 Homebrew。该脚本通常位于 Homebrew 的安装目录下,名为
uninstall
。您也可以从 Homebrew 的 GitHub 仓库下载卸载脚本。 -
Q: Homebrew 与 MacPorts、Fink 有什么区别?
A: Homebrew、MacPorts 和 Fink 都是 macOS 上的软件包管理器。Homebrew 的主要优势在于其简单易用、活跃的社区和丰富的软件包。MacPorts 和 Fink 则更注重软件包的稳定性和安全性。
-
Q: Homebrew 是否安全?
A: Homebrew 本身是安全的。但是,您需要注意安装来自非官方 Tap 的软件包的安全性。在安装之前,最好先检查一下 Formula 的代码。
-
Q:我应该用
sudo
运行 Homebrew 命令吗?A: 绝对不要。Homebrew 的设计是不需要
sudo
权限的。使用sudo
运行 Homebrew 命令可能会导致权限问题,甚至损坏您的系统。
* Q:brew update
和brew upgrade
有什么区别?
A:brew update
更新 Homebrew 本身和 Formula 列表(获取最新的软件包信息)。brew upgrade
升级已安装的软件包到最新版本。 最佳实践是先运行brew update
,再运行brew upgrade
。
9. 总结
Homebrew 是一个强大而灵活的软件包管理器,可以极大地简化 macOS 和 Linux 上的软件管理。通过掌握 Homebrew 的基本用法和高级功能,您可以更高效地进行开发和系统管理工作。希望这篇指南能够帮助您充分利用 Homebrew 的潜力。 记住,Homebrew 社区非常活跃,如果您在使用过程中遇到任何问题,都可以随时寻求帮助。