Homebrew是一款Mac OS平台下的软件包管理工具,拥有安装、卸载、更新、查看、搜索等很多实用的功能。简单的一条指令,就可以实现包管理,而不用你关心各种依赖和文件路径的情况,十分方便快捷。目前支持macOS和Linux系统。主要有四个部分组成: brew
、homebrew-core
、homebrew-cask
、homebrew-bottles
。
安装和卸载
bash
// 安装
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
// 卸载
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/uninstall.sh)"
// 更新brew本身
brew update
常用概念
Formula
,是一个Ruby脚本,包含了软件包的描述、下载源、依赖项、编译和安装指令。通过formula,Homebrew知道如何获取、编译和安装一个特定的软件包Bottle
,是根据Formula
预编译好的二进制软件包。使用Bottle
,用户可以跳过源代码编译的步骤,直接安装已经编译好的二进制文件,这样可以大大加快安装速度,减少资源消耗。Homebrew
会自动在Bottle
和Formula
中判断。并且优先使用Bottle
Cask
,是Homebrew的一个扩展,专门用于安装和管理macOS的图形界面应用程序和大型二进制文件。Cask
定义了如何下载、安装和管理这些应用程序,它主要针对那些通常通过dmg、pkg或zip文件分发的软件。需要明确使用---cask
指令来管理Cask
Tap
,Tap可以看做是Homebrew的扩展仓库中心,社区或用户通过Tap创建额外的仓库中心,方便访问到官方仓库之外的软件包。
这里的四个概念主要借鉴了酿酒brew
的步骤流程,可以从酿酒的角度来理解:
Formula(配方)
,在酿酒过程中,酿酒需要遵循特定的配方和步骤来酿造,在Homebrew
中就是对应一个特定的脚本,根据这个脚本获取、编译、安装特定的软件包。Bottle(瓶)
,酿酒完成后,酒会被装入瓶子中以便存储和消费。在Homebrew
中就是对应一个编译好的二进制包,可以直接安装Cask(桶)
,酿酒中用桶来存储和陈酿酒类产品的大型容器,在Homebrew
中就是对应的管理大型二进制文件和图形界面应用程序。Tap(水龙头)
,桶中的酒通过水龙头流出,通过添加水龙头就可以多个流出开关。在Homebrew
中通过tap
来控制仓库中心,添加一个tap
,就多一个仓库中心。
常用命令
安装软件包
bash
brew install <软件包名>
# 例如,安装wget:
brew install wget
卸载软件包
bash
brew uninstall <软件包名>
更新软件
bash
# 更新Homebrew本身
brew update
# 更新所有已安装的软件包
brew upgrade
# 更新指定的软件包
brew upgrade <软件包名>
查看已安装的软件包
bash
brew list
搜索软件包
bash
brew search <关键词>
查看软件包信息
bash
brew info <软件包名>
清理不再需要的文件
bash
# 会自动删除无用文件,释放空间
brew cleanup
显示Homebrew的系统诊断信息
bash
brew doctor
列出过时的软件包
bash
brew outdated
导出和导入已安装的软件包列表
bash
# 导出已安装的软件包列表
brew list --formula > Brewfile
# 使用Brewfile安装已导出的软件包:
brew install $(cat Brewfile)
Homebrew服务
Homebrew Services可以用于管理作为macOS服务运行的软件包,比如nginx、jenkins、redis等服务。
bash
# 启动服务:
brew services start <服务名>
# 停止服务:
brew services stop <服务名>
# 重启服务
brew services restart <服务名>
# 查看服务状态
brew services list
Cask相关命令
Cask相关命令的核心是需要带上----cask
。
bash
# 安装Cask应用
brew install --cask <应用名>
# 卸载Cask应用
brew uninstall --cask <应用名>
# 查看已安装的Cask应用
brew list --cask
# 搜索Cask应用
brew search --cask <关键词>
# 更新所有Cask应用
brew upgrade --cask
# 更新指定Cask应用
brew upgrade --cask <应用名>
tap相关命令
bash
# 查看当前安装的已有仓库
brew tap
# 添加仓库
brew tap <user/repo>
# 移除仓库
brew untap <user/repo>