1. brew update error

(i) 问题出现及现象描述

昨天换了台电脑,有些软件需要重新安装或更新一下,遇到了下面的问题

  1. cv@xys-MacBook-Pro ~ % brew update
  2. touch: /usr/local/Homebrew/.git/FETCH_HEAD: Permission denied
  3. error: cannot open .git/FETCH_HEAD: Permission denied
  4. touch: /usr/local/Homebrew/Library/Taps/caskroom/homebrew-cask/.git/FETCH_HEAD: Permission denied
  5. /usr/local/Homebrew/Library/Homebrew/cmd/update.sh: line 522: /usr/local/Homebrew/.git/UPDATE_FAILED: Permission denied
  6. error: cannot open .git/FETCH_HEAD: Permission denied
  7. touch: /usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask/.git/FETCH_HEAD: Permission denied
  8. /usr/local/Homebrew/Library/Homebrew/cmd/update.sh: line 522: /usr/local/Homebrew/.git/UPDATE_FAILED: Permission denied
  9. error: cannot open .git/FETCH_HEAD: Permission denied
  10. /usr/local/Homebrew/Library/Homebrew/cmd/update.sh: line 522: /usr/local/Homebrew/.git/UPDATE_FAILED: Permission denied
  11. touch: /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/.git/FETCH_HEAD: Permission denied
  12. error: cannot open .git/FETCH_HEAD: Permission denied
  13. /usr/local/Homebrew/Library/Homebrew/cmd/update.sh: line 522: /usr/local/Homebrew/.git/UPDATE_FAILED: Permission denied
  14. fatal: Unable to create '/usr/local/Homebrew/.git/index.lock': Permission denied
  15. fatal: Unable to create '/usr/local/Homebrew/.git/index.lock': Permission denied
  16. error: could not lock config file .git/config: Permission denied
  17. Already up-to-date.

(ii) 解决方案

在StackOverflow上找到了一个类似的问题,用高赞的回答解决了这个问题。

直接通过改变 /usr/local 的所属用户进而解决权限问题。

