微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

m1 Mac的brew包完全卸载方法

写在前面

最近由于一些brew原生包(本地编译包,如numpy、emacs等)相继发布,我也准备卸载intel版的brew下的一些包,转而拥抱m1优化版brew,但是卸载brew包的时候还有点小问题,那就是使用brew的命令uninstall的话不能完全卸载干净,经过一番折腾,我找到了彻底卸载brew包的方法

完全卸载方法

首先需要安装一个包,需要用tap选项从GitHub站点中克隆源码,终端输入:

ibrew tap beeftornado/rmtree

速度应该很快的.

注意这里我用的是Rosetta2转译的brew,这个配置了镜像速度会快很多,但是有的包(例如numpy)速度就不如本地编译版的速度快。

然后使用如下命令卸载包即可(例如我需要卸载opencv):

ibrew rmtree opencv

但是这里还有一个坑点,就是我执行这条命令的时候显示报错(后来发现这还是好的,至少没给我卸载了原生版brew安装的包):

rmtree Error: No available formula or cask with the name "opencv"
……

网上一顿查也没有合适的办法,后来静下心来慢慢想,才发现原来是环境变量设置的问题,还记得前面(m1 MBA配置Homebrew环境+国内源配置)我有提到,将两个brew都加到环境变量中,设置别名后就可以顺畅使用了:

export PATH="/opt/homebrew/bin:/usr/local/bin:$PATH"
alias ibrew='arch -x86_64 /usr/local/bin/brew'

但是这样设置的话在使用rmtree卸载的时候就会有一个问题:brew认的路径是/opt/homebrew/bin,这样rmtree在搜寻brew包安装位置的时候,就会先选择原生版brew的包,而原生版并未安装这些包,所以就会发生报错,但是上面我说这还是好的了,是因为如果原生版里面安装了这些包,那rmtree就直接给卸载了,原生版直接拷源码安装是需要很长时间的。。所以卸载需谨慎啊!!

解决方案也很简单,注释掉~/.zshrc中的环境变量,直接改成Rosetta2转译版的brew路径即可,即:

# export PATH="/opt/homebrew/bin:/usr/local/bin:$PATH"
export PATH="/usr/local/bin:$PATH"

后执行rmtree卸载,执行之后换回原来的brew环境变量即可。

建议在卸载时候先使用ibrew list看一下已经安装的包,然后再执行卸载,这样会安全点。

总结

遇报错固然最先想到百度报错信息,但是在搜索之前先仔细思考为什么会报错,才是更重要的。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