Homebrew新手入门:安装、使用及常见命令详解

Homebrew 新手入门:安装、使用及常见命令详解

对于 macOS 和 Linux 用户来说,拥有一个高效的软件包管理器是至关重要的。Homebrew,通常被称为 "macOS 缺少(或 Linux)的软件包管理器",正是这样一款工具。它简化了软件的安装、更新、卸载和管理过程,让你可以轻松地获取各种开发工具、应用程序和库。

本文将深入探讨 Homebrew,从安装到日常使用,再到一些高级技巧,帮助你全面掌握这个强大的工具。无论你是刚接触命令行的新手,还是经验丰富的开发者,都能从中受益。

一、Homebrew 是什么?

Homebrew 是一个用 Ruby 编写的开源软件包管理器,最初是为 macOS 设计的,后来也增加了对 Linux 和 Windows Subsystem for Linux (WSL) 的支持。它的主要目标是简化在这些操作系统上安装、管理那些不在官方软件仓库中的软件的过程。

Homebrew 的核心概念:

  • Formula(配方): Homebrew 使用 "Formula" 来描述如何构建和安装一个软件包。每个 Formula 都是一个 Ruby 脚本,包含了软件包的名称、版本、依赖关系、下载地址以及安装步骤等信息。
  • Tap(软件仓库): Tap 是 Formula 的集合,类似于软件仓库。Homebrew 默认使用官方的 "core" tap,但也允许你添加其他第三方 tap 来获取更多的软件包。
  • Keg(酒桶): 当一个 Formula 被安装后,它的文件会被放置在一个称为 "Keg" 的目录中。Keg 的路径通常是 /usr/local/Cellar(macOS)或 /home/linuxbrew/.linuxbrew/Cellar(Linux)。
  • Cellar(酒窖): Cellar 是存放所有已安装软件包(Keg)的根目录。
  • Bottle(瓶子): Bottle 是预先编译好的二进制软件包,可以直接安装,无需从源码编译,大大节省了安装时间。

Homebrew 的优势:

  • 简单易用: Homebrew 的命令简洁明了,即使是命令行新手也能快速上手。
  • 庞大的软件库: Homebrew 拥有庞大的官方软件库,包含了数千个常用的软件包,涵盖了开发、设计、办公、娱乐等各个领域。
  • 活跃的社区: Homebrew 拥有一个活跃的社区,你可以轻松地找到帮助、反馈问题或参与贡献。
  • 版本控制: Homebrew 可以轻松管理软件包的不同版本,方便你在需要时切换或回滚。
  • 依赖管理: Homebrew 会自动处理软件包之间的依赖关系,确保所有需要的组件都能正确安装。
  • 无需 root 权限: Homebrew 将软件包安装在用户目录下,无需 root 权限,避免了对系统造成潜在的风险。

二、安装 Homebrew

在安装 Homebrew 之前,你需要确保你的系统满足以下要求:

  • macOS:
    • macOS 10.13 或更高版本。
    • 64 位 Intel CPU 或 Apple Silicon CPU。
    • 安装了 Xcode 命令行工具(Command Line Tools for Xcode)。你可以在终端中运行 xcode-select --install 来安装。
  • Linux:
    • glibc 2.23 或更高版本。
    • Linux 内核 2.6.32 或更高版本。
    • 安装了 GCC 4.4 或更高版本。
  • Windows Subsystem For Linux:
    • Debian,Ubuntu等发行版