不同的版本使用的指令略有不同,如果是 macOS High Sierra 或更高版本的系统的用户,使用下面的指令可以修改所属权,

  1. ~$ sudo chown -R $(whoami) $(brew --prefix)/*

如果是 macOS Sierra 或更低版本的系统的用户,使用下面的指令

  1. ~$ sudo chown -R $(whoami) /usr/local

查看本机系统版本信息,可以通过单击左上角苹果 Logo ==> 关于本机,就能看到系统版本号及其名称。版本号之间的高低可以通过WikiPedia上面记载的版本与名称对应列表来查询。

  1. Public Beta: "Kodiak", Released on September 13, 2000
  2. Version 10.0: "Cheetah", Released on March 24, 2001
  3. Version 10.1: "Puma", Released on September 25, 2001
  4. Version 10.2: "Jaguar", Released on August 23, 2002
  5. Version 10.3: "Panther", Released on October 24, 2003
  6. Version 10.4: "Tiger", Released on April 29, 2005
  7. Version 10.5: "Leopard", Released on October 26, 2007
  8. Version 10.6: "Snow Leopard", Released on August 28, 2009
  9. Version 10.7: "Lion", Released on July 20, 2011
  10. Version 10.8: "Mountain Lion", Released on July 25, 2012
  11. Version 10.9: "Mavericks", Released on October 22, 2013
  12. Version 10.10: "Yosemite", Released on October 16, 2014
  13. Version 10.11: "El Capitan", Released on June 8, 2015
  14. Version 10.12: "Sierra", Released on June 13, 2016
  15. Version 10.13: "High Sierra", Released on June 5, 2017
  16. Version 10.14: "Mojave", Released on June 4, 2018
  17. Version 10.15: "Catalina", Released on June 3, 2019
  18. Version 11: "Big Sur", Released on June 22, 2020

2. brew update "Fetching homebrew-cask failed!"

(i) 问题描述

尽管权限问题用上述方法解决了,但后续执行时又遇到了一点问题,这次是主要是Homebrew的其中两个组成部分homebrew-caskhomebrew-core引起的,出现了如下所示的 "Fetching failed" 错误。

  1. cv@xys-MBP ~ % brew update
  2. Error: Fetching /usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask failed!
  3. Fetching /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core failed!
  4. Updated 2 taps (homebrew/cask and caskroom/cask).

(ii) 解决方案

尝试了一些方法都没解决,最后选择重新安装 Homebrew,毕竟没有什么问题是重装不能解决的,如过有,就连系统一起重装...话说回来,重装之后确实没有问题了(\汗)。

首先自然是卸载已有的安装版本,指令是 /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)",结果如下。

  1. cv@xys-MBP ~ % /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"
  2. Warning: The Ruby Homebrew uninstaller is now deprecated and has been rewritten in
  3. Bash. Please migrate to the following command:
  4. /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/uninstall.sh)"
  5. curl: (35) LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to raw.githubusercontent.com:443

接着当然是安装新版本,指令是/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)",结果如下,中间有一次需要根据自己的需求选择源并输入 root 密码。

  1. cv@xys-MBP ~ % /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"
  2. 开始执行Brew自动安装程序
  3. [cunkai.wang@foxmail.com]
  4. ['2021-05-20 17:53:17']['11.3']
  5. https://zhuanlan.zhihu.com/p/111014448
  6. 请选择一个下载镜像,例如中科大,输入1回车。
  7. 源有时候不稳定,如果git克隆报错重新运行脚本选择源。cask非必须,有部分人需要。
  8. 1、中科大下载源 2、清华大学下载源 3、北京外国语大学下载源 4、腾讯下载源(不推荐) 5、阿里巴巴下载源(不推荐 缺少cask源)
  9. 请输入序号:

我选择了中科大下载源,输入 1 回车即可。


  1. 你选择了中国科学技术大学下载源
  2. !!!此脚本将要删除之前的brew(包括它下载的软件),请自行备份。
  3. ->是否现在开始执行脚本(N/Y

是否执行,选择是,输入 Y 回车继续。接着输入密码后正常情况下就能一直运行到最后了,如果中间断了根据提示进行相应的操作即可。

  1. --> 脚本开始执行
  2. Mac os设置开机密码方法:
  3. (设置开机密码:在左上角苹果图标->系统偏好设置->用户与群组->更改密码)
  4. (如果提示This incident will be reported. 在用户与群组中查看是否管理员)
  5. ==> 通过命令删除之前的brew、创建一个新的Homebrew文件夹
  6. 请输入开机密码,输入过程不显示,输入完后回车
  7. 开始执行
  8. ---备份要删除的/usr/local/Homebrew到系统桌面....
  9. ---/usr/local/Homebrew 备份完成
  10. -> 创建文件夹 /usr/local/Homebrew
  11. 运行代码 ==> /usr/bin/sudo /bin/mkdir -p /usr/local/Homebrew
  12. 此步骤成功
  13. 运行代码 ==> /usr/bin/sudo /bin/chmod -R a+rwx /usr/local/Homebrew
  14. 运行代码 ==> /usr/bin/sudo /usr/sbin/chown cv /usr/local/Homebrew
  15. 运行代码 ==> /usr/bin/sudo /usr/bin/chgrp admin /usr/local/Homebrew
  16. git version 2.20.1
  17. 下载速度觉得慢可以ctrl+ccontrol+c重新运行脚本选择下载源
  18. ==> 克隆Homebrew基本文件
  19. 未发现Git代理(属于正常状态)
  20. Cloning into '/usr/local/Homebrew'...
  21. remote: Enumerating objects: 191263, done.
  22. remote: Total 191263 (delta 0), reused 0 (delta 0) | 10.55 MiB/s
  23. Receiving objects: 100% (191263/191263), 48.84 MiB | 10.64 MiB/s, done.
  24. Resolving deltas: 100% (142769/142769), done.
  25. 此步骤成功
  26. --创建Brew所需要的目录
  27. 运行代码 ==> /usr/bin/sudo /bin/chmod u+rwx /usr/local/bin/brew
  28. 运行代码 ==> /usr/bin/sudo /bin/chmod g+rwx /usr/local/bin/brew
  29. 运行代码 ==> /usr/bin/sudo /bin/mkdir -p /usr/local/sbin /usr/local/Caskroom
  30. 运行代码 ==> /usr/bin/sudo /bin/chmod g+rwx /usr/local/sbin /usr/local/Caskroom
  31. 运行代码 ==> /usr/bin/sudo /usr/sbin/chown cv /usr/local/sbin /usr/local/Caskroom
  32. 运行代码 ==> /usr/bin/sudo /usr/bin/chgrp admin /usr/local/sbin /usr/local/Caskroom
  33. 运行代码 ==> /usr/bin/sudo /usr/sbin/chown -R cv:admin /usr/local/Homebrew
  34. 运行代码 ==> /usr/bin/sudo /bin/mkdir -p /Users/cv/Library/Caches/Homebrew
  35. 运行代码 ==> /usr/bin/sudo /bin/chmod g+rwx /Users/cv/Library/Caches/Homebrew
  36. 运行代码 ==> /usr/bin/sudo /usr/sbin/chown -R cv /Users/cv/Library/Caches/Homebrew
  37. --依赖目录脚本运行完成
  38. ==> 创建brew的替身
  39. ==> 克隆Homebrew Core
  40. 此处如果显示Password表示需要再次输入开机密码,输入完后回车
  41. Cloning into '/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core'...
  42. remote: Enumerating objects: 960954, done.
  43. remote: Total 960954 (delta 0), reused 0 (delta 0)
  44. Receiving objects: 100% (960954/960954), 380.33 MiB | 10.66 MiB/s, done.
  45. Resolving deltas: 100% (660866/660866), done.
  46. Checking out files: 100% (5914/5914), done.
  47. 此步骤成功
  48. ==> 克隆Homebrew Cask 图形化软件
  49. 此处如果显示Password表示需要再次输入开机密码,输入完后回车
  50. Cloning into '/usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask'...
  51. remote: Enumerating objects: 624249, done.
  52. remote: Total 624249 (delta 0), reused 0 (delta 0)
  53. Receiving objects: 100% (624249/624249), 260.95 MiB | 9.69 MiB/s, done.
  54. Resolving deltas: 100% (445746/445746), done.
  55. 此步骤成功
  56. ==> 克隆Homebrew services 管理服务的启停
  57. Cloning into '/usr/local/Homebrew/Library/Taps/homebrew/homebrew-services'...
  58. remote: Enumerating objects: 1141, done.
  59. remote: Counting objects: 100% (1141/1141), done.
  60. remote: Compressing objects: 100% (495/495), done.
  61. remote: Total 1141 (delta 484), reused 1141 (delta 484), pack-reused 0
  62. Receiving objects: 100% (1141/1141), 331.50 KiB | 330.00 KiB/s, done.
  63. Resolving deltas: 100% (484/484), done.
  64. 此步骤成功
  65. ==> 配置国内镜像源HOMEBREW BOTTLE
  66. sed: /Users/cv/.zprofile: No such file or directory
  67. 环境变量写入->/Users/cv/.zprofile
  68. 此步骤成功
  69. 运行代码 ==> /usr/bin/sudo /bin/chmod -R a+rwx /usr/local/Homebrew
  70. 运行代码 ==> /usr/bin/sudo /usr/sbin/chown cv /usr/local/Homebrew
  71. 运行代码 ==> /usr/bin/sudo /usr/bin/chgrp admin /usr/local/Homebrew
  72. ==> 安装完成,brew版本
  73. Homebrew 3.1.8-50-g76c4767-dirty
  74. Homebrew/homebrew-core (git revision 832bb8b966; last commit 2021-05-20)
  75. Homebrew/homebrew-cask (git revision f397055044; last commit 2021-05-20)
  76. Brew前期配置成功
  77. 电脑系统版本:11.3
  78. All user-space services OK, nothing cleaned...
  79. ==> brew update-reset
  80. ==> Fetching /usr/local/Homebrew...
  81. ==> Resetting /usr/local/Homebrew...
  82. Branch 'master' set up to track remote branch 'master' from 'origin'.
  83. Reset branch 'master'
  84. Your branch is up to date with 'origin/master'.
  85. ==> Fetching /usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask...
  86. ==> Resetting /usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask...
  87. Checking out files: 100% (3977/3977), done.
  88. Branch 'master' set up to track remote branch 'master' from 'origin'.
  89. Reset branch 'master'
  90. Your branch is up to date with 'origin/master'.
  91. ==> Fetching /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core...
  92. ==> Resetting /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core...
  93. Checking out files: 100% (5659/5659), done.
  94. Branch 'master' set up to track remote branch 'master' from 'origin'.
  95. Reset branch 'master'
  96. Your branch is up to date with 'origin/master'.
  97. ==> Fetching /usr/local/Homebrew/Library/Taps/homebrew/homebrew-services...
  98. ==> Resetting /usr/local/Homebrew/Library/Taps/homebrew/homebrew-services...
  99. Branch 'master' set up to track remote branch 'master' from 'origin'.
  100. Reset branch 'master'
  101. Your branch is up to date with 'origin/master'.
  102. Brew自动安装程序运行完成
  103. 国内地址已经配置完成
  104. 桌面的Old_Homebrew文件夹,大致看看没有你需要的可以删除。
  105. 初步介绍几个brew命令
  106. 本地软件库列表:brew ls
  107. 查找软件:brew search google(其中google替换为要查找的关键字)
  108. 查看brew版本:brew -v 更新brew版本:brew update
  109. 安装cask软件:brew install --cask firefox firefox换成你要安装的
  110. 欢迎右键点击下方地址-打开URL 来给点个赞
  111. https://zhuanlan.zhihu.com/p/111014448
  112. 重启终端 或者 运行 source /Users/cv/.zprofile 否则可能无法使用

安装完成后按照提示运行 source 命令

  1. cv@xys-MBP ~ % source ~/.zprofile

至此重装过程结束,开始正常使用 Homebrew。

(全文完)


参考资料

[1] brew update fails with “Permission denied” error (https://stackoverflow.com/questions/50267510/brew-update-fails-with-permission-denied-error/50268978)

[2] macOS version history (https://en.wikipedia.org/wiki/MacOS_version_history)

[3] mac下Homebrew安装Fetching /usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask failed报错解决方法 (http://www.cxyzjd.com/article/Jiangzhiqi4551/116174524)

[4] Mac 下 brew 切换为国内源 (https://cloud.tencent.com/developer/article/1614039)

本文作者 :phillee

发表日期 :2021年5月20日

本文链接https://www.cnblogs.com/phillee/p/14788909.html

版权声明 :自由转载-非商用-非衍生-保持署名(创意共享3.0许可协议/CC BY-NC-SA 3.0)。转载请注明出处!

限于本人水平,如果文章和代码有表述不当之处,还请不吝赐教。

Mac OSX系统homebrew update Fetching failed问题解决方案的更多相关文章

  1. Mac OSX系统中Hadoop / Hive 与 spark 的安装与配置 环境搭建 记录

    Mac OSX系统中Hadoop / Hive 与 spark 的安装与配置 环境搭建 记录     Hadoop 2.6 的安装与配置(伪分布式) 下载并解压缩 配置 .bash_profile : ...

  2. mac osx 系统 brew install hadoop 安装指南

    mac osx 系统 brew  install hadoop 安装指南   brew install hadoop 配置 core-site.xml:配置hdfs文件地址(记得chmod 对应文件夹 ...

  3. Mac OSX系统、Linux、Windows命令行教程

    目录 Mac OSX系统.Linux.Windows命令行教程 一.各系统终端的使用方法 二.各系统命令的功能 Mac OSX系统.Linux.Windows命令行教程 用你的终端做一些事情 (com ...

  4. 在Mac OSX系统的Docker机上启用Docker远程API功能

    在Mac OSX系统的Docker机上启用Docker远程API功能 作者:chszs,未经博主同意不得转载.经许可的转载需注明作者和博客主页:http://blog.csdn.net/chszs D ...

  5. 绿联Type-C千兆网卡AX88179芯片驱动(苹果Mac OSX系统)CM141丨CM179

    绿联Type-C千兆网卡AX88179芯片驱动(苹果Mac OSX系统)CM141丨CM179 下载地址:https://www.lulian.cn/download/6-cn.html AX8817 ...

  6. Mac OSX系统下SVN客户端SCPlugin问题

    装上SCPlugin后,Checkout老是出现这种错误: Server certificate verification failed: certificate issued for a diffe ...

  7. Mac OSX系统搭建React natvie for android 开发环境

    1.下载node.js  https://nodejs.org/en/ 下载OSX版本 V5.6  2.安装android SDK  JDK  3.安装react-native-cli 打开命令行,输 ...

  8. Mac OSX 系统搭建 Java 开发环境

    转载:https://www.cnblogs.com/zjx2711904647/p/7735556.html 1. 安装JDK 双击jdk-9.0.1_osx-x64_bin.dmg文件进行安装 2 ...

  9. Mac OSX系统下通过ProxyChains-NG实现终端下的代理

    项目主页:https://github.com/rofl0r/proxychains-ng 官方说明: proxychains ng (new generation) - a preloader wh ...

随机推荐

  1. Day2:Windows常用快捷键与基本的Dos命令

    Windows常用快捷键 必须掌握: Ctrl+C:复制 Ctrl+V:粘贴 Ctrl+Z:撤销 Ctrl+S:保存 Win键+R:运行(run) alt+F4:关闭窗口/页面 Ctrl+A:全选 C ...

  2. RepVGG

    RepVGG: Making VGG-style ConvNets Great Again 作者:elfin   资料来源:RepVGG论文解析 目录 1.摘要 2.背景介绍 3.相关工作 3.1 单 ...

  3. java例题_36 移动数组中数据位置(用到数组的合并操作)

    1 /*36 [程序 36 移动位置] 2 题目:有 n 个整数,使其前面各数顺序向后移 m 个位置,最后 m 个数变成最前面的 m 个数,比如输入数字 3 为 1 2 3 4 5 6 7 8 9 0 ...

  4. Android Studio 中的 button 无法使用 background 更改背景颜色

    •解决方案 res/values/themes.xml下的  <style name="Theme.HelloWorld" parent="Theme.Materi ...

  5. Java【线程池、Lambda表达式】

    见pdf 等待唤醒机制 wait和notify 第二章 线程池 如果并发的线程数量很多,并且每个线程都是执行一个时间很短的任务就结束了,这样频繁创建线程就会大大降低 系统的效率,因为频繁创建线程和销毁 ...

  6. 【笔记】《Redis设计与实现》chapter10 RDB持久化

    chapter10 RDB持久化 10.1 RDB文件的创建和载入 有两个Redis命令可以用于生成RDB文件,SAVE和BGSAVE SAVE阻塞服务器进程进行RDB文件的创建,BGSAVE则创建服 ...

  7. day18.进程2

    1 进程调度算法(了解) -先来先服务调度算法 -短作业优先调度算法 -时间片轮转法 -多级反馈队列 2 同步异步,阻塞非阻塞(了解) 1 同步调用:提交了以后,一直等待结果返回 2 异步调用:提交了 ...

  8. Linux内核软中断

    1 软中断概述 软中断是实现中断下半部的一种手段,与2.5以前版本的下半段机制不同.软中断可以同时运行在不同的CPU上. 1.1 软中断的表示 内核中用结构体softirq_action表示一个软中断 ...

  9. 15- web安全测试与appscan Scrawlr的使用

    web应用安全性问题 认证与授权测试要点 认证与授权测试要点之授权 session与cookie之cookie测试点: session测试点: 上传文件漏洞 SQL注入 SQL注入原理 SQL注入检查 ...

  10. 【Spring】 Spring如何解决循环依赖的问题?

    https://mp.weixin.qq.com/s/FtbzTMxHgzL0G1R2pSlh-A 通常来说,如果问Spring内部如何解决循环依赖,一定是单默认的单例Bean中,属性互相引用的场景. ...