Làm cách nào để gỡ cài đặt nodejs được cài đặt từ pkg (Mac OS X)?


124

Tôi đã cài đặt NodeJS từ tệp pkg trên máy Mac của mình. Bây giờ tôi cần gỡ cài đặt nó. Hãy cho tôi biết làm thế nào để làm điều đó. Tôi đã cố xóa các tập tin khỏi danh sách này:

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

Nhưng nút vẫn còn trên máy tính của tôi.


1
Tôi có thể lưu ý rằng sudo npm uninstall npm -gan toàn và dễ dàng hơn nhiều so với các câu trả lời dưới đây không?
tomsmeding

17
Nhưng điều đó không gỡ cài đặt node.js
Jake

Câu trả lời:


172

Tôi đã chạy

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

Được mã hóa thành ý chính 2697848

Cập nhật Có vẻ như .bomtên tệp biên lai có thể đã thay đổi, do đó bạn có thể cần phải thay thế org.nodejs.pkg.bombằng org.nodejs.node.pkg.bomở trên. Các ý chính đã được cập nhật tương ứng.


2
Rất hữu ích. Điều duy nhất tôi muốn thêm là nút 0.4 ish được cài đặt trong / usr, không phải / usr / local. Vì vậy, "sudo rm / usr / local / $ {i}" cần phải được thay đổi. Đối với tôi, tôi đã "sudo rm / $ {i}" kể từ khi các tập tin bom có ​​đường dẫn thích: "./usr/bin/node"
Dustin Simpson

13
Tôi đã tạo ra một ý chính cho nó. Sử dụng nó có nguy cơ của riêng bạn.
nicerobot

5
@nicerobot Cảm ơn ý chính / kịch bản! Có lẽ nên chỉ ra cho người khác rằng trang chính thực sự cho kịch bản đó là ở đây . Ngoài ra, là một n00b để chạy các tập lệnh .sh, tôi đã phải $ chmod u+x uninstall-node.shvà sau đó $ ./uninstall-node.shtrước khi nó hoạt động với tôi. :)
mhulse

1
phải nó làm việc, câu trả lời mát mẻ. bất cứ điều gì tôi có một chút gì đó còn sót lại và chỉ cần hoàn thành nó ngay rm -rf /Users/me/local/bin/nodebây giờ với nút rocking không ổn định!
Bent Cardan

1
@Gomino khi chạy những thứ như thế này, tôi sẽ nói chung hơn, bạn THỰC SỰ nên kiểm tra hệ thống của bạn và tập lệnh để hiểu nếu nó sẽ làm những gì bạn muốn. Kịch bản được viết dựa trên các phiên bản cũ hơn của macOS và Node.js nên có thể yêu cầu cập nhật.
nicerobot

116

Nếu bạn đã cài đặt Node từ trang web của họ , hãy thử điều này:

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

Điều này làm việc cho tôi, nhưng nếu bạn có bất kỳ câu hỏi nào, GitHub của tôi là 'mnafricano'.


Tôi đã cài đặt trong / opt / local / bin
sasklacz

1
Điều đó có thể là do bạn đang sử dụng MacPorts
phải

Điều này làm việc cho tôi sau khi kịch bản của @ nicerobot (câu trả lời được đánh giá cao hơn) thất bại, theo ngữ âm. Gỡ cài đặt và cài đặt lại 0.10.32.
Jeff Dickey

3
và cũng mất tích/usr/local/lib/dtrace/node.d
Pascal Belloncle

2
mất tích/var/db/receipts/org.nodejs.*
Wallace Sidhrée

68

Sau các bài viết trước, đây là danh sách đầy đủ tôi đã sử dụng

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
CẢM ƠN BẠN. MySQL của tôi đã ngừng hoạt động vì vậy tôi chỉ cần gỡ bỏ nó, điều này + khởi động lại đã làm được điều đó.
mizuki

Tôi cũng phải xóa hai tệp bổ sung: /usr/local/share/doc/node/gdbinit/usr/local/share/systemtap/tapset/node.stp
xji

có 2 lỗi là rm: / usr / local / bin / node: Không có tệp hoặc thư mục như vậy, rm: /usr/local/share/man/man1/node.1: Không có tệp hoặc thư mục như vậy
vikramvi 22/07/19

11

Để xóa cài đặt node.js 'gốc', tôi đã sử dụng phương thức được đề xuất trong các câu trả lời trước đó sudo npm uninstall npm -g, kèm theo sudo rm -rf /usr/local/lib/node /usr/local/lib/node_modules /var/db/receipts/org.nodejs.*.

NHƯNG, tôi cũng phải xóa hai thư mục sau:

sudo rm -rf /usr/local/include/node /Users/$USER/.npm

Chỉ sau đó tôi mới có thể cài đặt node.js với Homebrew.


3
là không đủ đối với tôi - cũng phảisudo rm /usr/local/bin/node /usr/local/share/man/man1/node.1 /usr/local/lib/dtrace/node.d
Hertzel Guinness

8

Đây là danh sách đầy đủ các lệnh tôi đã sử dụng (Rất cám ơn các áp phích ở trên):

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

Sử dụng npm để gỡ cài đặt. Chỉ cần chạy sudo npm uninstall npm -gsẽ loại bỏ tất cả các tập tin. Để loại bỏ những thứ không liên quan như tên đường dẫn bash chạy cái này (từ câu trả lời của nicerobot):

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


5

Tôi lấy danh sách của AhrB, trong khi nối thêm ba tệp nữa. Dưới đây là danh sách đầy đủ tôi đã sử dụng:

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
Làm việc tuyệt vời cho tôi! Bỏ qua dòng cuối cùng để bỏ cài đặt nút trên hệ thống của bạn.
Giàu

Cảm ơn @Rich cho nhận xét, tôi đã nhận xét dòng cuối cùng.
hailong

3

Một chút kịch bản tiện lợi mở rộng trên các câu trả lời trước.

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

Lưu nó vào tập tin và chạy với:

# bash filename.sh

0

Tôi cũng phải xóa các tệp sau vì brew phàn nàn trong quá trình cài đặt sau khi xóa thủ công tất cả các tệp.

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

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

và sau đó làm như sau

brew install node 

brew link node

Sử dụng đánh dấu để định dạng mã hoặc đường dẫn của bạn dưới dạng đơn sắc.
buhtz

Câu hỏi là về việc gỡ cài đặt không cài đặt .. bạn có thể viết sai chính tả nên ..... nút gỡ cài đặt
mhasan

0

Sau đây đã hoạt động sau khi dùng thử và lỗi, và các thư mục này không thể ghi được, vì vậy tôi đã xóa chúng và cuối cùng đã có thể thay thế nút & 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
Tôi đã sửa đổi định dạng của bạn. Bạn có thể chọn một khối văn bản và nhấp vào biểu tượng dấu ngoặc nhọn để lấy văn bản đơn cách. Hoặc thụt lề mỗi dòng với bốn khoảng trắng nếu bạn là masochist.
Echo Nolan
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.