亲宝软件园·资讯

展开

[Linux实践] macOS平台Homebrew更新brew update卡死,完美解决

T.P 人气:0

[Linux实践] macOS 平台 Homebrew 更新 brew update 卡死,完美解决

版本2020.01.05

摘要:
使用brew install [软件包]安装软件包时,卡在Updating Homebrew...
或输入`brew update`更新brew,半天没反应.产生原因一般是在国内访问官方
更新源获取资源太慢,解决方案可以采用更换国内镜像更新源.
关键词: Linux; macOS; mac; Homebrew; brew update; 开源软件镜像站;
一. Homebrew 简介
  1. Homebrew是什么?

    • Homebrew是macOS或Linux缺失的软件包的管理器.
  2. 如何安装Homebrew?
    • 命令行里运行以下命令即可.
    $ /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
    • 参考Homebrew.
  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. 原因分析.
    • 对于场景1我们可以选择Control-C直接终止当前前台update进程,然后brew就会接着执行install了.
    • 但这样并不能"治本",其实造成上述两种情况的主要原因是资源访问太慢.
    • 我们知道默认官方更新源在github.com上,因为一些原因,国内访问不太顺畅.
    • 解决方案是我们可以选择国内镜像更新源.
    • 国内镜像更新源推荐中国科大开源软件镜像站或清华大学开源软件镜像站.
    • 某些同学可能要有疑问了,"我已经按照网上其他教程替换更新源了呀?怎么还不行?"
    • 这里回答是,"可能你并没有更换彻底".
      • 输入brew update -verbose我们可以看到brew update工作的具体步骤.
      $ brew update -verbose
      Checking 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.
      • 我们可以看到它一共检查了Homebrew,homebrew-cask,homebrew-core,homebrew-services这几个文件.
      • 而网上大部分教程替换更新源时往往只替换了Homebrewhomebrew-core这两个的源.
      • 出问题,可能就出在homebrew-cask这个文件上,而我之前运行brew update -verbose显示卡死也的确是卡在这个地方.
      • 所以知道了原因,我们只要把homebrew-cask这个文件的更新源也替换一下即可.
      • 具体操作见中国科大镜像源:homebrew-cask.
  3. 解决方案,以USTC镜像为例.
    • 步骤1.替换Homebrew源.
      shell $ cd "$(brew --repo)" $ git remote set-url origin https://mirrors.ustc.edu.cn/brew.git
      • "$(brew --repo)"是用来自动指向Homebrew的目录的.
      • 参考Homebrew源使用帮助.
    • 步骤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
      • 参考Homebrew Core源使用帮助.
    • 步骤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 Cask源使用帮助.
    • 补充. 中国科大开源软件镜像站或清华大学开源软件镜像站同时提供的有Homebrew二进制预编译包Homebrew-bottles的镜像源.
      • 可有选择的进行替换,这里不进行演示.
      • 参考Homebrew Bottles 源使用帮助.

THANKS:
Homebrew
中国科大开源软件镜像站
清华大学开源软件镜像站
Musoucrow's BLOG
CSDN:瓜而不皮
CSDN:为了积分2018
| 版权声明:除特别注明外,本博客所有文章均为博主 T.P原创,转载请注明出处: https://www.cnblogs.com/tp0829/p/Homebrew.html

加载全部内容

相关教程
猜你喜欢
用户评论