2012-01-28 3 views
107

Я установил NodeJS из файла pkg на своем Mac. Теперь мне нужно удалить его. Скажите, пожалуйста, как это сделать. Я пытался удалить файлы из этого списка:Как удалить nodejs, установленный из pkg (Mac OS X)?

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

Но узел все еще находится на мой компьютер.

+1

Могу ли я отметить, что 'Судо НПМ деинсталлировать НПМ -g' намного легче и безопаснее, чем ответов, приведенных ниже? – tomsmeding

+13

Но это не удаляет node.js – Jake

ответ

168

Я побежал:

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

Update Кажется имя файла квитанции .bom может быть изменен, так что вам, возможно, придется заменить org.nodejs.pkg.bom с org.nodejs.node.pkg.bom в выше. Соответственно обновлено содержание.

+2

Очень полезно. Единственное, что я добавил бы, это то, что узел 0.4 ish установлен в/usr, а не/usr/local. Поэтому «sudo rm/usr/local/$ {i}» необходимо изменить. Для меня я сделал «sudo rm/$ {i}», так как файлы bom, где понравилось pathed: «./usr/bin/node» –

+13

Я создал [gist] (https://raw.github.com/gist/ 2697848/uninstall-node.sh). Используйте его на свой страх и риск. – nicerobot

+1

твердый ответ. это и сделал трюк. – emilebaizel

95

Если вы установили узел из их website, попробуйте следующее:

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

Это работает для меня, но если у вас есть какие-либо вопросы, мой GitHub является "mnafricano.

+5

, похоже, работал на меня – Neil

+0

У меня был установлен мой/opt/local/bin – owca

+1

Возможно, это потому, что вы использовали MacPorts. – notthetup

5

Используйте npm для удаления. Просто запуская sudo npm uninstall npm -g удаляет все файлы. Чтобы избавиться от посторонних вещей, как Баш имена путей запуска этого (от ответа nicerobot в):

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

11

Для того, чтобы удалить «родные» 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 

Только после этого я смог установить Node.js с Homebrew.

+3

мне не хватило - пришлось также' '' sudo rm/usr/local/bin/node /usr/local/share/man/man1/node.1 /usr/local/lib/dtrace/node.d '' ' –

6

Это полный список команд, я использовал (Большое спасибо плакатов выше):

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 
+0

Это сработало для меня! – Simeon

57

После предыдущих постов, вот полный список, который я использовал

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 
+0

безупречный, рабочий –

+1

СПАСИБО. Моя MySQL перестала работать, поэтому мне просто нужно было ее удалить, это + перезапуск сделал трюк. – mizuki

+0

Мне также пришлось удалить два дополнительных файла: '/ usr/local/share/doc/node/gdbinit' и'/usr/local/share/systemtap/tapset/node.stp' –

2

Немного удобства скрипт расширяется по предыдущим ответам.

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

Я взял список 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 
+0

Работал отлично для меня! Пропустите последнюю строку, чтобы удалить узел, удаленный в вашей системе. – Rich

+0

Спасибо @Rich за комментарий, я прокомментировал последнюю строку. – hailong

0

я должен был удалить следующие файлы тоже, так как квас пожаловалась в установке позже после того, как вручную удалить все файлы.

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

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

, а затем сделать следующее

brew install node 

brew link node 
+0

Используйте разметку для форматирования вашего кода или шаблонов как монотип. – buhtz

+0

Вопрос о деинсталляции не устанавливается .. вы, вероятно, ошибочно, это должно быть ..... brew uninstall node – mhasan

Смежные вопросы