Как удалить 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