3分钟上手:Homebrew Formulae全攻略 — 从安装到高级管理

3分钟上手:Homebrew Formulae全攻略 — 从安装到高级管理

【免费下载链接】brew 🍺 The missing package manager for macOS (or Linux) 【免费下载链接】brew 项目地址: https://gitcode.com/GitHub_Trending/br/brew

你还在为找不到合适的命令行工具而发愁?还在手动编译安装软件时遇到各种依赖问题?本文将带你全面掌握Homebrew Formulae(软件包)的使用方法,从基础的安装卸载到高级的版本管理和自定义查询,让你轻松成为macOS/Linux系统的包管理大师。读完本文,你将能够:快速查找和安装所需软件、管理依赖关系、解决版本冲突、自定义软件安装选项,以及高效维护本地软件仓库。

什么是Formulae?

在Homebrew中,Formula(配方) 是用Ruby编写的软件包定义文件,它描述了如何从源代码构建和安装软件。每个Formula都包含软件的名称、版本、下载地址、依赖关系、编译选项和安装步骤等信息。Homebrew通过这些Formulae来自动化软件的安装和管理过程,让用户无需手动处理复杂的编译和依赖问题。

官方文档:docs/Formula-Cookbook.md

Homebrew关键术语解析

术语描述示例
Formula从源代码构建的Homebrew软件包定义/opt/homebrew/Library/Taps/homebrew/homebrew-core/Formula/f/foo.rb
Cask安装预编译二进制文件的软件包定义/opt/homebrew/Library/Taps/homebrew/homebrew-cask/Casks/b/bar.rb
Keg特定版本Formula的安装目录/opt/homebrew/Cellar/foo/0.1
Cellar存放所有Keg的目录/opt/homebrew/Cellar
Tap包含Formulae和Casks的Git仓库homebrew/core
Bottle预编译的Keg二进制包qt--6.5.1.ventura.bottle.tar.gz

基础操作:Formulae的安装与管理

查找Formulae

使用brew search命令可以快速查找可用的Formulae。例如,查找与"python"相关的软件包:

brew search python

如果需要更精确的搜索,可以结合grep命令:

brew search | grep python

安装Formulae

安装软件包是Homebrew最基本的功能。使用brew install命令 followed by 软件包名称即可:

brew install python

Homebrew会自动下载并安装最新版本的Python,同时处理所有依赖关系。如果需要安装特定版本,可以指定版本号:

brew install python@3.9

查看已安装的Formulae

要查看系统中已安装的所有Formulae,可以使用brew list命令:

brew list

如需查看某个特定软件包的详细信息,包括安装路径、依赖关系和配置选项等,可以使用brew info命令:

brew info python

升级和卸载Formulae

升级所有已安装的Formulae:

brew update && brew upgrade

升级特定软件包:

brew upgrade python

卸载软件包:

brew uninstall python

高级管理:版本控制与依赖处理

固定软件版本

有时候,你可能需要保持某个软件的特定版本,而不随brew upgrade命令一起更新。这时可以使用brew pin命令:

brew pin python

取消固定版本:

brew unpin python

处理依赖关系

Homebrew会自动处理软件包之间的依赖关系,但有时你可能需要查看或手动管理这些依赖。使用brew deps命令可以查看某个软件包的依赖树:

brew deps --tree python

如果需要查看哪些软件包依赖于某个特定的Formula,可以使用brew uses命令:

brew uses --installed python

解决版本冲突

当两个Formulae提供相同的文件或二进制时,可能会发生冲突。Homebrew提供了conflicts_with方法来处理这种情况。例如,某个Formulae可以声明与其他软件包的冲突:

conflicts_with "blueduck", because: "yellowduck also ships a duck binary"

官方文档:docs/Formula-Cookbook.md

自定义查询:探索Formulae的更多可能性

使用JSON输出进行高级查询

Homebrew提供了brew info --json命令,可以以JSON格式输出Formulae的详细信息,便于进行高级查询和分析。例如,查找所有已安装的 keg-only 软件包:

