由于某些原因,使用brew update命令直接升级homebrew会因为访问不到代码的地址而失败。一般会出现以下提示:
user@userdeMacBookPro Homebrew %brew update
Error: Fetching /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core failed!
要使MacOS能正常下载homebrew的代码,只需要把homebrew的仓库地址更换成国内源(国内homebrew仓库)URL地址即可。
1、homebrew国内源URL替换
这里以国内中科大的homebrew源为例:
(1)克隆国内homebrew源到homebrew-core
注意,如果有老版本的homebrew,则需要把对应路径的homebrew-core目录删除,如果是第一次使用,则不需要
rm -rf /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core
如果安装过老版本,删除后再执行以下命令,如果没有安装过,直接执行以下命令
git clone git://mirrors.ustc.edu.cn/homebrew-core.git/ /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core --depth=1
(2)更改homebrew和homebrew-core的源
更改homebrew和homebrew-core仓库的源URL为国内中科大的源URL
cd "$(brew --repo)"
git remote set-url origin https://mirrors.ustc.edu.cn/brew.git
cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core"
git remote set-url origin https://mirrors.ustc.edu.cn/homebrew-core.git
注意:$(brew --repo)是一个路径变量,指的是以下路径:
/usr/local/Homebrew
2、更新homebrew
(1)克隆homebrew-core文件夹
git -C /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core fetch --unshallow
(2)更新homebrew安装的软件版本
查看已经过时的homebrew包版本(如果不想看,直接升级以可以,升级时会列出报版本由什么版本升级到了什么版本,比如minicom 2.7.1 -> 2.8)
brew outdated
更新已有过时的homebrew包版本
brew upgrade
更新的时候,也会列出brew安装包由什么版本升级成什么版本,比如
minicom 2.7.1 -> 2.8
gmp 6.2.0 -> 6.2.1_1
libidn2 2.3.0 -> 2.3.2
ncurses 6.2 -> 6.3
nettle 3.4.1 -> 3.7.3
gdbm 1.18.1 -> 1.22
libyaml 0.2.4 -> 0.2.5
glib 2.64.2_1 -> 2.70.2
zsh-completions 0.31.0 -> 0.33.0_1
readline 8.0.4 -> 8.1.1
exa 0.9.0 -> 0.10.1
utf8proc 2.5.0 -> 2.7.0
sqlite 3.31.1 -> 3.37.0
vde 2.3.2 -> 2.3.2_1
gettext 0.20.2_1 -> 0.21
libssh2 1.9.0_1 -> 1.10.0
qemu 5.0.0 -> 6.2.0
fping 4.2 -> 5.0
libtasn1 4.16.0 -> 4.18.0
libssh 0.9.4 -> 0.9.6
pcre2 10.35 -> 10.39
libevent 2.1.11_1 -> 2.1.12
openssl@1.1 1.1.1g -> 1.1.1m
pcre 8.44 -> 8.45
unbound 1.10.0 -> 1.13.2_1
libusb 1.0.23 -> 1.0.24
python@3.8 3.8.2 -> 3.8.12_1
p11-kit 0.23.20_1 -> 0.24.0_1
libffi 3.3 -> 3.4.2
gnutls 3.6.13_1 -> 3.6.16_1
等待更新完成后,homebrew完成随即完成升级。