关于node.js:如何卸载从pkg(Mac OS X)安装的nodejs?

How do I uninstall nodejs installed from pkg (Mac OS X)?

我在Mac上安装了pkg文件中的nodejs。现在我需要卸载它。请告诉我怎么做。我尝试从此列表中删除文件:

lsbom -f -l -s -pf /var/db/receipts/org.nodejs.pkg.bom

但节点仍在我的计算机上。

  • 我能注意到,sudo npm uninstall npm -g比下面给出的答案更安全、更容易吗?
  • 但这并不能卸载node.js


我跑了:

1
2
3
4
5
6
7
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.node.pkg.bom替换org.nodejs.pkg.bom。GIST已相应更新。

  • 非常有帮助。我唯一要补充的是,节点0.4ish安装在/usr中,而不是/usr/local中。因此"sudo rm/usr/local/$i"需要更改。对于我来说,我做了"sudo rm/$i",因为路径所指向的BOM文件如下:"/usr/bin/node"
  • 我为它创造了一个要点。风险自负。
  • 坚实的回答。这就成功了。
  • @Nicerobot感谢您的主旨/脚本!可能应该向其他人指出脚本的实际要点页面在这里。而且,作为一个运行.sh脚本的n00b,我必须先运行$ chmod u+x uninstall-node.sh,然后运行$ ./uninstall-node.sh,它才能为我工作。:)
  • @尼塞罗博特和米奇胡尔兹这是最棒的!+1对你们俩。另外,在执行脚本之后,请尝试>"哪个节点"或"哪个NPM",以查看您是否仍然安装了节点/NPM(或者至少安装了一个版本)。
  • 是的,它起作用了,很酷的回答。不管我剩下什么东西,刚完成的时候,rm -rf /Users/me/local/bin/node现在摇摆不定了!
  • 史诗!…很有魅力


如果您从他们的网站安装了节点,请尝试以下操作:

1
sudo rm -rf /usr/local/{bin/{node,npm},lib/node_modules/npm,lib/node,share/man/*/node.*}

这对我很有用,但如果你有任何问题,我的Github是"南非佬"。

  • 似乎对我有用
  • 我在/opt/local/bin中安装了我的
  • 那可能是因为你使用的是MacPorts
  • 在@nicerobot的脚本(高分答案)失败后,这对我很有效,声音刺耳。已卸载并重新安装0.10.32。
  • 上面的命令缺少/usr/local/include/node/
  • 还缺少EDOCX1[4]
  • 缺少/var/db/receipts/org.nodejs.*


以下是我以前的文章,下面是我使用的完整列表

1
2
3
4
5
6
7
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


为了删除"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.*

但是,我还必须删除以下两个目录:

1
sudo rm -rf /usr/local/include/node /Users/$USER/.npm

只有在这之后,我才能用自制安装node.js。

  • 对我来说是不够的——我也不得不这样做。


这是我使用的命令的完整列表(多亏了上面的海报):

1
2
3
4
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

  • 这对我有用!


我拿了AHRB的清单,同时又附加了三个文件。以下是我使用的完整列表:

1
2
3
4
5
6
7
8
9
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的评论,我已经评论了最后一行。


使用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.*


在前面的答案基础上扩展的一个小便利脚本。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#!/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}

将其保存到文件并运行:

1
# bash filename.sh

以下内容在尝试和错误之后都有效,这些目录不可写,因此,我删除了它们,最终能够替换节点和NPM。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
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

  • 我修改了你的格式。您可以选择一块文本,然后单击大括号图标以获取单空间文本。如果你是受虐狂,每行缩进四个空格。


我也不得不删除以下文件,因为BREW在稍后手动删除所有文件后,在安装过程中抱怨过。

1
2
3
/usr/local/share/doc/node/gdbinit

/usr/local/share/systemtap/tapset/node.stp

然后做下面的事情

1
2
3
brew install node

brew link node

  • 使用标记将代码或路径格式化为monotype。
  • 问题是卸载而不是安装。您可能拼写错误,应该是…..brew uninstall node