Jak odinstalować oprogramowanie nodejs zainstalowane z pkg (Mac OS X)?

124

Zainstalowałem NodeJS z pliku pkg na moim Macu. Teraz muszę go odinstalować. Powiedz mi proszę, jak to zrobić. Próbowałem usunąć pliki z tej listy:

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

Ale node wciąż jest na moim komputerze.

Varvara Stepanova
źródło
1
Czy mogę zauważyć, że sudo npm uninstall npm -gjest to znacznie bezpieczniejsze i łatwiejsze niż odpowiedzi podane poniżej?
tomsmeding
17
Ale to nie powoduje odinstalowania node.js
Jake,

Odpowiedzi:

172

Biegłem:

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

Zakodowane w istocie 2697848

Aktualizować Wydaje się, że wpływy .bomnazwa pliku może być zmieniony tak, być może trzeba wymienić org.nodejs.pkg.bomz org.nodejs.node.pkg.bomwyżej. Streszczenie zostało odpowiednio zaktualizowane.

nicerobot
źródło
2
Bardzo pomocne. Dodałbym tylko, że węzeł 0.4 ish zainstalowany w / usr, a nie / usr / local. Dlatego „sudo rm / usr / local / $ {i}” należy zmienić. Dla mnie zrobił "sudo rm / $ {i}", ponieważ pliki bomb! Gdzie pathed podobało: "./usr/bin/node"
Dustin Simpson
13
Stworzyłem do tego sedno . Używaj go na własne ryzyko.
nicerobot
5
@nicerobot Dzięki za sedno / skrypt! Prawdopodobnie powinien zwrócić uwagę innych, że rzeczywista strona z treścią tego skryptu jest tutaj . Poza tym, będąc n00b do samodzielnego uruchamiania skryptów .sh, musiałem to zrobić $ chmod u+x uninstall-node.shi $ ./uninstall-node.shzanim to zadziałało. :)
mhulse
1
tak, zadziałało, fajna odpowiedź. cokolwiek mi zostało trochę czegoś i właśnie skończyłem to od razu, rm -rf /Users/me/local/bin/nodeteraz kołyszący się węzeł jest niestabilny!
Bent Cardan,
1
@Gomino, uruchamiając takie rzeczy, powiedziałbym to bardziej ogólnie, NAPRAWDĘ powinieneś sprawdzić swój system i skrypt, aby zrozumieć, czy zrobi to, co chcesz. Skrypt został napisany dla starszych wersji macOS i Node.js, więc może wymagać aktualizacji.
nicerobot
116

Jeśli zainstalowałeś Node z ich strony internetowej , spróbuj tego:

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

U mnie to zadziałało, ale jeśli masz jakieś pytania, mój GitHub to „mnafricano”.

Afreekano
źródło
Zainstalowałem mój w / opt / local / bin
sasklacz
1
To prawdopodobnie dlatego, że korzystałeś z MacPorts
końca
Zadziałało to dla mnie po tym, jak skrypt @ nicerobot (wyżej oceniona odpowiedź) zawiódł, kakofonicznie. Odinstalowano i ponownie zainstalowano 0.10.32.
Jeff Dickey,
3
a także zaginiony/usr/local/lib/dtrace/node.d
Pascal Belloncle
2
zaginiony/var/db/receipts/org.nodejs.*
Wallace Sidhrée
68

Po poprzednich postach, oto pełna lista, z której korzystałem

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
Trefex
źródło
1
DZIĘKUJĘ CI. MySQL przestał działać, więc musiałem go tylko usunąć, to + ponowne uruchomienie załatwiło sprawę.
mizuki
Musiałem również usunąć dwa dodatkowe pliki: /usr/local/share/doc/node/gdbiniti/usr/local/share/systemtap/tapset/node.stp
xji
otrzymałem 2 błędy jako rm: / usr / local / bin / node: Brak takiego pliku lub katalogu, rm: /usr/local/share/man/man1/node.1: Brak takiego pliku lub katalogu
vikramvi
11

Aby usunąć `` natywną '' instalację node.js, użyłem metody sugerowanej w poprzednich odpowiedziach sudo npm uninstall npm -g, z dodatkowymi sudo rm -rf /usr/local/lib/node /usr/local/lib/node_modules /var/db/receipts/org.nodejs.*.

ALE musiałem również usunąć następujące dwa katalogi:

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

Dopiero potem mogłem zainstalować node.js z Homebrew.

t0r0X
źródło
3
nie wystarczyło mi - musiał teżsudo rm /usr/local/bin/node /usr/local/share/man/man1/node.1 /usr/local/lib/dtrace/node.d
Hertzel Guinness
8

Oto pełna lista poleceń, których użyłem (podziękowania dla powyższych plakatów):

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
źródło
5

Użyj npm, aby odinstalować. Samo uruchomienie sudo npm uninstall npm -gusuwa wszystkie pliki. Aby pozbyć się zbędnych rzeczy, takich jak nazwy ścieżek bash, uruchom to (z odpowiedzi nicerobot):

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

alexbhandari
źródło
5

Wziąłem listę AhrB, dołączając jeszcze trzy pliki. Oto pełna lista, z której korzystałem:

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
witam
źródło
1
U mnie zadziałało! Pomiń ostatnią linię, aby pozostawić węzeł odinstalowany w systemie.
Rich
Dzięki @Rich za komentarz, skomentowałem ostatnią linię.
hailong
3

Mały skrypt ułatwiający rozwinięcie poprzednich odpowiedzi.

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

Zapisz go do pliku i uruchom z:

# bash filename.sh
Misha Tavkhelidze
źródło
0

Musiałem również usunąć następujące pliki, ponieważ brew narzekał później podczas instalacji po ręcznym usunięciu wszystkich plików.

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

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

a następnie wykonaj następujące czynności

brew install node 

brew link node
Srini 7
źródło
Użyj znaczników, aby sformatować swój kod lub ścieżki jako monotypie.
buhtz
Pytanie dotyczy odinstalowania, a nie instalacji .. prawdopodobnie błędnie
napisałeś,
0

Poniższe działania działały po próbach i błędach, a te katalogi nie były zapisywalne, więc je usunąłem i w końcu udało mi się zastąpić 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
Thomas Peters
źródło
1
Zmodyfikowałem twoje formatowanie. Możesz zaznaczyć blok tekstu i kliknąć ikonę nawiasu klamrowego, aby uzyskać tekst o stałej szerokości. Lub wciskaj każdy wiersz czterema spacjami, jeśli jesteś masochistą.
Echo Nolan