您当前的位置:首页 > 计算机 > 软件应用 > 开发工具(IDE)

Homebrew brew update 长时间没反应(或卡在 Updating Homebrew...)

时间:02-23来源:作者:点击数:
一、问题简介
  • Mac Homebrew 安装与卸载
  • 有时候在brew updatebrew install xxx… 命令的时候会长时间没反应或者卡在Updating Homebrew...
  • 原因是:由于我们安装的brew默认repo是官方的repo,出于国内特殊原因无法连接,所以使用AlibabaHomebrew镜像源进行加速后问题就能解决。
  • 平时我们执行brew命令安装软件的时候,跟下面3个仓库地址有关:
    brew.git
    homebrew-core.git
    homebrew-bottles
    
二、解决办法(按步骤依次替换下去,后续可还原)
  • 替换brew.git仓库地址
    $ cd "$(brew --repo)"
    $ git remote set-url origin https://mirrors.aliyun.com/homebrew/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://mirrors.aliyun.com/homebrew/homebrew-core.git
    
    还原:
    $ cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core"
    $ git remote set-url origin https://github.com/Homebrew/homebrew-core.git
    
  • 替换homebrew-bottles访问地址:
    1、这个步骤跟macOS系统使用的shell版本有关系,先查看shell版本
    $ echo $SHELL
    
    会输出 
    
    /bin/zsh
    
    或
    
    /bin/bash
    
    2、如果输出/bin/zsh,访问地址换成这个:
    $ echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.aliyun.com/homebrew/homebrew-bottles' >> ~/.zshrc
    $ source ~/.zshrc
    
    还原:
    $ vi ~/.zshrc
    # 然后,删除 HOMEBREW_BOTTLE_DOMAIN 这一行配置
    $ source ~/.zshrc
    
    3、如果输出/bin/bash,访问地址换成这个:
    $ echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.aliyun.com/homebrew/homebrew-bottles' >> ~/.bash_profile
    $ source ~/.bash_profile
    
    还原:
    $ vi ~/.bash_profile
    # 然后,删除 HOMEBREW_BOTTLE_DOMAIN 这一行配置
    $ source ~/.bash_profile
    
  • 配置到这里就结束了,可以再次执行
    $ brew update
    
    如果正常运行,可以不用往下看了!!
  • 如果不行,就继续看:
    $ brew doctor
    
    # 输出如下的错误信息
    /usr/local/Homebrew/Library/Homebrew/global.rb:12:in `require': cannot load such file -- active_support/core_ext/object/blank (LoadError)
        from /usr/local/Homebrew/Library/Homebrew/global.rb:12:in `<top (required)>'
        from /usr/local/Homebrew/Library/Homebrew/brew.rb:23:in `require_relative'
        from /usr/local/Homebrew/Library/Homebrew/brew.rb:23:in `<main>'
    
    无论报什么错误,先不管,执行以下命令
    $ brew update-reset
    
    等待更新完成之后,再次执行
    $ brew update
    
    如果正常运行,可以不用往下看了!!
  • 如果报错homebrew-core is a shallow clone.
    Error: 
      homebrew-core is a shallow clone.
    To `brew update`, first run:
      git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core fetch --unshallow
    This command may take a few minutes to run due to the large size of the repository.
    This restriction has been made on GitHub's request because updating shallow
    clones is an extremely expensive operation due to the tree layout and traffic of
    Homebrew/homebrew-core and Homebrew/homebrew-cask. We don't do this for you
    automatically to avoid repeatedly performing an expensive unshallow operation in
    CI systems (which should instead be fixed to not use shallow clones). Sorry for
    the inconvenience!
    
    删除homebrew-core后更新即可
    $ cd /usr/local/Homebrew/Library/Taps/homebrew
    $ rm -rf homebrew-core
    $ brew upgrade
    

    使用$ brew upgrade后会重新更新homebrew-core

  • 如果$ brew upgrade安装速度太慢,直接control + c停下来,按下面的方式进行安装
    // 进入 Taps 文件夹
    $ cd /usr/local/Homebrew/Library/Taps
    
    // 新建 homebrew 文件并进入,如果有这个文件可以直接进入
    $ mkdir homebrew && cd homebrew
    或
    $ cd homebrew
    
    // Git 下载
    $ git clone git://mirrors.ustc.edu.cn/homebrew-core.git
    
    成功之后,执行安装命令,中途需要回车确认:
    $ /bin/bash -c "$(curl -fsSL https://cdn.jsdelivr.net/gh/ineo6/homebrew-install/install.sh)"
    
    最后看到==> Installation successful!就说明安装成功了。
    最后可以在更新一下,一般现在已经是最新版本了,然后就可以通过brew进行安装工具了。
    $ brew update
    
    基本到这就搞定了!!!配置完后再去安装下某些工具和module时就能发现畅快无比了!!
    附带:Mac 下镜像飞速安装 Homebrew 教程,这篇文章中有其他的镜像源可供选择!
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门