Как мне удалить nodejs, установленный из pkg (Mac OS X)? - PullRequest
118 голосов
/ 28 января 2012

Я установил NodeJS из файла pkg на моем Mac.Теперь мне нужно удалить его.Подскажите пожалуйста как это сделать.Я пытался удалить файлы из списка:

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

Но узел все еще на моем компьютере.

Ответы [ 10 ]

170 голосов
/ 15 февраля 2012

Я запустил:

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

Закодировано в Суть 2697848

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

109 голосов
/ 20 июня 2013

Если вы установили Node с их веб-сайта , попробуйте это:

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

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

64 голосов
/ 02 апреля 2015

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

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
11 голосов
/ 10 декабря 2014

Для удаления «нативной» установки 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.

8 голосов
/ 16 января 2015

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

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 голосов
/ 17 августа 2015

Я взял список 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
5 голосов
/ 27 июля 2014

Используйте 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.*

3 голосов
/ 07 апреля 2015

Небольшой удобный скрипт, расширяющий предыдущие ответы.

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

Сохраните его в файл и запустите:

0 голосов
/ 07 апреля 2018

Следующее сработало после проб и ошибок, и эти каталоги не были доступны для записи, поэтому я удалил их и, наконец, смог заменить 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
0 голосов
/ 03 октября 2016

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

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

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

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

brew install node 

brew link node
...