brew info --json=v1 --installed | jq "map(select(.keg_only == true) | .name)"

这条命令会列出所有被标记为keg-only的已安装软件包。keg-only表示这些软件包不会被链接到系统路径,以避免与系统自带的软件冲突。

官方文档:docs/Querying-Brew.md

查找可升级的Formulae

结合brew outdatedjq,可以编写更复杂的查询,例如找出所有需要升级的Formulae及其当前版本:

brew outdated --json | jq '.[] | {name: .name, current_version: .installed[0].version, latest_version: .latest}'

使用Taps扩展Formulae来源

Homebrew的核心软件仓库(homebrew/core)包含了大多数常用软件,但有时你可能需要安装第三方或自定义的Formulae。这时可以使用Taps功能来扩展Homebrew的软件源。

查看已添加的Taps

brew tap

默认情况下,Homebrew会包含homebrew/corehomebrew/cask等官方Taps。

添加第三方Taps

要添加一个新的Tap,使用brew tap命令 followed by 仓库所有者和仓库名称:

brew tap username/repo

例如,添加Homebrew的官方游戏仓库:

brew tap homebrew/games

安装Tap中的Formulae

添加Tap后,就可以像安装核心仓库中的软件包一样安装该Tap提供的Formulae了:

brew install username/repo/formula-name

如果Tap中的Formula与核心仓库中的Formula重名,需要使用完整的名称来指定安装来源。

官方文档:docs/Taps.md

创建和编辑自定义Formulae

Homebrew不仅可以安装现成的Formulae,还允许你创建和编辑自己的Formulae,以满足特定需求。

创建新Formulae

使用brew create命令可以快速创建一个新的Formula文件。只需要提供软件的下载URL:

brew create https://example.com/foo-1.0.tar.gz

Homebrew会自动生成一个基本的Formula模板,并在编辑器中打开它。你可以根据需要修改这个文件,添加依赖关系、编译选项等。

编辑现有Formulae

要编辑已安装的Formula,可以使用brew edit命令:

brew edit python

这会在默认编辑器中打开Python的Formula文件。修改后保存,下次运行brew install python时,Homebrew会使用你修改后的Formula来安装软件。

注意:在编辑核心Formulae之前,需要先设置HOMEBREW_NO_INSTALL_FROM_API=1环境变量,并确保已添加homebrew/core Tap。详细步骤请参考FAQ

测试自定义Formulae

创建或修改Formula后,应该进行测试以确保其能正确安装和运行:

brew install --build-from-source --verbose --debug foo

--build-from-source确保从源代码构建,--verbose显示详细输出,--debug在出错时进入调试模式。

官方文档:docs/Formula-Cookbook.md

总结与进阶

通过本文的介绍,你已经掌握了Homebrew Formulae的基本使用和高级管理技巧。从查找安装软件包,到管理依赖关系,再到创建自定义Formulae和使用Taps扩展软件源,Homebrew提供了一套完整的工具链,帮助你高效管理macOS/Linux系统上的命令行软件。

要进一步提升你的Homebrew技能,可以探索以下高级主题:

  1. Formulae开发:深入学习Ruby语法,编写更复杂的Formulae,处理特殊的编译需求和依赖关系。
  2. Bottle创建:为自己的Formulae创建预编译的Bottle,加快安装速度。
  3. Tap维护:创建和维护自己的Tap仓库,与社区共享你的Formulae。
  4. 自动化脚本:结合brew info --json和脚本语言(如Python、Ruby),编写自定义的软件管理工具。

Homebrew的强大之处在于其灵活性和可扩展性。无论是普通用户还是开发者,都能通过Homebrew轻松管理系统软件,提高工作效率。开始探索吧,让Homebrew成为你日常工作中不可或缺的得力助手!

官方文档:docs/README.md

【免费下载链接】brew 🍺 The missing package manager for macOS (or Linux) 【免费下载链接】brew 项目地址: https://gitcode.com/GitHub_Trending/br/brew

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值