Wie deinstalliere ich NodeJS, die von pkg (Mac OS X) installiert wurden?


124

Ich habe NodeJS aus der pkg-Datei auf meinem Mac installiert. Jetzt muss ich es deinstallieren. Sag mir bitte, wie es geht. Ich habe versucht, Dateien aus dieser Liste zu entfernen:

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

Der Knoten befindet sich jedoch noch auf meinem Computer.


1
Kann ich feststellen, dass dies sudo npm uninstall npm -gviel sicherer und einfacher ist als die unten angegebenen Antworten?
Tomsmeding

17
Aber das deinstalliert nicht node.js
Jake

Antworten:


172

Ich rannte:

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

In Kern 2697848 codiert

Aktualisieren Es scheint , die Quittungen .bomDateinamen geändert haben , so müssen Sie möglicherweise ersetzen org.nodejs.pkg.bommit org.nodejs.node.pkg.bomder oben. Das Wesentliche wurde entsprechend aktualisiert.


2
Sehr hilfreich. Das einzige, was ich hinzufügen möchte, ist, dass der Knoten 0.4 in / usr installiert ist, nicht in / usr / local. Daher muss "sudo rm / usr / local / $ {i}" geändert werden. Für mich habe ich "sudo rm / $ {i}" gemacht, da die bom-Dateien wie: "./usr/bin/node"
Dustin Simpson

13
Ich habe einen Kern dafür erstellt. Verwenden Sie es auf eigenes Risiko.
Nicerobot

5
@nicerobot Danke für das Wesentliche / Skript! Sollte wahrscheinlich andere darauf hinweisen, dass die eigentliche Kernseite für dieses Skript hier ist . Da ich ein n00b war, um .sh-Skripte selbst auszuführen, musste ich $ chmod u+x uninstall-node.shund dann, $ ./uninstall-node.shbevor es für mich funktionierte. :)
mhulse

1
Ja, es hat funktioniert, coole Antwort. Was auch immer ich hatte noch etwas übrig und beendete das rm -rf /Users/me/local/bin/nodesofort mit dem jetzt schaukelnden Knoten instabil!
Bent Cardan

1
@Gomino Wenn Sie solche Dinge ausführen, würde ich es allgemeiner sagen, Sie sollten WIRKLICH Ihr System und das Skript überprüfen, um zu verstehen, ob es das tun wird, was Sie wollen. Das Skript wurde für ältere Versionen von macOS und Node.js geschrieben und erfordert möglicherweise Aktualisierungen.
Nicerobot

116

Wenn Sie Node von der Website installiert haben , versuchen Sie Folgendes :

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

Das hat bei mir funktioniert, aber wenn Sie Fragen haben, ist mein GitHub 'mnafricano'.


Ich hatte meine in / opt / local / bin
sasklacz

1
Das liegt wahrscheinlich daran, dass Sie MacPorts verwendet haben
nicht bis zum

Dies funktionierte für mich, nachdem @ nicerobots Skript (höher bewertete Antwort) kakophon fehlgeschlagen war. Deinstalliert und neu installiert 0.10.32.
Jeff Dickey

3
und auch vermisst/usr/local/lib/dtrace/node.d
Pascal Belloncle

2
vermisst/var/db/receipts/org.nodejs.*
Wallace Sidhrée

68

Nach den vorherigen Beiträgen finden Sie hier die vollständige Liste, die ich verwendet habe

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
DANKE. Mein MySQL hat aufgehört zu funktionieren, also musste ich es nur entfernen, dies + ein Neustart hat den Trick getan.
Mizuki

Ich musste auch zwei zusätzliche Dateien entfernen: /usr/local/share/doc/node/gdbinitund/usr/local/share/systemtap/tapset/node.stp
xji

habe 2 Fehler als rm: / usr / local / bin / node: Keine solche Datei oder kein solches Verzeichnis, rm: /usr/local/share/man/man1/node.1: Keine solche Datei oder kein solches Verzeichnis
vikramvi

11

Um die Installation von 'native' node.js zu löschen, habe ich die in früheren Antworten vorgeschlagene Methode sudo npm uninstall npm -gmit zusätzlichen Methoden verwendet sudo rm -rf /usr/local/lib/node /usr/local/lib/node_modules /var/db/receipts/org.nodejs.*.

ABER ich musste auch die folgenden zwei Verzeichnisse löschen:

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

Erst danach konnte ich node.js mit Homebrew installieren.


3
war nicht genug für mich - musste auchsudo rm /usr/local/bin/node /usr/local/share/man/man1/node.1 /usr/local/lib/dtrace/node.d
Hertzel Guinness

8

Dies ist die vollständige Liste der Befehle, die ich verwendet habe (Vielen Dank an die obigen Poster):

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

Verwenden Sie npm zum Deinstallieren. Durch einfaches Ausführen werden sudo npm uninstall npm -galle Dateien entfernt. Um die überflüssigen Dinge wie Bash-Pfadnamen loszuwerden, führen Sie Folgendes aus (aus der Antwort von nicerobot):

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


5

Ich nahm die Liste von AhrB und fügte drei weitere Dateien hinzu. Hier ist die vollständige Liste, die ich verwendet habe:

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
Hat super für mich funktioniert! Überspringen Sie die letzte Zeile, um den Knoten auf Ihrem System deinstalliert zu lassen.
Rich

Danke @Rich für den Kommentar, ich habe die letzte Zeile auskommentiert.
Hagel am

3

Ein kleines Convenience-Skript, das frühere Antworten erweitert.

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

Speichern Sie es in einer Datei und führen Sie es aus mit:

# bash filename.sh

0

Ich musste auch die folgenden Dateien entfernen, da sich Brew später bei der Installation beschwert hatte, nachdem alle Dateien manuell entfernt worden waren.

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

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

und dann folgendes tun

brew install node 

brew link node

Verwenden Sie Markup, um Ihren Code oder Ihre Pfade als Monotyp zu formatieren.
Buhtz

Frage ist über Deinstallation nicht Installation .. Sie wahrscheinlich falsch geschrieben sollte es sein ..... brauen Deinstallationsknoten
mhasan

0

Das Folgende funktionierte nach Versuch und Irrtum, und diese Verzeichnisse waren nicht beschreibbar. Ich entfernte sie und konnte schließlich Node & npm ersetzen.

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
Ich habe Ihre Formatierung geändert. Sie können einen Textblock auswählen und auf das Symbol für geschweifte Klammern klicken, um Monospace-Text abzurufen. Oder rücken Sie jede Zeile mit vier Leerzeichen ein, wenn Sie Masochist sind.
Echo Nolan
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.