简体   繁体   English

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

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

I installed NodeJS from pkg file on my Mac.我在我的 Mac 上从 pkg 文件安装了 NodeJS。 Now I need to uninstall it.现在我需要卸载它。 Tell me please how to do it.请告诉我该怎么做。 I tried to remove files from this list:我试图从此列表中删除文件:

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

But node is still on my computer.但是节点还在我的电脑上。

I ran:我跑了:

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

Coded into gist 2697848编码为要点 2697848

Update It seems the receipts .bom file name may have changed so you may need to replace org.nodejs.pkg.bom with org.nodejs.node.pkg.bom in the above.更新似乎收据.bom文件名可能已经改变,所以你可能需要更换org.nodejs.pkg.bomorg.nodejs.node.pkg.bom在上面。 The gist has been updated accordingly.要点已相应更新。

If you installed Node from their website , try this:如果您从他们的网站安装了 Node,请尝试以下操作:

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

This worked for me, but if you have any questions, my GitHub is 'mnafricano'.这对我有用,但如果您有任何问题,我的 GitHub 是“mnafricano”。

Following previous posts, here is the full list I used在之前的帖子之后,这是我使用的完整列表

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

In order to delete the 'native' node.js installation, I have used the method suggested in previous answers sudo npm uninstall npm -g , with additional sudo rm -rf /usr/local/lib/node /usr/local/lib/node_modules /var/db/receipts/org.nodejs.* .为了删除“本机”node.js 安装,我使用了先前答案sudo npm uninstall npm -g建议的方法,并附加了sudo rm -rf /usr/local/lib/node /usr/local/lib/node_modules /var/db/receipts/org.nodejs.*

BUT, I had to also delete the following two directories:但是,我还必须删除以下两个目录:

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

Only after that I could install node.js with Homebrew.只有在那之后我才能用 Homebrew 安装 node.js。

This is the full list of commands I used (Many thanks to the posters above):这是我使用的命令的完整列表(非常感谢上面的海报):

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

Use npm to uninstall.使用 npm 卸载。 Just running sudo npm uninstall npm -g removes all the files.只需运行sudo npm uninstall npm -g删除所有文件。 To get rid of the extraneous stuff like bash pathnames run this (from nicerobot's answer):要摆脱诸如 bash 路径名之类的无关内容,请运行此命令(来自 nicerobot 的回答):

sudo rm -rf /usr/local/lib/node \\ /usr/local/lib/node_modules \\ /var/db/receipts/org.nodejs.*

I took AhrB's list, while appended three more files.我拿了 AhrB 的清单,同时附加了三个文件。 Here is the full list I have used:这是我使用过的完整列表:

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

A little convenience script expanding on previous answers.一个扩展先前答案的便利脚本。

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

Save it to file and run with:将其保存到文件并运行:

# bash filename.sh

You can use my forked gist: https://gist.github.com/ryangatchalian912/75c6894c3f3143fef366d25eb63437ab你可以使用我的分叉要点: https : //gist.github.com/ryangatchalian912/75c6894c3f3143fef366d25eb63437ab

Copy and paste these commands into your Terminal :将这些命令复制并粘贴到您的终端中

curl -ksO https://gist.githubusercontent.com/ryangatchalian912/75c6894c3f3143fef366d25eb63437ab/raw/9345866b0f3d0bb0ab1bebbe721a811f15a2adbe/uninstall-node.sh
chmod +x ./uninstall-node.sh
sudo ./uninstall-node.sh
rm uninstall-node.sh

It works on Mac OSX Big Sur (11.4).它适用于 Mac OSX Big Sur (11.4)。

I had to remove the following files too since brew complained in install later after manually removing all files.我也必须删除以下文件,因为 brew 在手动删除所有文件后在安装中抱怨。

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

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

and then do the following然后执行以下操作

brew install node 

brew link node

The following worked after trial and error, and these directories were not writable so, I removed them and finally was able to get node & npm replaced.经过反复试验,以下工作正常,并且这些目录不可写,因此,我删除了它们,最终能够替换 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

A decent way to uninstall node installed from pkg卸载从 pkg 安装的节点的好方法

See what is in db/receipts查看 db/receipts 中有什么

ls /var/db/receipts/org.node*

Peek into the relevant bom files noting the paths listed查看相关的 bom 文件,注意列出的路径

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

Do the deletes.做删除。 Use prefix on remove depending on the paths above.根据上面的路径,在删除时使用前缀。

lsbom -f -l -s -pf /var/db/receipts/org.nodejs.node.pkg.bom | while read i; do sudo rm /${i}; done

lsbom -f -l -s -pf /var/db/receipts/org.nodejs.npm.pkg.bom | while read i; do sudo rm /${i}; done

Remove the remaining folders删除剩余的文件夹

  • sudo rm -rf /usr/local/lib/node_modules
  • sudo rm -rf /var/db/receipts/org.nodejs.*

Check it is really gone检查它是否真的消失了

  • which node
  • which npm

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM