Homebrew完全指南(2024年最新) – wiki基地

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 的安装脚本。该脚本会执行以下操作:

  1. 检查系统要求: 确保您的系统满足 Homebrew 的最低要求(如 Xcode 命令行工具、Git 等)。
  2. 下载 Homebrew: 从 GitHub 下载 Homebrew 的核心代码。
  3. 安装 Homebrew: 将 Homebrew 安装到默认位置(/usr/local/home/linuxbrew/.linuxbrew)。
  4. 配置环境变量: 将 Homebrew 的 bin 目录添加到您的 PATH 环境变量中,以便您可以直接运行 Homebrew 命令。
  5. 更新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 的示例:

  1. 搜索 Node.js:
    bash
    brew search node

  2. 查看 Node.js 信息:
    bash
    brew info node

  3. 安装 Node.js:
    bash
    brew install node

  4. 验证安装:
    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 updatebrew 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 updatebrew upgrade 有什么区别?
    A: brew update 更新 Homebrew 本身和 Formula 列表(获取最新的软件包信息)。 brew upgrade 升级已安装的软件包到最新版本。 最佳实践是先运行brew update,再运行brew upgrade

9. 总结

Homebrew 是一个强大而灵活的软件包管理器,可以极大地简化 macOS 和 Linux 上的软件管理。通过掌握 Homebrew 的基本用法和高级功能,您可以更高效地进行开发和系统管理工作。希望这篇指南能够帮助您充分利用 Homebrew 的潜力。 记住,Homebrew 社区非常活跃,如果您在使用过程中遇到任何问题,都可以随时寻求帮助。

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注

滚动至顶部