ฉันจะถอนการติดตั้ง nodejs ที่ติดตั้งจาก pkg (Mac OS X) ได้อย่างไร


124

ฉันติดตั้ง NodeJS จากไฟล์ pkg บน Mac ของฉัน ตอนนี้ฉันต้องถอนการติดตั้ง โปรดบอกฉันว่าต้องทำอย่างไร ฉันพยายามลบไฟล์ออกจากรายการนี้:

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

แต่โหนดยังอยู่ในคอมพิวเตอร์ของฉัน


1
ฉันสังเกตsudo npm uninstall npm -gได้ไหมว่าปลอดภัยและง่ายกว่าคำตอบด้านล่างนี้มาก
tomsmeding

17
แต่นั่นไม่ได้ถอนการติดตั้ง node.js
Jake

คำตอบ:


172

ฉันวิ่ง:

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ในด้านบน ส่วนสำคัญได้รับการอัปเดตตามนั้น


2
เป็นประโยชน์มาก สิ่งเดียวที่ฉันจะเพิ่มคือโหนด 0.4 ติดตั้งใน / usr ไม่ใช่ / usr / local ดังนั้น "sudo rm / usr / local / $ {i}" จึงต้องมีการเปลี่ยนแปลง สำหรับฉันฉันทำ "sudo rm / $ {i}" ตั้งแต่ไฟล์ Bom ที่ pathed ชอบ: "./usr/bin/node"
Dustin Simpson

13
ฉันสร้างส่วนสำคัญสำหรับมัน ใช้ความเสี่ยงของคุณเอง
nicerobot

5
@nicerobot ขอบคุณสำหรับส่วนสำคัญ / สคริปต์! อาจจะชี้ให้คนอื่น ๆ ที่เกิดขึ้นจริงหน้าสรุปสาระสำคัญสำหรับสคริปต์ที่อยู่ที่นี่ นอกจากนี้ยังเป็น n00b กับการทำงานสคริปต์ .sh ตัวเองผมต้อง$ chmod u+x uninstall-node.shแล้ว$ ./uninstall-node.shก่อนที่จะทำงานให้ฉัน :)
mhulse

1
ใช่มันใช้งานได้คำตอบที่ยอดเยี่ยม อะไรก็ตามที่ฉันมีบางอย่างเหลืออยู่และเพิ่งทำมันให้เสร็จโดยที่rm -rf /Users/me/local/bin/nodeตอนนี้โหนดโยกไม่เสถียร!
Bent Cardan

1
@Gomino เมื่อเรียกใช้สิ่งนี้ฉันจะพูดโดยทั่วไปมากขึ้นคุณควรตรวจสอบระบบและสคริปต์ของคุณเพื่อทำความเข้าใจว่าจะทำตามที่คุณต้องการหรือไม่ สคริปต์นี้เขียนขึ้นโดยเทียบกับ macOS และ Node.js เวอร์ชันเก่าดังนั้นอาจต้องมีการอัปเดต
nicerobot

117

หากคุณติดตั้ง Node จากเว็บไซต์ลองสิ่งนี้:

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

สิ่งนี้ใช้ได้ผลสำหรับฉัน แต่ถ้าคุณมีคำถามใด ๆ GitHub ของฉันคือ 'mnafricano'


ฉันติดตั้งของฉันใน / opt / local / bin
sasklacz

1
นั่นอาจเป็นเพราะคุณใช้ MacPorts
notthetup

สิ่งนี้ใช้ได้ผลสำหรับฉันหลังจากสคริปต์ของ @ nicerobot (คำตอบที่ได้รับการจัดอันดับสูงกว่า) ล้มเหลวโดยใช้รหัสผ่าน ถอนการติดตั้งและติดตั้งใหม่ 0.10.32
Jeff Dickey

3
และยังหายไป/usr/local/lib/dtrace/node.d
Pascal Belloncle

2
หายไป/var/db/receipts/org.nodejs.*
Wallace Sidhrée

68

ตามโพสต์ก่อนหน้านี่คือรายการทั้งหมดที่ฉันใช้

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

1
ขอบคุณ. MySQL ของฉันหยุดทำงานดังนั้นฉันจึงจำเป็นต้องลบออกสิ่งนี้ + การรีสตาร์ททำเคล็ดลับ
mizuki

ฉันต้องลบไฟล์เพิ่มเติมอีกสองไฟล์: /usr/local/share/doc/node/gdbinitและ/usr/local/share/systemtap/tapset/node.stp
xji

มีข้อผิดพลาด 2 รายการเป็น rm: / usr / local / bin / node: ไม่มีไฟล์หรือไดเร็กทอรีดังกล่าว rm: /usr/local/share/man/man1/node.1: ไม่มีไฟล์หรือไดเร็กทอรีดังกล่าว
vikramvi

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
Hertzel Guinness

8

นี่คือรายการคำสั่งทั้งหมดที่ฉันใช้ (ขอบคุณมากสำหรับโปสเตอร์ด้านบน):

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

ใช้ 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.*


5

ฉันเอารายการของ 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

1
ทำงานได้ดีสำหรับฉัน! ข้ามบรรทัดสุดท้ายเพื่อออกจากการถอนการติดตั้งโหนดในระบบของคุณ
รวย

ขอบคุณ @Rich สำหรับความคิดเห็นฉันได้แสดงความคิดเห็นในบรรทัดสุดท้ายแล้ว
hailong

3

สคริปต์อำนวยความสะดวกเล็ก ๆ น้อย ๆ ที่ขยายคำตอบก่อนหน้านี้

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

0

ฉันต้องลบไฟล์ต่อไปนี้ด้วยเนื่องจากเบียร์บ่นในการติดตั้งในภายหลังหลังจากลบไฟล์ทั้งหมดด้วยตนเอง

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

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

จากนั้นทำสิ่งต่อไปนี้

brew install node 

brew link node

ใช้มาร์กอัปเพื่อจัดรูปแบบโค้ดหรือแพทช์ของคุณเป็นแบบโมโนไทป์
buhtz

คำถามเกี่ยวกับการถอนการติดตั้งไม่ได้ติดตั้ง .. คุณคงสะกดผิดน่าจะเป็น ..... brew uninstall node
mhasan

0

สิ่งต่อไปนี้ใช้งานได้หลังจากการลองผิดลองถูกและไดเรกทอรีเหล่านี้ไม่สามารถเขียนได้ดังนั้นฉันจึงลบออกและในที่สุดก็สามารถเปลี่ยนโหนด & 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

1
ฉันแก้ไขการจัดรูปแบบของคุณ คุณสามารถเลือกกลุ่มข้อความและคลิกไอคอนวงเล็บปีกกาเพื่อรับข้อความแบบโมโนสเปซ หรือเยื้องทุกบรรทัดด้วยช่องว่างสี่ช่องหากคุณเป็นนักมาโซคิสต์
Echo Nolan
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.