本文使用 Zhihu On VSCode 创作并发布
Homebrew 简介
相比于 Windows,MacOS 的软件管理在大多数时候都相对简单,解压安装即可,而且安装路径都统一在Applications
文件夹下。但涉及到一些含有依赖(dependency)的开发软件,如 MySQL 等,有时就会麻烦很多,加之 MacOS 长期受人诟病的窗口管理,一旦文件夹层级过多,操作起来分成不方便。Homebrew 是一款 MacOS 平台下的包管理工具,拥有安装、卸载、更新、查看、搜索等诸多实用的功能。简单的一条命令,就可以实现包管理,自动处理相应依赖,所有的文件都会被统一安放在几个指定的文件夹里,几乎不用额外关心。
更重要的是 Homebrew 同样适用于 Linux,换句话说,在 Windows Subsystem Linux(WSL)中,同样可以使用 Homebrew。当然,有人会说,使用 Ubuntu 原生的 apt-get 非常方便。各有所爱吧,我个人觉得 brew 的更为方便,不仅可以管理软件,还可以管理服务,而且不用经常因为管理员权限敲密码,更重要的是命令简洁统一。比如apt-get install
是安装,卸载却变成了apt-get remove
,而不是apt-get uninstall
,反直觉,不爱了。
详细介绍,可前往Homebrew 官网brew.sh
Homebrew 的安装
Homebrew 需要在 MacOS 上预先安装 Xcode 命令行工具。
xcode-select --install
远程安装
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
卸载方法类似:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"
本地安装
如果发现因为"墙"的原因连接不上,如果发现因为"墙"的原因连接不上,
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"
也可以使用国内镜像采用如下步骤进行本地安装:
# 下载源到本地
curl -fsSL https:/raw.githubusercontent.com/Homebrew/install/master/install >> brew_install
# 显修改镜像源
vi brew_install
打开 /usr/bin/ruby/brew_install 文件,进行如下修改:
BREW_REPO = "https:/mirrors.tuna.tsinghua.edu.cn/brew.git".freeze
CORE_TAP_REPO = "https:/mirrors.tuna.tsinghua.edu.cn/homebrew-core.git".freeze
修改完毕,返回系统环境,安装
/usr/bin/ruby brew_install
镜像
如果速度实在太慢,可以考虑使用中科大镜像,使用如下命令:
git -C "$(brew --repo)" remote set-url origin https://mirrors.ustc.edu.cn/homebrew-core.git
git -C "$(brew --repo homebrew/core)" remote set-url origin https://mirrors.ustc.edu.cn/homebrew-core.git
git -C "$(brew --repo homebrew/cask)" remote set-url origin https://mirrors.ustc.edu.cn/homebrew-cask.git
echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.ustc.edu.cn/homebrew-bottles' >> ~/.bash_profile
清除镜像,使用原始链接,可以使用如下命令
# 复原
git -C "$(brew --repo)" remote set-url origin https:/github.com/Homebrew/brew.git
git -C "$(brew --repo homebrew/core)" remote set-url origin https:/github.com/Homebrew/homebrew-core.git
git -C "$(brew --repo homebrew/cask)" remote set-url origin https:/github.com/Homebrew/homebrew-cask.git
Homebrew 的使用
基本操作
# 安装
brew install [package_name]
# 卸载
brew uninstall [package_name]
# 升级自身
brew update
# 升级
brew upgrade [package_name]
# 升级全部
brew upgrade
# 查看已安装列表
brew list
# 查看可升级列表
brew outdated
# 查找
brew search [package_name]
# 清理缓存
brew cleanup
# 查看信息
brew info
# 自身诊断
brew doctor
Cask 的加载
Cask 可以看作是 Homebrew 的软件源,是其外在延申。Homebrew 的官方 Cask 包含了大量的基于图形用户界面(GUI)的软件,有大量的维护者,所以一般常用软件,无论中英文,都可以在其中找到。Cask 使用brew tap
命令进行加载。
# 官方源
brew tap homebrew/homebrew-cask
# 字体
brew tap homebrew/cask-fonts
# 过往版本
brew tap homebrew/cask-versions
# java 环境
brew tap adoptopenjdk/openjdk
# linux 安装包
brew tap athrunsun/linuxbinary
# 生物相关(支持 linux)
brew tap brewsci/bio
欲查询安装脚本的详细信息,可前往
Homebrew 允许用户建立自己的 Cask,如添加我个人的(含有每日英语、法语、西语听力等软件):
brew tap integzz/extras
后面会介绍怎么构建 Cask。
Cask 的使用
Cask 的使用与 Homebrew 本身大同小异,只需将brew
变为brew cask
即可。这里有两处需要注意:
- Cask 中软件的搜索依然是
brew search
; - Cask 中软件的升级很多时候需要使用贪婪模式,即
brew cask update --greedy
;
Services 的使用
Homebrew 绑定了 Services 工具包,可以非常便捷地管理系统服务:
# 开启
brew services start mysql
# 停止
brew services stop mysql
# 重启
brew services restart mysql
# 列出当前的状态
brew services list
Homebrew 的调试
一些参数
# 关闭自动升级
export HOMEBREW_NO_AUTO_UPDATE = true
报错
对于更新失败等一般报错,使用自带的重置功能:
# 一般报错
brew update-reset && brew update
# Error: parent directory is world writable but not sticky
sudo chmod +t /private/tmp/
对于复杂报错,进入 Homebrew 所在目录,强制重置:
cd /usr/local/Homebrew
sudo git reset --hard
sudo git clean -df
brew update
sudo git stash