Как удалить nodejs, установленный из pkg (Mac OS X)?

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

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

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

12 ответов

Решение

Я побежал:

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 в выше. Суть была обновлена ​​соответственно.

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

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

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

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

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

Для того, чтобы удалить "нативный" файл 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.

Вы можете использовать мою раздвоенную суть:https://gist.github.com/ryangatchalian912/75c6894c3f3143fef366d25eb63437ab

Скопируйте и вставьте эти команды в свой Терминал :

      curl -ksO https://gist.githubusercontent.com/ryangatchalian912/75c6894c3f3143fef366d25eb63437ab/raw/9345866b0f3d0bb0ab1bebbe721a811f15a2adbe/uninstall-node.sh
chmod +x ./uninstall-node.sh
sudo ./uninstall-node.sh
rm uninstall-node.sh

Работает на Mac OSX Big Sur (11.4).

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

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

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

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

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

Достойный способ удалить узел, установленный из pkg

Посмотрите, что находится в db/receipts

ls /var/db/receipts/org.node*

Загляните в соответствующие файлы bom, отметив перечисленные пути

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

Делайте удаления. Используйте префикс для удаления в зависимости от путей, указанных выше.

lsbom -f -l -s -pf /var/db/receipts/org.nodejs.node.pkg.bom | while read i; do sudo rm /${i}; done

lsbom -f -l -s -pf /var/db/receipts/org.nodejs.npm.pkg.bom | while read i; do sudo rm /${i}; done

Удалить оставшиеся папки

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

Проверьте, что это действительно пропало

  • which node
  • which npm

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

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

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

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

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

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

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

brew install node 

brew link node
Другие вопросы по тегам