命令cheat sheet
命令 | 作用 |
---|---|
brew config | 展示homebrew配置信息 |
brew ls | 展示homebrew配置信息 |
brew search foo | 搜索 |
brew search --fink foo | 在fink仓库中搜索,其他还包括macports,ubuntu… |
brew create foo.tar.gz | 创建 formula |
brew edit foo | 编辑 formula |
brew update | 更新homebrew-core仓库,即更新规则库 |
brew upgrade foo | 更新某个具体的规则 |
brew fetch foo | 下载foo.tar.gz到HOMEBREW/downloads/MD5-FILENAME下 |
brew swtich foo version | 切换foo到某个版本 |
brew tap USER/REPO URL | 创建一个Tap |
概念
cast是专用于macos的安装扩展,可以看成是mac安装dmg的CLI版本。目标是省去安装dmg时需要的拖拽动作。
formula和cask
formula是一个ruby脚本,可以是一个.rb文件,也可以是一个链接,还可以是通常的形式:定义在homebrew/core中的名称映射的ruby脚本,短名称或者全称。
formula的全称: U S E R USER USER/ R E P O REPO REPO/ F O R M U L A FORMULA FORMULA
如果省略 U S E R USER USER/ R E P O REPO REPO, 默认从homebrew/core中拉取
homebrew/core
是homebrew的formula的核心来源,参见github: homebrew/core
bottle
与source相对应,bottle表示已经编译好的二进制文件,source则是源代码
核心命令
commands
brew commands 列出所有可用的命令
search
search text
search /regex/
install
安装
fetch
brew fetch F O R M U L A FORMULA FORMULA 获取 F O R M U L A FORMULA FORMULA对应的二进制文件或者源文件(.tar.xz)
下载的文件会放在 H O M E B R E W HOMEBREW HOMEBREW/downloads/ M D 5 MD5 MD5- F I L E N A M E FILENAME FILENAME
link & unlink
brew link F O R M U L A FORMULA FORMULA 将 F O R M U L A FORMULA FORMULA安装的所有工具链接到homebrew的bin目录下
unlink则移除所有的连接
link和unlink工作的机制:
- 可执行文件软链接 : H O M E B R E W HOMEBREW HOMEBREW/Cellar/ F O R M U L A FORMULA FORMULA/bin/ P R O G PROG PROG <- H O M E B R E W HOMEBREW HOMEBREW/bin/ P R O G PROG PROG
- share目录下的man page: H O M E B R E W HOMEBREW HOMEBREW/share/man/man8/ P R O G PROG PROG.8
- share目录下的信息: H O M E B R E W HOMEBREW HOMEBREW/share/ P R O G PROG PROG/
switch
brew switch F O R M U L A FORMULA FORMULA V E R S I O N VERSION VERSION 将所 F O R M U L A FORMULA FORMULA链接的安装版本切换到 V E R S I O N VERSION VERSION
tap
brew tap
U
S
E
R
USER
USER/
R
E
P
O
REPO
REPO
U
R
L
URL
URL
定义一个URL作为formula的仓库,当复制仓库时,默认情况下使用git clone --depth=1. --full选项可以去掉–depth=1
通常情况下,就是在 H O M E B R E W HOMEBREW HOMEBREW/Library/Taps/ U S E R USER USER/ R E P O REPO REPO下面clone对应的仓库,该仓库应当有一个Formula文件夹
例子:brew tap a/b
会克隆仓库:https://github.com/a/homebrew-b/
到:
H
O
M
E
B
R
E
W
HOMEBREW
HOMEBREW/Library/Taps/a/homebrew-b
tap-info
brew tap-info T A P TAP TAP 显示某个 T A P TAP TAP的详细信息
–repo
brew --repo U S E R USER USER/ R E P O REPO REPO 显示某个tap的本地git目录
例子:brew --repo a/b
H
O
M
E
B
R
E
W
HOMEBREW
HOMEBREW/Library/Taps/a/homebrew-b
home
brew home F O R M U L A FORMULA FORMULA 显示 F O R M U L A FORMULA FORMULA的homepage
比如brew home nginx, 打开nginx.org
edit
brew edit F O R M U L A FORMULA FORMULA 编辑 F O R M U L A FORMULA FORMULA对应的ruby文件,如果 F O R M U L A FORMULA FORMULA不存在,则打开一个新的 F O R M U L A FORMULA FORMULA文件
比如 brew edit unknown, 则会打开 H O M E B R E W HOMEBREW HOMEBREW/Library/Taps/homebrew/homebrew-core/Formula/unknown.rb
desc
brew desc F O R M U L A FORMULA FORMULA 显示 F O R M U L A FORMULA FORMULA的简短描述
info
brew info 可以输出简短的统计信息,包括brew安装的数量,占用的大小
log
brew log F O R M U L A FORMULA FORMULA 显示 F O R M U L A FORMULA FORMULA的git log信息
update
brew update 更新homebrew到最新版本,同时获取所有的formula
upgrade
brew upgrade F O R M U L A FORMULA FORMULA 更新 F O R M U L A FORMULA FORMULA,如果没有指定,则更新所有的 F O R M U L A FORMULA FORMULA
可以使用–dry-run来查看更新列表
cleanup
brew cleanup [ F O R M U L A FORMULA FORMULA| C A S K CASK CASK] 清除过期的文件,移除已安装的旧版本的formula,移除所有超过120天的下载文件
pin和unpin
当一个formula安装被pinned的时候,后续不再更新这个formula
pin 使formula不受upgrade的影响
doctor
brew doctor 显式诊断信息
services
brew services [run|stop|start|restart]管理服务
formula
brew formula F O R M U L A FORMULA FORMULA 显示 F O R M U L A FORMULA FORMULA的实际路径
例子:brew formula nginx
H
O
M
E
B
R
E
W
HOMEBREW
HOMEBREW/Library/Taps/homebrew/homebrew-core/Formula/nginx.rb
cat
brew cat F O R M U L A FORMULA FORMULA 显示 F O R M U L A FORMULA FORMULA的内容
uses
command
brew command C M D CMD CMD 当执行 brew C M D CMD CMD时,显式 C M D CMD CMD的具体路径
环境变量
例子
在Mac使用gnu-getopt替换BSD getopt
BSD的getopt不支持长选项