Homebrew 包管理简介
Homebrew 是 macOS(和 Linux)的一个包管理器,它简化了在 macOS 操作系统上安装、管理和卸载软件包的过程。它是由 Max Howell 创建的,并且是一个开源项目。Homebrew 安装的软件包被称为“formulae”。 Homebrew 通过 tap 方式定义源,官方默认提供了 brew、homebrew-core 、homebrew-cask 、homebrew-bottles 四个常用的源(仓库),用户也可以通过 tap 定义自己的源。 通过使用简单的命令行指令,用户可以快速地安装他们需要的软件,无需手动下载、配置和安装。Homebrew 的目标是帮助用户轻松管理在 Unix 系统上通常较为复杂的软件安装过程。
Homebrew 的主要特点包括:
- 易用性:通过简单的命令,如
brew install package_name
,即可安装需要的软件包。 - 大量软件包:Homebrew 拥有一个庞大的公式库,涵盖了从命令行工具到图形界面应用程序的广泛软件。
- 依赖性管理:当安装某个软件包时,Homebrew 会自动处理并安装所需的依赖项。
- 更新和卸载:可以通过
brew upgrade package_name
来更新软件包,或使用brew uninstall package_name
来卸载。 - 社区驱动:Homebrew 拥有活跃的社区,不断有新的 formulae 被添加和更新。
- 扩展性:用户可以创建自己的 Homebrew tap(第三方库),这允许他们管理并安装非官方的 formulae。
Homebrew 源
在使用 brew install
安装软件的过程中,经常会遇到安装缓慢、卡死的情况,这大多是由于 Homebrew 的默认安装源位于国外,国内访问速度慢造成的,解决这个问题的方法是将安装源替换为国内镜像,常用的国内镜像包括:阿里云镜像、清华镜像(木子在用) 、中科大镜像等。
Homebrew 的四个主要源 brew
, homebrew-core
, homebrew-cask
, 和 homebrew-bottles
各自有不同的作用和功能:
-
brew:
- 这是 Homebrew 的核心代码仓库,也就是 Homebrew 的本体,包含了 Homebrew 的核心脚本、命令行工具和内部逻辑。当你通过
git
更新 Homebrew 或者通过brew update
命令更新时,实际上是在更新这个仓库的内容。 - 默认地址: https://github.com/Homebrew/brew.git
- 这是 Homebrew 的核心代码仓库,也就是 Homebrew 的本体,包含了 Homebrew 的核心脚本、命令行工具和内部逻辑。当你通过
-
homebrew-core:
- 这个仓库包含了 Homebrew 的核心 formulae(公式)。Formulae 是用 Ruby 语言编写的脚本,它们定义了如何安装某个软件包(例如它的源代码在哪里,如何编译等)。
homebrew-core
是 Homebrew 官方支持的 formulae 的集合,通常是用户需要的大部分软件。 - 默认地址: https://github.com/Homebrew/homebrew-core.git
- 这个仓库包含了 Homebrew 的核心 formulae(公式)。Formulae 是用 Ruby 语言编写的脚本,它们定义了如何安装某个软件包(例如它的源代码在哪里,如何编译等)。
-
homebrew-cask:
- Homebrew Cask 是 Homebrew 的一个扩展,专门用于管理 macOS 的图形界面应用程序。Cask 允许用户用命令行的方式安装、升级和管理 macOS 应用程序。与 formulae 类似,cask 是一系列的脚本,但它们专注于安装
.app
类型的应用程序,而不是从源代码编译。homebrew-cask
仓库包含了数以千计的 cask 脚本。 - 默认地址: https://github.com/Homebrew/homebrew-cask.git
- Homebrew Cask 是 Homebrew 的一个扩展,专门用于管理 macOS 的图形界面应用程序。Cask 允许用户用命令行的方式安装、升级和管理 macOS 应用程序。与 formulae 类似,cask 是一系列的脚本,但它们专注于安装
-
homebrew-bottles:
- 当 Homebrew 安装软件时,它可以选择从源码编译软件,也可以下载预编译的二进制包(称为 bottles)。
homebrew-bottles
是一个存储库,它包含了预编译的二进制包。使用 bottles 可以大大加快软件的安装速度,因为用户不需要在本地机器上编译软件。Bottles 可以包含特定于操作系统版本(macOS)的优化。 - 默认地址: https://bintray.com/homebrew/bottles
- 当 Homebrew 安装软件时,它可以选择从源码编译软件,也可以下载预编译的二进制包(称为 bottles)。
总结来说,brew
是 Homebrew 本身的代码,homebrew-core
和 homebrew-cask
是用户可以通过 Homebrew 安装的软件包的脚本,而 homebrew-bottles
是已经编译好的软件包的集合。
安装 Homebrew
# 首次安装,需要先安装 Command Line Tools (CLT) for Xcode
xcode-select --install
# 首次安装,导入环境变量
export HOMEBREW_INSTALL_FROM_API=1
export HOMEBREW_API_DOMAIN="https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles/api"
export HOMEBREW_BOTTLE_DOMAIN="https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles"
export HOMEBREW_BREW_GIT_REMOTE="https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git"
export HOMEBREW_CORE_GIT_REMOTE="https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git"
# 直接使用清华源提供的安装脚本安装 Homebrew,官方提供的安装脚本需要从 github 下载
git clone --depth=1 https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/install.git brew-install
/bin/bash brew-install/install.sh
rm -rf brew-install
# 更新源
❯ brew update
# 查看 brew 配置
❯ brew config
HOMEBREW_VERSION: 4.2.11
ORIGIN: https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git
HEAD: d7d4c8266210c024b93a450a7d357cec0b46a1bb
Last commit: 23 hours ago
Core tap JSON: 01 Jan 07:43 UTC
Core cask tap JSON: 01 Jan 08:27 UTC
HOMEBREW_PREFIX: /usr/local
HOMEBREW_CASK_OPTS: []
HOMEBREW_MAKE_JOBS: 8
Homebrew Ruby: 3.1.4 => /usr/local/Homebrew/Library/Homebrew/vendor/portable-ruby/3.1.4/bin/ruby
CPU: octa-core 64-bit kabylake
Clang: 15.0.0 build 1500
Git: 2.39.0 => /usr/local/bin/git
Curl: 8.4.0 => /usr/bin/curl
macOS: 14.3.1-x86_64
CLT: 15.1.0.0.1.1700200546
Xcode: N/A
# 配置永久有效,因为木子用的是 zsh,所以直接放在 ~/.zshrc 中,也可能放在 /etc/profile 或 ~/.profile 等文件中
echo 'export HOMEBREW_API_DOMAIN="https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles/api"' >> ~/.zshrc
echo 'export HOMEBREW_BOTTLE_DOMAIN="https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles"' >> ~/.zshrc
echo 'export HOMEBREW_BREW_GIT_REMOTE="https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git"' >> ~/.zshrc
echo 'export HOMEBREW_CORE_GIT_REMOTE="https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git"' >> ~/.zshrc
source ~/.zshrc
brew 常用命令
brew
命令很多,可以通过 brew --help
查看帮忙,这里简单罗列一些常用的。
brew update # 同步远程最新更新情况,对本机已经安装并有更新的软件用*标明
brew install 包名称 # 安装软件包
brew uninstall 包名称 # 卸载软件包
brew search 包名称 # 搜索软件包
brew upgrade 包名称 # 更新单个软件包
brew info 包名称 # 查看软件包信息
brew outdated # 查看已安装的哪些软件包需要更新
brew cleanup 包名称 # 清理所有已安装软件包的历史老版本
brew list # 列出软件包
这里以安装 k9s
为例:
# 安装 k9s
❯ brew install k9s
# 验证是否安装成功
❯ brew list | grep k9s
k9s
参考文献
[1] homebrew安装包下载_开源镜像站-阿里云
[2] Homebrew 源使用帮助 — USTC Mirror Help 文档
[3] macOS(或 Linux)缺失的软件包的管理器 –Homebrew
[4] homebrew | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror