第一节:写在前面

Homebrew 是 macOS 平台上最常用也是最好用的一个包管理工具,使用它给 Mac 下载、安装、卸载软件时,基本上都只需要一条命令,如果你是一位使用Mac的开发者,还没有安装Homebrew的话,那就太不应该了!

这里我要先声明两点:

  • 英特尔芯片的 Mac 安装 Homebrew 是很简单的,默认安装位置是/usr/local,我这里就不再赘述了;

  • 苹果芯片的 Mac 刚出来的时候,安装 Homebrew 是比较复杂的。第一,是因为默认安装的目录跟 英特尔芯片的电脑不同,默认安装的位置是/opt/homebrew;第二,是需要处理一些文件夹的权限问题,但随着 Homebrew 的版本更新,虽然默认的安装位置没变,但是截止到我写这篇博文的时间,也就是 2023 年 9 月 8 日,已经不需要再额外处理权限问题了!

这篇博文详细记录了如何在苹果芯片的 macOS 上安装和使用支持 ARM 架构的 Homebrew!

第二节:检测环境

在安装 Homebrew 之前,首先查看目录/opt/下面没有名为homebrew的子目录,我这是一台新电脑,显然没有:

其次,还需要在终端中执行命令brew --version来检测是否存在 Homebrew,当然也不会有的:

综合以上两点,说明当前环境中并没有安装 Homebrew!就算不是新的电脑,假如满足这两个条件,我们也可以认为当前系统中不存在 Homebrew!

PS:在安装软件之前检测本机是否已经安装了要安装的软件,这是一个必要的操作,也是一个好习惯!

第三节:安装条件

打开Homebrew的官网,首页赫然展示的就是安装 Homebrew 的命令:

其实,只需要将这里的命令复制到终端中执行,即可完成安装。但是在安装之前,点击上图中的这里,可见:

这是安装 Homebrew 时,macOS 需要满足的条件:

  • 搭载 Intel 芯片或苹果芯片的 macOS(废话);
  • macOS 的版本至少要在 11 以上;
  • 必须提前安装命令行开发者工具(CLT);
  • 必须使用Bourne-again shell(Bash)终端来安装,Mac 是自带 bash 终端的,即/usr/bin/bash

其中有这么一条:必须提前安装命令行开发者工具!命令行开发者工具是将Mac作为开发工具的第一步操作,我不信还有人的Mac没有安装 CLT!!!

第四节:安装程序

在官网上,安装条件的第四条说明了,必须使用 bash,使用其他常规的 shell 将会失败:

友情提示:较新版本的 macOS 终端默认使用的是 zsh(包括我这里的 14.0),我试过使用 zsh 安装,结果是也能安装成功,我觉得是 Homebrew 的官网上信息很久没更新了,因为较老版本的 macOS 的终端默认是使用 bash 的,现在已经默认使用 zsh 了!但是为了保险起见,我还是使用/bin/bash来执行安装的命令!

打开访达,切换到/bin,右击bash选择使用终端打开,再把官网上的安装命令贴进去:

按下回车需要输入开机密码:

输入密码并回车(注意输入密码的时候,键入的密码并不会出现在终端中,你只管正确输入即可)后,开始安装:

此时键入回车键,继续安装,直到最后安装成功:

从这里可以看出来,Homebrew安装成功了!查看目录/opt中的内容,可以看到安装的 Homebrew:

第五节:配置环境

5.1:官方推荐

安装 Homebrew 前后,macOS 的系统 PATH 变量没有任何变化:

安装程序的最后给出提示,安装的 Homebrew 并不在我们的环境变量中,并且还给出了如何配置环境变量的方法:

将推荐中的两条命令复制下来依次拿到终端中去执行就能配置环境变量了,之后会在用户目录下生成名为.zprofile的配置文件,文件内容为:

1
eval "$(/opt/homebrew/bin/brew shellenv)"

然后使用命令echo $PATH查看系统的 PATH 变量的话,会再原本 PATH 变量的最前面,添加如下内容:

1
/opt/homebrew/bin:/opt/homebrew/sbin:

说明:文件.zprofile中的内容就是把/opt/homebrew/bin/opt/homebrew/sbin加到系统 PATH 里面了!

5.2:我的推荐

前面的方式是 Homebrew 的推荐方式,除此之外,我们还可以按照自己习惯的方式来配置环境变量!

打开终端,在用户目录下找到(或新建)名为.zprofile的文件:

1
vim .zprofile

然后将下面的内容粘贴进去(假如文件中已经存在其他内容,就将下面的内容追加在文件的最后):

1
2
3
# Setting PATH for Homebrew
PATH="/opt/homebrew/bin:/opt/homebrew/sbin:${PATH}"
export PATH

这种方式跟前面的方式一样,重启终端后查看 PATH 变量,发现同样会:

第六节:检测结果

经过上面的三步操作以后,按道理讲 Homebrew 就安装完成了,重新打开终端,直接执行命令:

1
brew --version

假如此时能正确输出 Homebrew 的版本号,就表示安装和配置成功了:

第七节:使用细节

友情提示:以下内容是 2023-10-21 日更新!

这一节的主要内容是分析 Homebrew 的使用细节,比如使用brew install 软件包来安装软件时,软件被安装到了系统的什么位置,以及创建了什么样的软连接,再比如使用brew uninstall 软件包来卸载软件时的细节!

7.1:软件安装

在 Homebrew 的官网上有这么一段描述:

也就是说,Homebrew 会将软件安装到“独立目录”,通过配图可知,所谓的独立目录就是/opt/homebrew/Cellar

我们可以做一个实验!打开终端,执行命令:

1
brew install tree

执行的情况为:

通过比对系统前后的文件,发现安装命令做了如下两件事。

第一:软件包被安装到/opt/homebrew/Cella目录中了(这个目录原本是空的);

第二:在/opt/homebrew/bin下面创建了一个名为tree的软连接,链接至安装的软件包中的真实命令

也就是说:使用 Homebrew 安装软件时,只会影响 Homebrew 自己的安装目录,不会影响到系统中其他任何目录!正是因为我们在配置 Homebrew 时将目录/opt/homebrew/bin配置到系统的 PATH 环境变量中了,所以此时我们就可以使用其中安装的命令了!

特别注意:假如使用 Homebrew 安装系统中/usr/bin中原本就存在的命令时,会覆盖原本的命令,不是说修改了原本命令的链接,而是因为 Homebrew 在系统环境变量 PATH 中的位置/opt/homebrew/bin/usr/bin之前!同时,因为它也在/usr/local/bin前面,也会覆盖 Nodejs 安装的命令!!!

7.2:软件卸载

使用命令brew uninstall 软件包来卸载软件的时候,就会将安装软件时做的那两件事“复原”,这里就不赘述了!

~~

~~

~~