Updating Homebrew... 更新了镜像依然卡死

2020-01-06 23:02:42

参考地址 macOS平台Homebrew更新brew update卡死,完美解决

其实你更换了镜像以后展示Updating Homebrew...他并没有阻止我们进行安装某些东西,我们我们可以选择Control-C直接终止当前前台update进程,然后brew就会接着执行install了.

但这样治标不治本,接下来我们看应该怎么办

一. Homebrew 简介
  1. Homebrew是什么?

    • Homebrew是macOS或Linux缺失的软件包的管理器.

  2. 如何安装Homebrew?

    $ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
    • 命令行里运行以下命令即可.

  3. Homebrew几点备注.

    • Homebrew会将软件包安装到独立目录,一般为/usr/local/Cellar目录.

    • 然后将文件软连接至执行路径,一般为/usr/local/bin目录.

二. Homebrew 命令
  • brew install [包名]

  • brew update

  • brew update -verbose

  • brew cleanup:清理旧有软件包.

  • brew doctor:诊断Homebrew的问题.

  • brew update-reset

三. brew update 卡死解决方案
  1. 问题场景.

    • 场景1.使用brew install [软件包]安装其他软件包,卡在Updating Homebrew...

    • 场景2.输入brew update更新brew,半天没反应.

  2. 原因分析.

    • 输入brew update -verbose我们可以看到brew update工作的具体步骤.

    • 我们可以看到它一共检查了Homebrew,homebrew-cask,homebrew-core,homebrew-services这几个文件.

    • 而网上大部分教程替换更新源时往往只替换了Homebrewhomebrew-core这两个的源.

    • 出问题,可能就出在homebrew-cask这个文件上,而我之前运行brew update -verbose显示卡死也的确是卡在这个地方.

    • 所以知道了原因,我们只要把homebrew-cask这个文件的更新源也替换一下即可.

    • 具体操作见中国科大镜像源:homebrew-cask.

    • 对于场景1我们可以选择Control-C直接终止当前前台update进程,然后brew就会接着执行install了.

    • 但这样并不能"治本",其实造成上述两种情况的主要原因是资源访问太慢.

    • 我们知道默认官方更新源在github.com上,因为一些原因,国内访问不太顺畅.

    • 解决方案是我们可以选择国内镜像更新源.

    • 国内镜像更新源推荐中国科大开源软件镜像站清华大学开源软件镜像站.

    • 某些同学可能要有疑问了,"我已经按照网上其他教程替换更新源了呀?怎么还不行?"

    • 这里回答是,"可能你并没有更换彻底".

      $ brew update -verboseChecking if we need to fetch /usr/local/Homebrew...
      Checking if we need to fetch /usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask...
      Fetching /usr/local/Homebrew...
      Checking if we need to fetch /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core...
      Fetching /usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask...
      Checking if we need to fetch /usr/local/Homebrew/Library/Taps/homebrew/homebrew-services...
      Fetching /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core...
      Already up-to-date.
  3. 解决方案,以USTC镜像为例.

    • 步骤1.替换Homebrew源.
      shell $ cd "$(brew --repo)" $ git remote set-url origin https://mirrors.ustc.edu.cn/brew.git

    • 步骤2.替换homebrew-core源.
      shell $ cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core" $ git remote set-url origin https://mirrors.ustc.edu.cn/homebrew-core.git

    • 步骤3.替换homebrew-cask源.
      shell $ cd "$(brew --repo)"/Library/Taps/homebrew/homebrew-cask $ git remote set-url origin https://mirrors.ustc.edu.cn/homebrew-cask.git

    • 补充. 中国科大开源软件镜像站清华大学开源软件镜像站同时提供的有Homebrew二进制预编译包Homebrew-bottles的镜像源.


  • 2020-12-27 20:36:10

    音频播放AudioTrack之入门篇

    AudioTrack是管理和播放单一音频资源的类。AudioTrack仅仅能播放已经解码的PCM流,用于PCM音频流的回放。

  • 2020-12-29 14:33:00

    php降级处理yum如何降级

    现在我以php7.4降级到php7.2说起,当然降级是各有各的苦衷,不然谁闲的没事去降级呀,请说出的苦衷。。。。

  • 2020-12-29 14:35:12

    git 放弃所有修改

    此命令用来放弃掉所有还没有加入到缓存区(就是 git add 命令)的修改:内容修改与整个文件删除。但是此命令不会删除掉刚新建的文件。因为刚新建的文件还没已有加入到 git 的管理系统中。所以对于git是未知的。自己手动删除就好了。

  • 2020-12-29 16:20:29

    使用console进行 性能测试 和 计算代码运行时间

    对于前端开发人员,在开发过程中经常需要监控某些表达式或变量的值,如果使用用 debugger 会显得过于笨重,最常用的方法是会将值输出到控制台上方便调试。 最常用的语句就是console.log(expression)了。