mac brew
2022-05-19更新:
清华和中科大都提供了非常详细的安装与使用教程
https://mirrors.tuna.tsinghua.edu.cn/help/homebrew/
https://mirrors.ustc.edu.cn/help/brew.git.html
-------以下为之前的内容-----------
解决下载慢的问题
https://gitee.com/cunkai/HomebrewCN/
-------以下为之前的内容-----------
参考 https://www.xiebruce.top/720.html
先看总结:
一般情况安装软件都是这样的:brew update
brew install vim
brew先去GitHub上升级自己,然后去formula库(也是在GitHub上)查询vim
的依赖、下载地址等
然后去Bottles仓库下载vim的依赖和vim安装到我们的电脑上。
brew下载慢,存在三个原因:
- 去GitHub中升级自身慢
- 去GitHub的formula仓库解析软件信息慢
- 去软件仓库(Bottles)下载软件慢
解决这三个问题就可以加速。
ruby
ruby是一种编程语言,homebrew就是用ruby写的。
安装brew
官网 https://brew.sh/index_zh-cn
官网给出了安装命令
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
解释下上面的命令,使用curl
(下载工具)下载https://raw.githubusercontent.com/Homebrew/install/master/install.sh
文件,然后使用/bin/bash
执行下载的install.sh
就可以安装homebrew。
Homebrew
本身它就是一个用ruby写的软件,软件是托管在github上的,所以下载的时候可能会很慢。同样,每次执行brew update
的时候它会首先去更新自己,故每次可能都会很慢。
解决的办法是不从GitHub上下载,而是从国内源下载,比如中科大。
cd "$(brew --repo)"
git remote set-url origin git://mirrors.ustc.edu.cn/brew.git
可以使用下面的命令查看当前的远程仓库
git remote get-url origin
git remote -v
两条命令都可以。
设置远程仓库是中科大mirror,执行更新brew的时候就不是去GitHub上下载新版本,而是从中科大源上下载。
Formula
formula 定义了一个软件包。包括了这个软件的,依赖、源码位置及编译方法等。
当我们安装一个软件,比如brew install vim
的时候,vim
就会被送到formula仓库
中匹配获取vim
的依赖、编译方法、下载地址等等。然后按照匹配的结果去安装依赖、下载软件安装到我们的电脑上。
注意formula仓库并没有软件本身,而是记录了一些软件的信息。
formula仓库可以有很多,默认的是core
,使用brew tap
命令可以查看当前有几个formula库,下面是我的:
# kun @ localhost in ~ [22:31:27]
$ brew tap
homebrew/core
默认这个库是在github上的,所以很慢也是很正常的。所以我们可以把它更换成国内的:
cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core"
git remote set-url origin git://mirrors.ustc.edu.cn/homebrew-core.git
参考debian的apt包管理器,除了官方仓库,也可以添加其他仓库,formula也是支持的。
比如cask就是安装带gui的软件的。
Bottles
如果用的是bash
echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.ustc.edu.cn/homebrew-bottles' >> ~/.bash_profile
source ~/.bash_profile
如果用的是zsh(我就用的是zsh)
echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.ustc.edu.cn/homebrew-bottles' >> ~/.zshrc
source ~/.zshrc
当然也可以直接在~
目录下创建.bash_profile
或者.zshrc
然后用文本编辑器添加 export·····/homebrew-bottles
,然后执行source
命令使之生效。
One more thing
卸载的时候无法卸载依赖的解决办法:
使用rmtree,先安装,然后brew rmtree 包,即可
brew tap beeftornado/rmtree
brew rmtree <package>