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的镜像源.


  • 2019-10-16 21:04:47

    vue中mixins的详细分析二

    当混合里面包含异步请求函数,而我们又需要在组件中使用异步请求函数的返回值时,我们会取不到此返回值,如下:

  • 2019-10-19 11:22:49

    window安装ffmpeg-concat出现的坑和解决办法

    最后还是选择了fluent-ffmpeg,没特效就没特效吧。最起码有声音吗。 ffmpeg-contact也可以有声音,但是需要先提取出来再合并进去,不知道能不能有效同步,果断放弃。

  • 2019-10-19 13:37:44

    v-model里使用过滤器

    档所述过滤器只能用在v-bind指令和{{}}表达式中,v-model中使用过滤器是一种思维误区。 因为v-model里实现数据显示和存储格式的转换应该是双向的。如下例: