在 macOS Big Sur 版本 11.2.3 (20D91) 上完全卸载 Nodejs
简介
首先,我想说谢谢你分享这个trick@tonymtz。
我的系统正在运行macOS Big Sur version 11.2.3 (20D91),并从官方网站安装nodejs Latest Current Version: 15.14.0 (includes npm 7.7.6)。
我尝试在我的 MacBook Pro 上完全卸载 nodejs,以便使用 homebrew 包管理器重新安装它:
lsbom -f -l -s -pf /var/db/receipts/org.nodejs.pkg.bom | while read f; do sudo rm /usr/local/${f}; done
但我遇到了@JohelAlvarez 的answer 中提到的@AhteshamShah 之类的问题:
当触发第一个命令时:can't open /var/db/receipts/org.nodejs.pkg.bom: No such file or directory **** Can't open /var/db/receipts/org.nodejs.pkg.bom.
– Ahtesham Shah 2019 年 6 月 20 日在 5:09
我潜入了@JohelAlvarez 链接的the original post,阅读了所有的cmets,我从@e2tha-e 找到了这个comment:
@tonymtz 在 Yosemite 10.10.5 上安装 Node v4.0.0 时,第一行需要是
lsbom -f -l -s -pf /var/db/receipts/org.nodejs.node.pkg.bom | while read f; do sudo rm /usr/local/${f}; done
与org.nodejs.pkg.bom 不同的文件名
否则,这就像一个魅力!
@e2tha-e 是对的,在macOS Big Sur version 11.2.3 (20D91) 上,从官网安装了nodejs Latest Current Version: 15.14.0 (includes npm 7.7.6),文件名不是org.nodejs.pkg.bom 而是org.nodejs.node.pkg.bom。
你可以在cd /var/db/receipts/ && ls -la时查看这个。
从Nodejs官网安装解决方案
使用您喜欢的终端,从您的系统中完全卸载 Nodejs,如下所示:
选项 1
lsbom -f -l -s -pf /var/db/receipts/org.nodejs.node.pkg.bom | while read f; do sudo rm /usr/local/${f}; done
sudo rm -rf /usr/local/lib/node /usr/local/lib/node_modules /var/db/receipts/org.nodejs.*
选项 2
转到/var/db/receipts/ 并删除任何org.nodejs.*
cd /var/db/receipts/ && ls -la
sudo rm -rf org.nodejs.*
转到/usr/local/lib 并删除任何node 和node_modules
cd /usr/local/lib && ls -la
sudo rm -rf node*
转到/usr/local/include 并删除任何node 和node_modules 目录
cd /usr/local/include && ls -la
sudo rm -rf node*
检查您的 $HOME 目录是否有任何“本地”或“lib”或“包含”文件夹,并从那里删除任何“节点”或“节点模块”。
转到/usr/local/bin 并删除任何节点可执行文件
cd /usr/local/bin && ls -la
sudo rm -rf /usr/local/bin/npm
sudo rm -rf /usr/local/bin/node
您可能也需要这样做:
sudo rm -rf /usr/local/share/man/man1/node.1
sudo rm -rf /usr/local/lib/dtrace/node.d
sudo rm -rf ~/.npm
之后,您可以使用which node 检查系统中是否还有node,或者查找系统中所有出现的节点。
提示
- 使用
find / -name 'node' | sed -E 's|/[^/]+$||' |sort -u搜索节点文件的位置
- 在运行其他人共享的代码之前,请先检查您的目录,确保您编写了正确的文件名。