如何卸载从 pkg (Mac OS X) 安装的 nodejs?
Posted
技术标签:
【中文标题】如何卸载从 pkg (Mac OS X) 安装的 nodejs?【英文标题】:How do I uninstall nodejs installed from pkg (Mac OS X)? 【发布时间】:2012-02-21 02:53:47 【问题描述】:我从我的 Mac 上的 pkg 文件安装了 NodeJS。现在我需要卸载它。请告诉我该怎么做。 我试图从这个列表中删除文件:
lsbom -f -l -s -pf /var/db/receipts/org.nodejs.pkg.bom
但是节点还在我的电脑上。
【问题讨论】:
我能注意到sudo npm uninstall npm -g
比下面给出的答案更安全、更容易吗?
但这不会卸载 node.js
【参考方案1】:
我跑了:
lsbom -f -l -s -pf /var/db/receipts/org.nodejs.pkg.bom \
| while read i; do
sudo rm /usr/local/$i
done
sudo rm -rf /usr/local/lib/node \
/usr/local/lib/node_modules \
/var/db/receipts/org.nodejs.*
编码为gist 2697848
更新
似乎收据.bom
文件名可能已更改,因此您可能需要将上面的org.nodejs.pkg.bom
替换为org.nodejs.node.pkg.bom
。要点已相应更新。
【讨论】:
非常有帮助。我唯一要补充的是节点 0.4 ish 安装在 /usr 中,而不是 /usr/local。所以“sudo rm /usr/local/$i”需要改变。对我来说,我做了“sudo rm /$i”,因为路径所在的 bom 文件喜欢:“./usr/bin/node” 我为它创建了一个gist。使用它需要您自担风险。 @nicerobot 感谢您的要点/脚本!可能应该向其他人指出实际的gist page for that script is here。此外,作为自己运行 .sh 脚本的不二之选,我必须先$ chmod u+x uninstall-node.sh
然后 $ ./uninstall-node.sh
才能对我有用。 :)
是的,它的工作,很酷的答案。不管我有什么剩余的东西,刚刚用rm -rf /Users/me/local/bin/node
完成了,现在摇摆节点不稳定!
@Gomino 在运行这样的事情时,我会更笼统地说,你真的应该检查你的系统和脚本,以了解它是否会做你想做的事情。该脚本是针对旧版本的 macOS 和 Node.js 编写的,因此可能需要更新。【参考方案2】:
如果你是从他们的website 安装 Node,试试这个:
sudo rm -rf /usr/local/bin/node,npm,lib/node_modules/npm,lib/node,share/man/*/node.*
这对我有用,但如果您有任何问题,我的 GitHub 是“mnafricano”。
【讨论】:
我的安装在 /opt/local/bin 那可能是因为你使用的是 MacPorts 在@nicerobot 的脚本(评分较高的答案)失败后,这对我有用。 0.10.32 卸载并重新安装。 也缺少/usr/local/lib/dtrace/node.d
缺少/var/db/receipts/org.nodejs.*
【参考方案3】:
使用 npm 卸载。只需运行 sudo npm uninstall npm -g
即可删除所有文件。
要摆脱 bash 路径名之类的无关内容,请运行以下命令(来自 nicerobot 的回答):
sudo rm -rf /usr/local/lib/node \
/usr/local/lib/node_modules \
/var/db/receipts/org.nodejs.*
【讨论】:
【参考方案4】:为了删除'native' node.js 安装,我使用了之前答案sudo npm uninstall npm -g
中建议的方法,并附加了sudo rm -rf /usr/local/lib/node /usr/local/lib/node_modules /var/db/receipts/org.nodejs.*
。
但是,我还必须删除以下两个目录:
sudo rm -rf /usr/local/include/node /Users/$USER/.npm
只有在那之后我才能用 Homebrew 安装 node.js。
【讨论】:
对我来说还不够——还得sudo rm /usr/local/bin/node /usr/local/share/man/man1/node.1 /usr/local/lib/dtrace/node.d
【参考方案5】:
这是我使用的命令的完整列表(非常感谢上面的海报):
sudo rm -rf /usr/local/lib/node /usr/local/lib/node_modules /var/db/receipts/org.nodejs.*
sudo rm -rf /usr/local/include/node /Users/$USER/.npm
sudo rm /usr/local/bin/node
sudo rm /usr/local/share/man/man1/node.1
brew install node
【讨论】:
【参考方案6】:根据之前的帖子,这是我使用的完整列表
sudo npm uninstall npm -g
sudo rm -rf /usr/local/lib/node /usr/local/lib/node_modules /var/db/receipts/org.nodejs.*
sudo rm -rf /usr/local/include/node /Users/$USER/.npm
sudo rm /usr/local/bin/node
sudo rm /usr/local/share/man/man1/node.1
sudo rm /usr/local/lib/dtrace/node.d
brew install node
【讨论】:
谢谢。我的 mysql 停止工作,所以我只需要删除它,这 + 重新启动就可以了。 我还必须删除另外两个文件:/usr/local/share/doc/node/gdbinit
和 /usr/local/share/systemtap/tapset/node.stp
得到 2 个错误 rm: /usr/local/bin/node: No such file or directory, rm: /usr/local/share/man/man1/node.1: No such file or目录【参考方案7】:
在以前的答案上扩展了一个小脚本。
#!/bin/bash
# Uninstall node.js
#
# Options:
#
# -d Actually delete files, otherwise the script just _prints_ a command to delete.
# -p Installation prefix. Default /usr/local
# -f BOM file. Default /var/db/receipts/org.nodejs.pkg.bom
CMD="echo sudo rm -fr"
BOM_FILE="/var/db/receipts/org.nodejs.pkg.bom"
PREFIX="/usr/local"
while getopts "dp:f:" arg; do
case $arg in
d)
CMD="sudo rm -fr"
;;
p)
PREFIX=$arg
;;
f)
BOM_FILE=$arg
;;
esac
done
lsbom -f -l -s -pf $BOM_FILE \
| while read i; do
$CMD $PREFIX/$i
done
$CMD $PREFIX/lib/node \
$PREFIX/lib/node_modules \
$BOM_FILE
将其保存到文件并运行:
# bash filename.sh
【讨论】:
【参考方案8】:我拿走了 AhrB 的清单,同时又附加了三个文件。这是我使用的完整列表:
sudo rm -rf /usr/local/lib/node /usr/local/lib/node_modules /var/db/receipts/org.nodejs.*
sudo rm -rf /usr/local/include/node /Users/$USER/.npm
sudo rm /usr/local/bin/node
sudo rm /usr/local/share/man/man1/node.1
sudo rm /usr/local/bin/npm
sudo rm /usr/local/share/systemtap/tapset/node.stp
sudo rm /usr/local/lib/dtrace/node.d
# In case you want to reinstall node with HomeBrew:
# brew install node
【讨论】:
对我来说很棒!跳过最后一行,让系统上的节点处于卸载状态。 感谢@Rich 的评论,我已经把最后一行注释掉了。【参考方案9】:我也必须删除以下文件,因为 brew 在手动删除所有文件后在稍后安装时抱怨。
/usr/local/share/doc/node/gdbinit
/usr/local/share/systemtap/tapset/node.stp
然后执行以下操作
brew install node
brew link node
【讨论】:
使用标记将您的代码或路径格式化为单型。 问题是关于卸载而不是安装..你可能拼错了它应该是.....brew卸载节点【参考方案10】:经过反复试验,以下工作正常,这些目录不可写,所以我删除了它们,终于能够替换 node 和 npm。
sudo rm -rf /usr/local/share/systemtap
sudo rm -rf /usr/local/share/doc/node
sudo rm -rf /usr/local/Cellar/node/9.11.1
brew install node
==> Downloading https://homebrew.bintray.com/bottles/node-9.11.1.high_sierra.bottle.tar.gz
Already downloaded: /Users/xxx/Library/Caches/Homebrew/node-9.11.1.high_sierra.bottle.tar.gz
==> Pouring node-9.11.1.high_sierra.bottle.tar.gz
==> Caveats
Bash completion has been installed to:
/usr/local/etc/bash_completion.d
==> Summary
? /usr/local/Cellar/node/9.11.1: 5,125 files, 49.7MB
node -v
v9.11.1
npm -v
5.6.0
【讨论】:
我修改了你的格式。您可以选择一个文本块并单击大括号图标以获取等宽文本。或者如果你是受虐狂,每行缩进四个空格。【参考方案11】:您可以使用我的分叉要点: https://gist.github.com/ryangatchalian912/75c6894c3f3143fef366d25eb63437ab
将这些命令复制并粘贴到您的终端:
curl -ksO https://gist.githubusercontent.com/ryangatchalian912/75c6894c3f3143fef366d25eb63437ab/raw/59c25be64e5555415726bfa824ae41ae1b4539b9/uninstall-node.sh
chmod +x ./uninstall-node.sh
sudo ./uninstall-node.sh > tester.txt
rm uninstall-node.sh
它适用于 Mac OSX Big Sur (11.4+)。
【讨论】:
谢谢,它适用于 OS X 10.11 (El Capitan)以上是关于如何卸载从 pkg (Mac OS X) 安装的 nodejs?的主要内容,如果未能解决你的问题,请参考以下文章