homebrew详解

前言

Homebrew,作为一款Mac下非官方(但是市面上没有比它更好的工具)的包管理工具,打算专门花点时间了解一下它。

简介

官方自己给自己的定义是:

The Missing Package Manager for macOS (or Linux).

目前除了Mac,Linux上也可以通过它安装管理软件包。

优点

相信用过Linux的同学,或多或少都有这样子的经历:

  • 我忘了我当时把软件下载到哪个地方了……
  • 我想彻底删除某个软件,但是我不确定这个软件具体都安装到哪些目录下面了
  • 依赖怎么解决

当然Linux下一般都会有对应的包管理程序,比如apt之类,而macOS没有默认的包管理器,homebrew就是这么一款包管理器。

名词

homebrew使用了一些比较特别名词,导致了有一些概念反而不太好理解,但是理解了之后你会发现,其实就是一个酿酒的过程,还是很形象的。

  • brew:酿造。所以homebrew如果直译的话可以翻译成家庭自制,我个人觉得作者的意思就是自己写的一个包管理器的意思吧
  • cask:木桶。用木桶来指代Mac的桌面程序。
  • cellar:地窖。地窖当然是用来保存安装的程序的地方喽。
  • keg:桶。这里的keg应该是那种比较小的桶
  • bottle:小瓶子。预先编译好的包,直接下载使用即可,无需编译,目前大部分都是这类
  • tap:水龙头。酿酒自然是需要水源的,而水龙头就象征着“源”
  • formula:配方。安装包的描述文件

简单使用

以mysql为例,一般需要用brew进行软件管理的话,我个人是会首先进行搜索,brew search mysql,看看结果:

image-20210124192037886

可以看到,有两大类结果,分别是Formulae和Casks(对应了homebrew/core和homebrew/cask),简单来说一个是命令行工具,另外一个是图形化工具;然后brew还贴心帮你把已经安装好的打上了勾。

然后就是根据自己的需要进行安装了:brew install mysql@5.7,如果是图形化工具,则我一般还会到这个网站上去看一看,进行确认。

还有一些比较常用的功能,这里稍微总结下:

  • 安装:brew install xxx

  • 卸载:brew uninstall xxx

  • 重新安装:brew reinstall xxx

  • 显示可以升级的包:brew outdated

  • 升级某个包:brew upgrade xxx

  • 列出所有的包:brew list

  • 列出某个包的信息:brew info xxx

基本上上述的命令就可以覆盖80%的日常使用了,如果希望了解更多,可以查阅官方文档或者是brew commands