背景
mac book 升级操作系统以后,brew变得缺胳膊少腿,不能正常运行了
搜了很多修复的办法都不能工作。
初次尝试
后面去brew官网https://brew.sh/找到这个命令
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
但是因为有那一堵伟大的墙,很多资源拉不下来。
开动脑筋
机制的我想,国内肯定有人碰到类似的问题,然后已经有墙内办法了,于是在gitee上搜索试试运气,运气不错,找到这个项目
https://gitee.com/cunkai/HomebrewCN
里面的下面这条命令帮我解决了问题
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"
小试牛刀
$ brew install watchman
....此处省略日志若干行
$ which watchman
/usr/local/bin/watchman
完美解决,一劳永逸
为了一劳永逸解决问题,把brew源切换为国内源吧,我是切换到清华大学的仓库,操作如下
# 替换各个源
$ git -C "$(brew --repo)" remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git
$ git -C "$(brew --repo homebrew/core)" remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git
$ git -C "$(brew --repo homebrew/cask)" remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-cask.git
# zsh 替换 brew bintray 镜像
$ echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles' >> ~/.zshrc
$ source ~/.zshrc
# bash 替换 brew bintray 镜像
$ echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles' >> ~/.bash_profile
$ source ~/.bash_profile
# 刷新源
$ brew update
具体参照 Mac 下 brew 切换为国内源
HomeBrew简介
我们在使用Linux系统的时候,都很喜欢 (Debian/Ubuntu)系列的apt包管理系统和(Redhat/Fedora)系列的yum包管理系统。Mac OS X系统下面有apple的官方Mac App Store。但是好多软件是找不到的,所以我们也向在苹果下找到一款比较方便的包管理系统,就是Homebrew。
什么是Homebrew呢?Homebrew is the easiest and most flexible way to install the UNIX tools Apple didn’t include with OS X. 官方的解释非常明了,Homebrew是一个包管理器,用于在Mac上安装一些OS X没有的UNIX工具(比如著名的wget),能在Mac中方便的安装软件或者卸载软件,可以说Homebrew就是mac下的apt-get、yum神器。
Homebrew安装
Homebrew的安装非常简单,打开终端,执行以下命令:
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
中途需要Press RETURN to continue
,输入系统密码等操作就完成了安装。
Homebrew安装成功后,会自动创建目录/usr/local/Cellar 来存放Homebrew安装的程序,并在 /usr/local/bin 中创建符号链接. 在命令行状态下面就可以使用 brew 命令了.
brew 使用方法
举个例子,安装git:
搜索git(此步骤非必须)
brew search git
安装软件
brew install git
卸载软件
brew uninstall git
显示已经安装软件列表
brew list
常用命令
brew list #列出已安装的软件
brew update #更新brew
brew home #用浏览器打开brew的官方网站
brew info #显示软件信息
brew deps #显示包依赖
brew upgrade #更新某个具体软件
brew outdated #查看那些包需要更新
卸载brew
cd `brew –prefix`
rm -rf Cellar
brew prune
rm `git ls-files`
rm -rf Library .git .gitignore bin/brew
rm -rfREADME.mdshare/man/man1/brew
rm -rf Library/Homebrew Library/Aliases
rm -rf Library/Formula Library/Contributions
rm -rf ~/Library/Caches/Homebrew
brew更新源
参考http://blog.csdn.net/u010275932/article/details/76080833
在网上找个更新源的配置,网上教程数不胜数,最后看到上文链接,解释的很详细易懂。感谢作者的分享!
更新源的机制
Homebrew的更新源由三部分组成:本体(brew.git)、核心(homebrew-core.git)以及二进制预编译包(homebrew-bottles)。
在很多教程中,只会提及到更换本体,而未涉及到核心与二进制预编译包的更换。这样实际上效果是不完全的(尽管这样也无法做到完全,毕竟有一些软件包的地址是不被收录的,只能从它们提供的链接处下载)。
从.git的后缀名可以看出,Homebrew的更新源是以Git仓库的形式存在的,这便是为什么需要用到Git的原因。也正是如此,使得可以对其进行克隆,成为新源。
更新源的选择
默认官方的更新源都是存放在GitHub上的,这也是中国大陆用户访问缓慢的原因,一般来说我们会更倾向选择国内提供的更新源,在此推荐中国科大以及清华大学提供的更新源,因为它们能够完整以上源组成的三个部分。并且在此感谢他们为大家提供的服务。
替换更新源
# 替换brew.git:
$ cd "$(brew --repo)"
# 中国科大:
$ git remote set-url origin https://mirrors.ustc.edu.cn/brew.git
# 清华大学:
$ git remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/brew.git
# 替换homebrew-core.git:
$ cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core"
# 中国科大:
$ git remote set-url origin https://mirrors.ustc.edu.cn/homebrew-core.git
# 清华大学:
$ git remote set-url origin https://mirrors.tuna.tsinghua.edu.cn/git/homebrew/homebrew-core.git
# 替换homebrew-bottles:
# 中国科大:
$ echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.ustc.edu.cn/homebrew-bottles' >> ~/.bash_profile
$ source ~/.bash_profile
# 清华大学:
$ echo 'export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles' >> ~/.bash_profile
$ source ~/.bash_profile
# 应用生效:
$ brew update
以上在中国科大和清华大学任选其一即可,在使用其他源的时候,最好先尝试访问其链接看看是否健在,并且因为历史原因,最初的brew.git是叫homebrew.git的,而现在部分更新源早已随官方更名,所以切记要验证。
并且没有严格规定必须三个组成部分必须是来自同一提供,可随性发挥。
且Homebrew在早期版本中更新源的是在/usr/local
目录下的,而现在是在/usr/local/Homebrew
,不过应该都是可以使用"$(brew --repo)"
来自动指向目录的,所以无需理会。
如果你之前折腾过不少导致你的Homebrew有点问题,那么可以尝试使用如下方案:
# 诊断Homebrew的问题:
$ brew doctor
# 重置brew.git设置:
$ cd "$(brew --repo)"
$ git fetch
$ git reset --hard origin/master
# homebrew-core.git同理:
$ cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core"
$ git fetch
$ git reset --hard origin/master
# 应用生效:
$ brew update
重置更新源
所谓有进则有退,在某些时候也有换回官方源的需求。
# 重置brew.git:
$ cd "$(brew --repo)"
$ git remote set-url origin https://github.com/Homebrew/brew.git
# 重置homebrew-core.git:
$ cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core"
$ git remote set-url origin https://github.com/Homebrew/homebrew-core.git
至于homebrew-bottles,本质上作为一个环境变量的存在,之前的命令也只是将其写入到/usr/.bash_profile中,并且只是在文件尾部添加一行。所以之前的命令不推荐重复执行,在未掌握相关命令技巧的前提下,我推荐直接去修改.bash_profile文件:
image当然这里的主题是重置更新源,所以我们直接选择删除环境变量HOMEBREW_BOTTLE_DOMAIN,使其成为默认值即可。
当然,最后不要忘记$ brew update进行应用。
在完成更新源的更换后,我们可以使用[图片上传失败...(image-df10ff-1653559401854)]
brew cleanup将旧有的软件安装包进行清理。
以上都是经过本人测试后整理的,自用。
📅20210629 更新:
快速安装brew
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"
网友评论