安装/卸载
# install
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
# uninstall
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"
# 如果没有ruby, OS X 10.5默认zsh,没试过
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
访问加速
由于brew一般在github仓库(源码)和bintray(二进制bottles),为什么访问慢你懂得。
镜像
brew其实就是一个git仓库,所以直接替换remote就行了,我感觉用阿里源很慢?所以现在替换成清华源了。
# homebrew
cd "$(brew --repo)"
# 清华源
git remote set-url origin https://mirrors.ustc.edu.cn/brew.git
# 阿里源 https://mirrors.aliyun.com/homebrew/brew.git
# 官方源 https://github.com/Homebrew/brew.git # 以备不时之需
# homebrew-core
cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core"
git remote set-url origin https://mirrors.ustc.edu.cn/homebrew-core.git
# 阿里源 https://mirrors.aliyun.com/homebrew/homebrew-core.git
# 官方源 https://github.com/Homebrew/homebrew-core.git
代理
我都使用临时的http全局代理,前提是你得有。🌚
# 添加代理
export http_proxy=http://127.0.0.1:1087;export https_proxy=http://127.0.0.1:1087;
# 取消代理
unset http_proxy;unset https_proxy;
# b乎上使用sock5代理是这样的
export ALL_PROXY=socks5://127.0.0.1:portnumber
常用命令
安装/卸载/更新/查看已安装
Homebrew 会将软件包安装到独立目录(/usr/local/Cellar
),并将其文件软链接至 /usr/local/bin
和/usr/local/opt
。注意⚠️:这里的软链接可能会造成冲突!后面会讲。
# 安装命令行程序命令
brew install <package>
# 安装图形化软件命令
brew cask install google-chrome
# 卸载命令
brew uninstall <package>
# 更新brew
brew update
# 更新包
brew upgrade <package>
# 查看已安装列表
brew list
# 清除brew安装程序产生的缓存
brew cleanup
# 版本管理
brew switch subversion 1.6.17 # 切换版本
brew deps --installed --tree # 以树形结构查看已安装的包的依赖
brew deps <package> --tree # 查看某个包的依赖
# 取自官网,我本地太多了不好展示
# /usr/local/opt的也是从Cellar软链接的
$ cd /usr/local
$ find Cellar
Cellar/wget/1.16.1
Cellar/wget/1.16.1/bin/wget
Cellar/wget/1.16.1/share/man/man1/wget.1
$ ls -l bin
bin/wget -> ../Cellar/wget/1.16.1/bin/wget
搜索
# 搜索包 支持正则表达式, 默认是%keyword%的形式
brew search [TEXT|/REGEX/]
查看包信息
不管安装还是没安装的都可以,如下图,Dependencies依赖,Required需要安装的东西,其他的像一些信息之类的,甚至还有caveats说明,安装到哪,怎么用之类的。用处非常大。
brew info <package>
查看依赖
homebrew会给每个包的不同版本依赖单独下载安装一份包。
# 树形结构查看所有包依赖
brew deps --installed --tree
# 查看某个包的依赖
brew deps <package> --tree
brew软链接带来的冲突和解决
首先我使用的OS X 10.5版本,默认自带的python3是在/usr/bin/python3
,然后homebrew会在其他包有依赖关系的时候单独下载安装一份依赖版本,并且会创建软链接,上文提到过,具体的位置是/usr/local/bin/python3
。
我使用系统的python版本了一段时间,期间使用pip3安装了些包,结果某天使用突然没了,然后我使用where python3
发现两个python3,进入他们相关的目录去查看了才发现(glib依赖python),我原本的包都还在只不过,/usr/local/bin
在/usr/bin
前,所以需要通过解除软链接的方式去还原我使用的版本。
软链接就相当于windows os的快捷方式
# 直接解除
unlink /usr/local/bin/python3
# 如果需要使用brew的某个版本的话可以添加软链接
ln -s /usr/local/bin/python3 /usr/local/Cellar/python/bin/python3
服务
# 查看服务列表
brew services list
# 启动服务,关机后关闭
brew services run <name>
# 启动服务随系统启动
brew services start <name>
切换版本
# brew版本是按照目录结构区分的,但是安装的时候是分开的
# 安装最新的node 的目录是node,10版本的是node@10
# 如果需要切换版本,到node@10目录下 把10.22.0移动到node目录下,然后再执行switch命令
brew switch node 10.22.0 #切换到10