Homebrew¶
Homebrew 由开发者 Max Howell 开发,并基于 BSD 开源,是一个非常方便的包管理器工具。在早期, Homebrew 仅有 macOS 的版本,后续随着用户的增多,Homebrew 还提供了 Linux 的版本,帮助开发者在 Linux 同样使用 Homebrew 来配置环境。
基础¶
几个核心概念:
- formula (e) 安装包的描述文件, formulae 为复数
- cellar 安装好后所在的目录
- keg 具体某个包所在的目录,keg 是 cellar 的子目录
- bottle 预先编译好的包,不需要现场下载编译源码,速度会快很多;官方库中的包大多都是通过 bottle 方式安装
- tap 下载源,可以类比于 Linux 下的包管理器 repository
- cask 安装 macOS native 应用的扩展,你也可以理解为有图形化界面的应用。
- bundle 描述 Homebrew 依赖的扩展
安装¶
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
M1 Mac 安装
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"
安装卸载软件¶
brew --version
brew -v #显示brew版本信息
brew install <formula> #安装指定软件
brew uninstall formula #卸载指定软件
brew list #示所有的已安装的软件
brew search text #搜索本地远程仓库的软件,已安装会显示绿色的勾,在搜索时应当遵循宁可少字,不能错字的原则来搜索。
brew search /text/ #使用正则表达式搜软件
#检查 Hombrew 环境
#如果你的 Hombrew 没有办法正常的工作,你可以执行 brew doctor 来开启 Homebrew 自带的检查,从而确认有哪些问题,并进行修复。
brew doctor
升级¶
brew update #自动升级homebrew(从github下载最新版本)
brew outdated #检测已经过时的软件
brew upgrade #升级所有已过时的软件,即列出的以过时软件
brew upgrade <formula> #升级指定的软件
brew pin <formula> #禁止指定软件升级
brew unpin <formula> #解锁禁止升级
brew upgrade --all #升级所有的软件包,包括未清理干净的旧版本的包
清理相关¶
brew deps --installed --tree > tree.txt # 查看依赖关系
brew cleanup -n #列出需要清理的内容
brew cleanup <formula> #清理指定的软件过时包
brew cleanup #清理所有的过时软件
brew uninstall <formula> #卸载指定软件
brew uninstall <fromula> --force #彻底卸载指定软件,包括旧版本
服務¶
#显示安装的服务:
brew services list
#安装服务启动、停止、重启:
brew services start/stop/restart <serverName>
其他¶
通过brew安装的文件会自动设置环境变量,所以不用担心命令行不能启动的问题。 比如安装好了gradle,即可运行gradle -v
brew info $FORMULA # 显示某个包的信息
brew info # 显示安装了包数量,文件数量,和总占用空间
常用 tap¶
在使用 homebrew 时,我们一般会添加几个常用的 tap ,来确保我们有足够的软件来安装。
- Caskroom Caskroom 是 Homebrew 下一个非常出名的 tap ,有了 caskroom,我们就可以安装一些有图形化界面的软件了,比如 VSCode、Typora 等软件。
使用起来也非常简单,最新版 Homebrew 中,你可以直接使用 brew cask install [软件名] 来安装特定的软件,homebrew 会自动安装 Caskroom。
- homebrew-cask-fonts 程序员难免要安装一些代码字体,这样才能更好的写代码,Homebrew 也提供了方便我们安装字体的 tap 。
在使用时,你需要先添加对应的 tap ,然后执行安装即可了,比如我们要安装 source code pro ,只需要执行如下命令。
brew tap homebrew/cask-fonts
brew cask install font-source-code-pro
Cask¶
Cask 是什么?
其实 Homebrew Cask 是 Homebrew 附带的、用来安装和管理 GUI 应用软件的工具,也就是通常有一个窗口、一些按钮的这样的应用。而 Homebrew 是用于和它本身一样在终端使用的命令行软件的。我们只需要知道,除了在终端使用的软件,其他的软件都用 Cask 来管理就对了。
换源¶
切换国内的镜像源¶
使用中科大的镜像¶
cd "$(brew --repo)"
git remote set-url origin git://mirrors.ustc.edu.cn/brew.git
cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core"
git remote set-url origin git://mirrors.ustc.edu.cn/homebrew-core.git
使用清华大学的镜像¶
git -C "$(brew --repo)" remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git
git -C "$(brew --repo homebrew/core)" remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git
使用 Brewfile 完成环境迁移¶
你首先需要在之前的电脑中执行 brew bundle dump 来完成当前环境的导出,导出完成后,你会得到一个 Brewfile。
然后将 Brewfile 复制到新的电脑中,并执行 brew bundle 来开始安装的过程。
辅助软件¶
除了命令行,还有两款软件可以帮助我们更好的使用 Homebrew ,他们分别是 Cakebrew 和 launchrocket。
Cakebrew¶
Cakebrew 是 Homebrew 的 GUI 管理器,在 Cakebrew 中,你可以看到当前所有已经安装的软件,并可以在 Caskbrew 中对其他软件执行升级等操作。
你只需要执行 brew install cakebrew 就可以完成 Cakebrew 的安装。
安装完成后,在 LaunchPad 中打开即可。
遇到的问题¶
Updating Homebrew… 长时间不动解决方法
# 替换brew.git:
cd "$(brew --repo)"
git remote set-url origin https://mirrors.ustc.edu.cn/brew.git
# 替换homebrew-core.git:
cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core"
git remote set-url origin https://mirrors.ustc.edu.cn/homebrew-core.git
# 重置brew.git:
cd "$(brew --repo)"
git remote set-url origin https://github.com/Homebrew/brew.git
# 重置homebrew-core.git:
cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core"
git remote set-url origin https://github.com/Homebrew/homebrew-core.git
或者你有代理的开启,如 Surge 开启增强模式就可以正常安装 Homebrew。
使用brew update出现Error Error: homebrew-core is a shallow clone. To
brew update, first run: git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core fetch --unshallow This restriction has been made on GitHub's request because updating shallow clones is an extremely expensive operation due to the tree layout ......
# 解决方案
rm -rf /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core
brew update
Homebrew软件包¶
1.Wget是一个命令行工具,可以通过HTTP,HTTPS,FTP和FTPS下载文件。是一个非命令行交互工具,可以在bash脚本,cron作业和终端中使用。brew install wget
2.Htop是一种顶级替代方案,它可以通过终端提供有关CPU使用率,可用内存,系统正常运行时间,运行服务以及终止正在运行的进程的能力的附加信息。brew install htop 使用:sudo htop
3.安装smartmontools查看硬盘的读写数据量 brew install smartmontools ; smartctl -a /dev/disk1