如何卸载从pkg(Mac OS X)安装的nodejs?


124

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

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

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


1
我能注意到sudo npm uninstall npm -g比下面给出的答案更安全,更容易吗?
tomsmeding

17
但这并不能卸载node.js
Jake

Answers:


172

我跑了:

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

编码为要点2697848

更新 收据.bom文件名似乎已更改,因此您可能需要在其中替换org.nodejs.pkg.bomorg.nodejs.node.pkg.bom。要点已相应更新。


2
很有帮助。我唯一要添加的是节点0.4 ish安装在/ usr,而不是/ usr / local。因此,需要更改“ sudo rm / usr / local / $ {i}”。对我来说,我做了“ sudo rm / $ {i}”,因为Bom文件路径如下:“ ./usr/bin/node”
Dustin Simpson

13
我为此创建了要点。需要您自担风险使用它。
nicerobot 2012年

5
@nicerobot感谢您的要旨/脚本!可能应该向其他人指出该脚本的实际要点页面在这里。另外,作为自己亲自运行.sh脚本的n00b,我不得不这样做$ chmod u+x uninstall-node.sh,然后才对我有用$ ./uninstall-node.sh。:)
mhulse

1
是的,它的工作原理很酷。不管我有什么遗留的东西,刚好完成,rm -rf /Users/me/local/bin/node现在摇摆的节点不稳定!
Bent Cardan

1
@Gomino在运行这样的事情时,我会更笼统地说,您真的应该检查您的系统和脚本,以了解它是否会做您想要的事情。该脚本是针对旧版本的macOS和Node.js编写的,因此可能需要更新。
nicerobot

116

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

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

这对我有用,但是如果您有任何疑问,我的GitHub是'mnafricano'。


我的矿井安装在/ opt / local / bin中
sasklacz 2014年

1
那可能是因为您使用的是MacPorts
notthetup 2014年

@nicerobot的脚本(较高答案)失败后,这对我有用。卸载并重新安装0.10.32。
杰夫·迪基

3
并且也失踪了/usr/local/lib/dtrace/node.d
Pascal Belloncle 2015年

2
失踪/var/db/receipts/org.nodejs.*
华莱士·西德雷(WallaceSidhrée),2015年

68

在之前的帖子之后,这是我使用的完整列表

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

1
谢谢。我的MySQL停止工作了,所以我只需要删除它,然后重新启动就可以了。
mizuki

我还必须删除两个其他文件:/usr/local/share/doc/node/gdbinit/usr/local/share/systemtap/tapset/node.stp
xji

rm出现2个错误:/ usr / local / bin / node:没有这样的文件或目录,rm:/usr/local/share/man/man1/node.1:没有这样的文件或目录
vikramvi '19

11

为了删除“本机” 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。


3
是不够的我-只好也sudo rm /usr/local/bin/node /usr/local/share/man/man1/node.1 /usr/local/lib/dtrace/node.d
Hertzel力士

8

这是我使用的命令的完整列表(非常感谢上面的海报):

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

5

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


5

我添加了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

1
对我来说很棒!跳过最后一行,以使节点在系统上卸载。
丰富

感谢@Rich的评论,我已注释掉最后一行。
hailong'4

3

一个方便的脚本扩展了以前的答案。

#!/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

0

我也必须删除以下文件,因为brew在手动删除所有文件后在安装中抱怨。

/usr/local/share/doc/node/gdbinit

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

然后执行以下操作

brew install node 

brew link node

使用标记将代码或路径设置为单型。
buhtz '16

问题是关于卸载未安装..您可能拼错了它应该是... brew卸载节点
mhasan

0

经过反复试验,以下代码有效,并且这些目录不可写,因此,我将其删除,最后能够替换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

1
我修改了您的格式。您可以选择一个文本块,然后单击大括号图标以获取等宽文本。或者,如果您是受虐狂,则每行缩进四个空格。
Echo Nolan
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.