Comment désinstaller nodejs installé à partir de pkg (Mac OS X)?

124

J'ai installé NodeJS à partir du fichier pkg sur mon Mac. Maintenant, je dois le désinstaller. Dites-moi s'il vous plaît comment faire. J'ai essayé de supprimer des fichiers de cette liste:

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

Mais le nœud est toujours sur mon ordinateur.

Varvara Stepanova
la source
1
Puis-je noter que sudo npm uninstall npm -gc'est beaucoup plus sûr et plus facile que les réponses données ci-dessous?
tomsmeding le
17
Mais cela ne désinstalle pas node.js
Jake

Réponses:

172

L'Iran:

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

Codé dans le gist 2697848

Mise à jour Il semble que le .bomnom du fichier des reçus ait changé, vous devrez peut-être le remplacer org.nodejs.pkg.bompar org.nodejs.node.pkg.bomce qui précède. L'essentiel a été mis à jour en conséquence.

Nicerobot
la source
2
Très utile. La seule chose que j'ajouterais est que le nœud 0.4 ish est installé dans / usr, pas dans / usr / local. Donc "sudo rm / usr / local / $ {i}" doit être changé. Pour moi, j'ai fait "sudo rm / $ {i}" depuis les fichiers de nomenclature où le chemin était aimé: "./usr/bin/node"
Dustin Simpson
13
J'ai créé l' essentiel pour cela. Utilisez à vos risques et périls.
nicerobot
5
@nicerobot Merci pour l'essentiel / script! Doit probablement signaler aux autres que la page principale de ce script est ici . De plus, étant un n00b pour exécuter moi-même des scripts .sh, je devais le faire $ chmod u+x uninstall-node.shet $ ./uninstall-node.shavant que cela ne fonctionne pour moi. :)
mhulse
1
oui cela a fonctionné, réponse cool. tout ce qu'il me restait un petit quelque chose et je viens de terminer tout de suite avec un rm -rf /Users/me/local/bin/nodenœud à bascule instable!
Bent Cardan
1
@Gomino lors de l'exécution de choses comme celle-ci, je le dirais plus généralement, vous devriez VRAIMENT vérifier votre système et le script pour comprendre s'il va faire ce que vous voulez. Le script a été écrit sur les anciennes versions de macOS et Node.js et peut donc nécessiter des mises à jour.
nicerobot
116

Si vous avez installé Node depuis leur site Web , essayez ceci:

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

Cela a fonctionné pour moi, mais si vous avez des questions, mon GitHub est «mnafricano».

Afreekano
la source
J'ai eu le mien installé dans / opt / local / bin
sasklacz
1
C'est probablement parce que vous utilisiez MacPorts
notthetup
Cela a fonctionné pour moi après l'échec du script de @ nicerobot (réponse mieux notée), cacophonie. Désinstallé et réinstallé 0.10.32.
Jeff Dickey
3
et aussi absent/usr/local/lib/dtrace/node.d
Pascal Belloncle
2
missing/var/db/receipts/org.nodejs.*
Wallace Sidhrée
68

Suite aux articles précédents, voici la liste complète que j'ai utilisée

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
la source
1
MERCI. MySQL a cessé de fonctionner alors j'avais juste besoin de le supprimer, ceci + un redémarrage a fait l'affaire.
mizuki
J'ai également dû supprimer deux fichiers supplémentaires: /usr/local/share/doc/node/gdbinitet/usr/local/share/systemtap/tapset/node.stp
xji
obtenu 2 erreurs comme rm: / usr / local / bin / node: aucun fichier ou répertoire de ce type, rm: /usr/local/share/man/man1/node.1: aucun fichier ou répertoire de ce type
vikramvi
11

Afin de supprimer l'installation node.js 'native', j'ai utilisé la méthode suggérée dans les réponses précédentes sudo npm uninstall npm -g, avec des fichiers supplémentaires sudo rm -rf /usr/local/lib/node /usr/local/lib/node_modules /var/db/receipts/org.nodejs.*.

MAIS, j'ai dû également supprimer les deux répertoires suivants:

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

Ce n'est qu'après cela que j'ai pu installer node.js avec Homebrew.

t0r0X
la source
3
n'était pas assez pour moi - il fallait aussisudo rm /usr/local/bin/node /usr/local/share/man/man1/node.1 /usr/local/lib/dtrace/node.d
Hertzel Guinness
8

Voici la liste complète des commandes que j'ai utilisées (merci beaucoup aux affiches ci-dessus):

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
la source
5

Utilisez npm pour désinstaller. Le simple fait de courir sudo npm uninstall npm -gsupprime tous les fichiers. Pour vous débarrasser des éléments superflus tels que les chemins d'accès bash, exécutez ceci (à partir de la réponse de nicerobot):

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

alexbhandari
la source
5

J'ai pris la liste d'AhrB, tout en ajoutant trois autres fichiers. Voici la liste complète que j'ai utilisée:

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
grêle
la source
1
A très bien fonctionné pour moi! Ignorez la dernière ligne pour laisser le nœud désinstallé sur votre système.
Riche
Merci @ Rich pour le commentaire, j'ai commenté la dernière ligne.
hailong
3

Un petit script de commodité développant les réponses précédentes.

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

Enregistrez-le dans un fichier et exécutez-le avec:

# bash filename.sh
Misha Tavkhelidze
la source
0

J'ai également dû supprimer les fichiers suivants depuis que Brew s'est plaint lors de l'installation plus tard après avoir supprimé manuellement tous les fichiers.

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

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

puis procédez comme suit

brew install node 

brew link node
Srini 7
la source
Utilisez le balisage pour formater votre code ou vos chemins en monotype.
buhtz
La question concerne la désinstallation et non l'installation .. vous avez probablement mal orthographié cela devrait être ..... nœud de désinstallation de brassage
mhasan
0

Ce qui suit a fonctionné après essais et erreurs, et ces répertoires n'étaient pas inscriptibles, je les ai donc supprimés et j'ai finalement pu remplacer 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
la source
1
J'ai modifié votre mise en forme. Vous pouvez sélectionner un bloc de texte et cliquer sur l'icône d'accolade pour obtenir du texte à espacement fixe. Ou indentez chaque ligne de quatre espaces si vous êtes masochiste.
Echo Nolan