Updating Homebrew 卡住的解决方案

2020-10-27 11:56:57 +08:00
 wsgzao

前言

换了 MacBook 16 寸的电脑正好在使用 brew 安装一些应用,发现一个小问题是每次执行如brew install ansible命令停留在Updating Homebrew...的时间特别长,在新加坡理论上应该和网络无关,最后按照网络上的方案选择关闭每次检查更新解决。

更新历史

2020 年 10 月 13 日 - 初稿

阅读原文 - https://wsgzao.github.io/post/homebrew-update/


Homebrew 关闭自动更新

通过环境变量关闭 Homebrew 自动更新解决 Updating Homebrew 方法最简单

# 卡在 Updating Homebrew 好久
brew install ansible
Updating Homebrew...

# 关闭自动更新,在.zshrc 文件中加入下方命令,如果是 bash 请加在.bash_profile 文件中,全局变量可以 sudo vi /etc/profile
vim ~/.zshrc
export HOMEBREW_NO_AUTO_UPDATE=true

# 刷新环境变量
source ~/.zshrc

Homebrew 镜像源加速

我们平时执行 brew 命令安装软件的时候,跟这三个仓库有关:

  1. brew.git
  2. homebrew-core.git
  3. homebrew-bottles

使用阿里或者清华的 Homebrew 镜像源代替可以进行加速

https://mirrors.aliyun.com/homebrew/

https://mirrors.tuna.tsinghua.edu.cn/help/homebrew/

# 替换 brew.git
cd "$(brew --repo)"
git remote set-url origin https://mirrors.aliyun.com/homebrew/brew.git

# 替换 homebrew-core.git
cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core"
git remote set-url origin https://mirrors.aliyun.com/homebrew/homebrew-core.git

# 替换 homebrew-bottles 访问地址
echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.aliyun.com/homebrew/homebrew-bottles' >> ~/.zshrc
source ~/.zshrc

# 还原 brew.git
cd "$(brew --repo)"
git remote set-url origin https://github.com/Homebrew/brew.git

# 还原 homebrew-core.git
cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core"
git remote set-url origin https://github.com/Homebrew/homebrew-core.git

# 还原的话就是删除 HOMEBREW_BOTTLE_DOMAIN,上面的是 zsh 的命令,如果是 bash 的话请写在.bash_profile 文件中。
4021 次点击
所在节点    macOS
19 条回复
chendy
2020-10-27 12:08:29 +08:00
开代理默秒全…
k3Sv1
2020-10-27 12:12:15 +08:00
既然你在新加坡用国内镜像居然更快??
wsgzao
2020-10-27 12:16:34 +08:00
@k3Sv1 #2 我顺手记录下国内用户修改镜像的步骤了,网上参考资料有部分无效信息,我测试了一轮然后更新到 Blog 里,放了清华和阿里 2 组原始连接做主备,希望对各位有帮助吧
monstervivi
2020-10-27 12:17:04 +08:00
使用过镜像源,但有时候还是会卡住,之后通过代理方式解决。
dingdangnao
2020-10-27 12:21:43 +08:00
1002xin
2020-10-27 12:23:53 +08:00
更换镜像源就算了,靠谱的代理才是正道
Tumblr
2020-10-27 12:30:06 +08:00
不能用 sudo brew 也是个蛋疼的问题。
dapang1221
2020-10-27 12:39:54 +08:00
这个 Updating Homebrew 可以用 ctrl+c 跳过的,它不只是从源请求更新,还会扫缓存的包
miyunda
2020-10-27 15:27:25 +08:00
@chendy 这个与代理不代理关系不大吧?我开着全局代理也这样
devjia
2020-10-27 15:38:51 +08:00
顶一楼,优质的代理可以避免镜像的各种奇葩问题。

有的同学说全局代理不生效,一般是由于需要单独给命令行设置 socket 代理,或者使用带虚拟网卡功能的代理软件。
devjia
2020-10-27 15:40:35 +08:00
@devjia 抱歉,需要纠正一下,socks 代理。
LabJo
2020-10-27 15:42:41 +08:00
clashX pro 增强模式,无痛代理
tenngoxars
2020-10-27 15:48:29 +08:00
Stlin
2020-10-27 15:56:52 +08:00
alias goproxy="export http_proxy=http://127.0.0.1:1087 https_proxy=http://127.0.0.1:1087"
chendy
2020-10-27 16:10:47 +08:00
@miyunda 有的地方是不走系统代理的,比如终端里就要自己 export http_proxt=xxxx
lbyo
2020-10-28 11:43:42 +08:00
@chendy #14 TUN 可以解决这个,当然也可以 export
ettingshausen
2020-10-28 13:23:21 +08:00
!HOMEBREW_NO_AUTO_UPDATE=1 brew install 来代替 brew install
命令太长了,可以使用 alias 。
alias 这个指令不是 Homebrew 自带的。首先需要 tap 一个官方仓库「 homebrew-aliases 」。
brew tap homebrew/homebrew-aliases
设置 alias:
brew alias i='!HOMEBREW_NO_AUTO_UPDATE=1 brew install'

免 update 安装 yarn:
brew i yarn
NanonaN
2020-10-30 10:54:08 +08:00
其实觉得慢主要是因为更新不显示进度,如果能显示进度的话就会好很多,试试看 brew update --verbose
forelegance
2020-10-31 18:34:49 +08:00
ctrl +c 可以 kill 掉 Updating Homebrew...直接进入 install 阶段

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/718975

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX