前言
Homebrew 的下载源在国内的网络环境下速度很慢,brew update 和 brew install 等命令无法正常使用时间长了连接还会自动断开。从网络层面考虑的话有两种方法可以解决网速问题:更换下载源为国内镜像,命令行使用代理。还有一种我无法理解的方法可以解决问题:网络切换为手机热点。实践下来切换热点最有效,但其原理在网络上也搜索不到答案。所以说最简单有效推荐最先使用的方法就是切换热点,同时如果有朋友知道这背后的原理也可以留言告诉我,感谢。
国内镜像
国内总共有三个镜像可以替换,分别为中科大,清华,阿里。域名分别为:
- 中科大: https://mirrors.ustc.edu.cn
- 清华: https://mirrors.tuna.tsinghua.edu.cn/git/homebrew
- 阿里: https://mirrors.aliyun.com/homebrew
我这边实测下来是中科大的最稳定,后续就以中科大镜像为例进行替换。可以根据实际情况替换不同的镜像。
需要替换地址的地方有三处,在终端输入对应命令。
brew.git
替换:
cd "$(brew --repo)"
git remote set-url origin https://mirrors.ustc.edu.cn/brew.git
还原:
cd "$(brew --repo)"
git remote set-url origin https://github.com/Homebrew/brew.git
在当前路径下使用
git remote -v
可以查看当前源。
homebrew-core.git
替换:
cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core"
git remote set-url origin https://mirrors.ustc.edu.cn/homebrew-core.git
还原:
cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core"
git remote set-url origin https://github.com/Homebrew/homebrew-core.git
同样在当前路径下使用
git remote -v
可以查看当前源。
homebrew-bottles
首先确定自己使用的终端是zsh还是bash。可以在终端界面中看到,或者在终端中输入:
echo $SHELL
我使用的是 zsh,所以只有要修改 ~/.zshrc 这个文件。如果是 bash 则修改 ~/.bash_profile。接下来以 zsh 为例,终端输入:
echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.ustc.edu.cn/homebrew-bottles' >> ~/.zshrc
或者直接修改文件:
vim ~/.zshrc
将 export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.ustc.edu.cn/homebrew-bottles 填入文件。我推荐直接修改文件的做法,在配置多了的情况下不容易乱。之后记得要刷新:
source ~/.zshrc
还原的话,只要将插入的这句删除就行了。
终端代理
在 ~/.zshrc 中加入以下函数:
function proxy_off(){
unset http_proxy
unset https_proxy
echo "关闭代理"
}
function proxy_on() {
export no_proxy="localhost,127.0.0.1"
export http_proxy="socks5://127.0.0.1:1086"
export https_proxy=$http_proxy
echo "开启代理"
}
function proxy_status() {
echo $https_proxy
curl cip.cc
}
如果是 bash 则修改 ~/.bash_profile。在科学上网软件的设置里可以找到端口号,默认是1086。之后在终端内输入相应函数,就可以执行相应命令了。
参考资料
https://blog.csdn.net/weixin_43972437/article/details/118724529
https://blog.csdn.net/zz00008888/article/details/113880633
Q.E.D.