V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
wsgzao
V2EX  ›  macOS

Updating Homebrew 卡住的解决方案

  •  
  •   wsgzao · 2020-10-27 11:56:57 +08:00 · 3993 次点击
    这是一个创建于 1490 天前的主题,其中的信息可能已经有所发展或是发生改变。

    前言

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

    有的同学说全局代理不生效,一般是由于需要单独给命令行设置 socket 代理,或者使用带虚拟网卡功能的代理软件。
    devjia
        11
    devjia  
       2020-10-27 15:40:35 +08:00 via iPhone
    @devjia 抱歉,需要纠正一下,socks 代理。
    LabJo
        12
    LabJo  
       2020-10-27 15:42:41 +08:00
    clashX pro 增强模式,无痛代理
    tenngoxars
        13
    tenngoxars  
       2020-10-27 15:48:29 +08:00
    Stlin
        14
    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
        15
    chendy  
       2020-10-27 16:10:47 +08:00
    @miyunda 有的地方是不走系统代理的,比如终端里就要自己 export http_proxt=xxxx
    lbyo
        16
    lbyo  
       2020-10-28 11:43:42 +08:00
    @chendy #14 TUN 可以解决这个,当然也可以 export
    ettingshausen
        17
    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
        18
    NanonaN  
       2020-10-30 10:54:08 +08:00
    其实觉得慢主要是因为更新不显示进度,如果能显示进度的话就会好很多,试试看 brew update --verbose
    forelegance
        19
    forelegance  
       2020-10-31 18:34:49 +08:00
    ctrl +c 可以 kill 掉 Updating Homebrew...直接进入 install 阶段
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1035 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 22:04 · PVG 06:04 · LAX 14:04 · JFK 17:04
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.