环境变量
系统在加载 ~/.zshrc(macOS Catalina 之前是 ~/.bash_profile)之前还会加载:
- /etc/profile
- /etc/paths(系统默认指定的一系列- PATH)
使用命令 vi /etc/paths 查看,内容如下:
| 1 | /usr/local/bin | 
输入 echo $PATH 可以查看当前的 PATH,会显示 /usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin(最后一个暂不知从哪里加载),可以看到,系统默认就是按照这样的顺序依次从这几个目录中读取的,也就是说,/usr/local/bin 目前是系统最优先读取的路径。
如果在 ~/.zshrc 设置就会优先从该文件的 PATH 加载,因为 ~/.zshrc 是后被系统加载的。
Homebrew 原理
macOS 自带的软件默认是放在 /usr/bin 路径下的,如在该目录可以找到系统自带的 git、gem 等。而 /usr/bin 路径在系统的读取顺序上是低于 /usr/local/bin 路径的。
Homebrew 就是利用了系统更优先读取 /usr/local/bin 的特点,先把包安装到同路径的 Cellar 文件夹下,然后使用软链接的方式,在 bin 文件夹下创建软链接,这样系统就可以优先找到 brew 安装的包了。
Homebrew 安装
安装 Homebrew:
| 1 | $ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)" | 
它是使用系统自带的 ruby 进行安装的。
使用 brew 去可以安装 python、git、java 等等。虽然系统都默认提供了这些,但是版本往往不是最新的,我们也不建议使用 sudo 去更新修改系统的内容。于是完全可以使用 brew 去重新安装维护一套,更新也更方便更安全。这样基本就可以不再使用系统默认提供的一些包了。
安装某些软件时候,处于避免冲突的考虑,brew 不会自动在 /usr/local/bin/ 下创建软链接(如 ruby)。解决方法有两种:一是在 ~/.bash_profile 下为新安装的添加环境变量;二是手动在 /usr/local/bin/ 下创建软链接(推荐),如输入命令 ln -s /usr/local/Cellar/ruby/2.6.3/bin/ruby /usr/local/bin/ruby,就可以把已经使用 brew 安装好的 ruby 在/usr/local/bin/ 下创建软链接。
Homebrew 使用
常用命令:
| 1 | $ brew list // 安装的软件列表 | 
避免 Homebrew 自动更新:在 ~/.zshrc 文件中写入 export HOMEBREW_NO_AUTO_UPDATE=true。
安装 homebrew-cask-upgrade 方便 cask 应用更新:
| 1 | $ brew tap buo/cask-upgrade // 安装 |