安装步骤:

  1. 打开终端(Terminal): 你可以在 "应用程序" -> "实用工具" 中找到终端,或者使用 Spotlight 搜索 "Terminal"。

  2. 运行安装脚本: 在终端中复制并粘贴以下命令,然后按回车键执行:

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

    这个脚本会自动下载并安装 Homebrew,以及它所依赖的一些工具。

  3. 按照提示操作: 安装过程中,脚本会提示你输入密码(macOS)或确认安装路径。按照提示操作即可。

  4. 配置环境变量: 安装完成后,你需要将 Homebrew 的 bin 目录添加到你的 PATH 环境变量中,这样才能在终端中直接使用 Homebrew 命令。

    • macOS(Apple Silicon):
      将以下两行添加到你的 .zprofile 文件中,如果没有这个文件,手动创建一个:
      bash
      echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile

      然后运行
      bash
      source ~/.zprofile

    • macOS(Intel):

      将以下两行添加到你的 .zprofile 文件中,如果没有这个文件,手动创建一个:

      bash
      echo 'eval "$(/usr/local/bin/brew shellenv)"' >> ~/.zprofile
      eval "$(/usr/local/bin/brew shellenv)"

      然后运行
      bash
      source ~/.zprofile

    • Linux 或 WSL:

      将以下内容添加到你的 .bashrc.zshrc 文件中(取决于你使用的 shell):

      bash
      eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"

      然后运行
      bash
      source ~/.bashrc # 或 source ~/.zshrc

      * 注意: 如果你的linuxbrew安装位置不是默认的/home/linuxbrew/.linuxbrew/, 请自行更改上述代码.

  5. 验证安装: 在终端中运行以下命令:

    bash
    brew doctor

    如果一切正常,你会看到 "Your system is ready to brew." 的提示。如果有任何问题,brew doctor 会给出详细的诊断信息和解决方案。

    你还可以运行 brew --version 来查看 Homebrew 的版本号,以确认安装成功。

三、Homebrew 常用命令

安装好 Homebrew 后,你就可以开始使用它来管理软件包了。下面是一些最常用的 Homebrew 命令:

1. 搜索软件包:

bash
brew search <keyword>

例如,要搜索 Git 相关的软件包,可以运行:

bash
brew search git

Homebrew 会列出所有包含 "git" 关键字的 Formula 和 Cask。

2. 安装软件包:

bash
brew install <formula>

例如,要安装 Git,可以运行:

bash
brew install git

Homebrew 会自动下载、编译(如果需要)并安装 Git,以及它所依赖的其他软件包。

3. 卸载软件包:

bash
brew uninstall <formula>

例如,要卸载 Git,可以运行:

bash
brew uninstall git

Homebrew 会删除 Git 及其相关的配置文件。

4. 更新软件包:

  • 更新 Homebrew 本身:

    bash
    brew update

    这个命令会更新 Homebrew 的 Formula 和 Tap 列表,确保你拥有最新的软件包信息。

  • 更新已安装的软件包:

    bash
    brew upgrade

    这个命令会更新所有已安装的、有新版本的软件包。

  • 更新指定的软件包:

    bash
    brew upgrade <formula>

    例如,要更新 Git,可以运行:

    bash
    brew upgrade git

5. 列出已安装的软件包:

bash
brew list

这个命令会列出所有通过 Homebrew 安装的软件包。

6. 查看软件包信息:

bash
brew info <formula>

例如,要查看 Git 的详细信息,可以运行:

bash
brew info git

这个命令会显示软件包的版本、描述、依赖关系、安装路径、安装选项等信息。

7. 清理旧版本的软件包:

bash
brew cleanup

这个命令会删除所有已安装软件包的旧版本,释放磁盘空间。

bash
brew cleanup <formula>

这个命令会删除指定软件包的旧版本。

8. 查看软件包的依赖关系:

bash
brew deps <formula>

例如,要查看 Git 的依赖关系,可以运行:

bash
brew deps git

这个命令会列出 Git 所依赖的所有其他软件包。

9. 搜索可用的 Tap:

bash
brew tap

这个命令会列出所有已添加的 Tap。

10. 添加 Tap:

bash
brew tap <user>/<repo>

例如,要添加 homebrew/cask Tap,可以运行:

bash
brew tap homebrew/cask

这允许你安装更多的应用程序。

11. 删除 Tap:

