【问题标题】:How do I uninstall nodejs installed from pkg (Mac OS X)?如何卸载从 pkg (Mac OS X) 安装的 nodejs?
【发布时间】: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

标签: node.js pkg-file


【解决方案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】:

根据之前的帖子,这是我使用的完整列表

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目录
【解决方案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】:

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

    【讨论】:

      【解决方案7】:

      我拿走了 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 的评论,我已经把最后一行注释掉了。
      【解决方案8】:

      您可以使用我的分叉要点: 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)
      【解决方案9】:

      在以前的答案上扩展了一个小脚本。

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

      【讨论】:

        【解决方案10】:

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

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

        然后执行以下操作

        brew install node 
        
        brew link node
        

        【讨论】:

        • 使用标记将您的代码或路径格式化为单型。
        • 问题是关于卸载而不是安装..你可能拼错了它应该是.....brew卸载节点
        【解决方案11】:

        经过反复试验,以下工作正常,这些目录不可写,所以我删除了它们,终于能够替换 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
        

        【讨论】:

        • 我修改了你的格式。您可以选择一个文本块并单击大括号图标以获取等宽文本。或者如果你是受虐狂,每行缩进四个空格。
        猜你喜欢
        • 1970-01-01
        • 2010-11-29
        • 1970-01-01
        • 1970-01-01
        • 2015-04-03
        • 2012-06-26
        • 2012-03-30
        相关资源
        最近更新 更多