bash
brew untap <user>/<repo>

例如,要删除 homebrew/cask Tap,可以运行:

bash
brew untap homebrew/cask

12. 诊断 Homebrew 问题:

bash
brew doctor

这个命令会检查你的 Homebrew 安装是否存在问题,并提供解决方案。

13.查看homebrew帮助
bash
brew help


bash
man brew

14. 显示formulae和Casks的过时信息

bash
brew outdated

四、Homebrew Cask:安装图形界面应用程序

Homebrew Cask 是 Homebrew 的一个扩展,专门用于安装和管理 macOS 上的图形界面应用程序(如 Chrome、Firefox、VS Code 等)。它与 Homebrew 的 Formula 类似,但 Cask 是用来描述如何安装和管理应用程序的。

常用命令:

  • 安装应用程序:

    bash
    brew install --cask <cask>

    例如,要安装 Visual Studio Code,可以运行:

    bash
    brew install --cask visual-studio-code

  • 卸载应用程序:

    bash
    brew uninstall --cask <cask>

    例如,要卸载 Visual Studio Code,可以运行:

    bash
    brew uninstall --cask visual-studio-code

  • 搜索应用程序:

    bash
    brew search --cask <keyword>

    例如,要搜索与 "video" 相关的应用程序,可以运行:

    bash
    brew search --cask video

  • 查看应用程序信息:

    bash
    brew info --cask <cask>

    例如:
    bash
    brew info --cask firefox

  • 列出所有通过cask安装的软件
    bash
    brew list --cask

注意:在较新版本的 Homebrew 中,--cask 选项可以省略。例如,brew install visual-studio-codebrew install --cask visual-studio-code 效果相同。

五、Homebrew 进阶技巧

1. 使用 Bottle 加速安装:

Homebrew 默认会尝试使用 Bottle(预编译的二进制包)来安装软件,这可以大大节省安装时间。如果由于某种原因无法使用 Bottle,Homebrew 会从源码编译安装,这可能会花费较长时间。

你可以通过设置环境变量 HOMEBREW_NO_BOTTLE=1 来强制 Homebrew 从源码编译安装,或者设置 HOMEBREW_BOTTLE_DOMAIN 来使用自定义的 Bottle 镜像源。

2. 使用不同的 Shell:

Homebrew 默认使用系统的默认 Shell。你可以通过设置环境变量 SHELL 来指定使用不同的 Shell。

3. 自定义 Homebrew 安装路径:

默认情况下,Homebrew 会将软件包安装在 /usr/local/Cellar(macOS)或 /home/linuxbrew/.linuxbrew/Cellar(Linux)。你可以通过设置环境变量 HOMEBREW_PREFIX 来自定义 Homebrew 的安装路径。

4. 创建自己的 Formula:

如果你需要的软件包不在 Homebrew 的官方软件库中,你可以创建自己的 Formula。这需要一些 Ruby 编程知识,但 Homebrew 提供了详细的文档和示例来帮助你完成这个任务。

5. 使用 Brewfile 管理依赖:

类似于 Python 的 requirements.txt 或 Node.js 的 package.json,你可以使用 Brewfile 来管理你的 Homebrew 依赖。Brewfile 是一个文本文件,列出了所有你需要安装的 Formula 和 Cask。

创建一个名为 Brewfile 的文件,并在其中添加以下内容:

tap "homebrew/cask"
brew "git"
brew "node"
cask "visual-studio-code"

然后,在包含 Brewfile 的目录中运行以下命令:

bash
brew bundle

Homebrew 会自动安装 Brewfile 中列出的所有软件包。

6. 固定软件包版本:

如果你需要固定某个软件包的版本,防止它被 brew upgrade 更新,可以使用 brew pin <formula> 命令。例如:

bash
brew pin git

这将阻止 Git 被更新。要取消固定,可以使用 brew unpin <formula> 命令:

bash
brew unpin git

六、常见问题解答

  1. 安装过程中出现错误怎么办?

    仔细阅读错误信息,通常错误信息会给出详细的提示。你可以尝试以下方法:

    • 确保你的系统满足 Homebrew 的安装要求。
    • 运行 brew doctor 来诊断问题。
    • 检查你的网络连接是否正常。
    • 更新 Xcode 命令行工具。
    • 在 Homebrew 的 GitHub 仓库中搜索类似的问题,或提交一个新的 issue。
  2. 如何切换 Homebrew 的镜像源?

    为了提高国内用户的访问速度,你可以切换到国内的 Homebrew 镜像源。以下是一些常用的镜像源:

    • 清华大学 TUNA 镜像源:
      替换core的源:
      bash
      git -C "$(brew --repo)" remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git

      替换homebrew-core的源:
      bash
      git -C "$(brew --repo homebrew/core)" remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git

      替换homebrew-cask的源(可选):
      bash
      git -C "$(brew --repo homebrew/cask)" remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-cask.git

      zsh用户:
      bash
      echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles' >> ~/.zshrc
      source ~/.zshrc

      bash用户:
      bash
      echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles' >> ~/.bash_profile
      source ~/.bash_profile

    • 中国科学技术大学 USTC 镜像源:

    替换core的源:

    ```bash
    git -C "$(brew --repo)" remote set-url origin https://mirrors.ustc.edu.cn/brew.git
    ```
    替换homebrew-core的源:
    ```bash
     git -C "$(brew --repo homebrew/core)" remote set-url origin https://mirrors.ustc.edu.cn/homebrew-core.git
    ```
    
    zsh用户:
    ```bash
    echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.ustc.edu.cn/homebrew-bottles' >> ~/.zshrc
    source ~/.zshrc
    ```
    bash用户:
    ```bash
      echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.ustc.edu.cn/homebrew-bottles' >> ~/.bash_profile
     source ~/.bash_profile
    ```
    
    • 阿里巴巴开源镜像站:
      替换core的源:

      bash
      git -C "$(brew --repo)" remote set-url origin https://mirrors.aliyun.com/homebrew/brew.git

    替换homebrew-core的源:

    ```bash
     git -C "$(brew --repo homebrew/core)" remote set-url origin https://mirrors.aliyun.com/homebrew/homebrew-core.git
    ```
    zsh用户:
    ```bash
     echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.aliyun.com/homebrew/homebrew-bottles' >> ~/.zshrc
    source ~/.zshrc
    ```
    
    bash用户:
     ```bash
     echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.aliyun.com/homebrew/homebrew-bottles' >> ~/.bash_profile
     source ~/.bash_profile
     ```
    
    • 恢复默认源
      bash
      git -C "$(brew --repo)" remote set-url origin https://github.com/Homebrew/brew.git
      git -C "$(brew --repo homebrew/core)" remote set-url origin https://github.com/Homebrew/homebrew-core
  3. brew installbrew cask install 有什么区别?

    brew install 用于安装命令行工具和库(Formula),而 brew cask install 用于安装图形界面应用程序(Cask)。在较新版本的 Homebrew 中,brew install 也可以用于安装 Cask,--cask 选项可以省略。

  4. 如何完全卸载 Homebrew?

    Homebrew 提供了一个卸载脚本,可以帮助你完全卸载 Homebrew 及其相关文件。在终端中运行以下命令:

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

    按照提示操作即可。

七、总结

Homebrew 是一款强大而易用的软件包管理器,可以极大地提高你在 macOS 和 Linux 上的工作效率。本文详细介绍了 Homebrew 的安装、使用、常用命令以及一些进阶技巧,希望能帮助你快速掌握这个工具。

掌握 Homebrew 只是你探索 macOS 和 Linux 世界的第一步。随着你对命令行的深入了解,你会发现更多有趣和实用的工具,让你的工作和生活更加便捷。

THE END