Làm cách nào để gỡ cài đặt hoàn toàn Node.js và cài đặt lại từ đầu (Mac OS X)


1291

Phiên bản nút của tôi luôn là v0.6.1-pre ngay cả sau khi tôi cài đặt nút brew và NVM cài đặt v0.6.19.

Phiên bản nút của tôi là:

node -v
v0.6.1-pre

NVM nói điều này (sau khi tôi cài đặt phiên bản nút lần đầu tiên trong một thiết bị đầu cuối bash):

nvm ls
v0.6.19
current:    v0.6.19

Nhưng khi tôi khởi động lại bash, đây là những gì tôi thấy:

nvm ls
v0.6.19
current:    v0.6.1-pre
default -> 0.6.19 (-> v0.6.19)

Vì vậy, nút ảo phiên bản 0.6.1 này ở đâu và làm cách nào để thoát khỏi nó? Tôi đang cố gắng cài đặt các thư viện thông qua NPM để tôi có thể làm việc trên một dự án.

Tôi đã thử sử dụng BREW để cập nhật trước NVM, sử dụng brew updatebrew install node. Tôi đã thử xóa thư mục "nút" trong /usr/local/includevà "nút" và "nút_modules" trong tôi /usr/local/lib. Tôi đã thử gỡ bỏ cài đặt và cài đặt lại NPM nó sau những hướng dẫn.

Tất cả điều này là do tôi đã cố gắng cập nhật một phiên bản nút cũ hơn để cài đặt thư viện "zipstream". Bây giờ có các thư mục trong thư mục người dùng của tôi và phiên bản nút VẪN không cập nhật, mặc dù NVM cho biết nó đang sử dụng 0.6.19.

Lý tưởng nhất là tôi muốn gỡ cài đặt nodejs, npm và nvm và chỉ cần cài đặt lại toàn bộ mọi thứ từ đầu trên hệ thống của tôi.



/ usr / bin / nút là một số khác ...
Aaron Blenkush

1
điều này có thể giúp cho bất cứ ai cài đặt nút thông qua tập tin pkg. superuser.com/questions/36567/ cường
karthikeayan

Mac 10.13.5 đã có / Users / myusername / node_modules tôi có nên xóa thư mục này không? Tôi đã tìm kiếm trong chủ đề này nhưng dường như không ai gặp phải vấn đề này
vikramvi

@Pacerier ngay cả sau khi làm theo hướng dẫn trong ý chính, nút tĩnh và npm vẫn tồn tại trên Mac OS 10.13.5
vikramvi

Câu trả lời:


1699

Rõ ràng, có một /Users/myusername/localthư mục có chứa một includevới nodelibvới nodenode_modules. Làm thế nào và tại sao điều này được tạo ra thay vì trong /usr/localthư mục của tôi , tôi không biết.

Xóa các tham chiếu cục bộ này đã sửa lỗi ảo v0.6.1-pre. Nếu ai có lời giải thích, tôi sẽ chọn đó là câu trả lời đúng.

BIÊN TẬP:

Bạn cũng có thể cần phải làm các hướng dẫn bổ sung:

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

tương đương với (giống như trên) ...

sudo rm -rf /usr/local/bin/npm /usr/local/share/man/man1/node* /usr/local/lib/dtrace/node.d ~/.npm ~/.node-gyp 

hoặc (giống như trên) bị hỏng ...

Để gỡ cài đặt hoàn toàn nút + npm là làm như sau:

  1. đi tới / usr / local / lib và xóa bất kỳ nútnode_modules
  2. đi đến / usr / local / include và xóa bất kỳ nútnode_modules thư mục
  3. nếu bạn đã cài đặt với nút cài đặt brew , thì hãy chạy nút gỡ cài đặt brew trong thiết bị đầu cuối của bạn
  4. kiểm tra thư mục Home của bạn để biết bất kỳ thư mục cục bộ hoặc lib hoặc bao gồm các thư mục và xóa bất kỳ nút hoặc node_modules nào từ đó
  5. đi tới / usr / local / bin và xóa bất kỳ nút thực thi nào

Bạn cũng có thể cần phải làm:

sudo rm -rf /opt/local/bin/node /opt/local/include/node /opt/local/lib/node_modules
sudo rm -rf /usr/local/bin/npm /usr/local/share/man/man1/node.1 /usr/local/lib/dtrace/node.d

Ngoài ra, NVM sửa đổi biến PATH trong $HOME/.bashrc, phải được hoàn nguyên thủ công .

Sau đó tải xuống nvm và làm theo hướng dẫn để cài đặt nút. Các phiên bản mới nhất của nút đi kèm với npm , tôi tin, nhưng bạn cũng có thể cài đặt lại.


82
Tôi cũng đã phải rm -rf /Users/[homedir]/.npm.
brokenindexfinger

17
Cũng cần phải xóa/Users/[homedir]/.nvm
n0pe

42
Tôi cũng đã chạy brew doctorvà sau đó brew pruneđể dọn sạch một loạt các liên kết tượng trưng cho NPM.
Chris Jacob

54
Tôi đã cùng nhau viết một kịch bản mà bây giờ tôi đã chiến đấu thử nghiệm. Cảm ơn @DominicTancredi điều này hoạt động rất tốt! gist.github.com/brock/5b1b70590e1171c4ab54
brock

13
Tôi cũng đã phải thêm : sudo rm -rf ~/.node-gyp. Tôi đã thêm nó với MacPorts trước khi tôi chuyển sang sản xuất bia.
JESii

519

Đối với người dùng bia, OSX :

Để xóa:

brew uninstall node; 
# or `brew uninstall --force node` which removes all versions
brew cleanup;
rm -f /usr/local/bin/npm /usr/local/lib/dtrace/node.d;
rm -rf ~/.npm;

Để cài đặt:

brew install node;
which node # => /usr/local/bin/node
export NODE_PATH='/usr/local/lib/node_modules' # <--- add this ~/.bashrc

Bạn có thể chạy brew info nodeđể biết thêm chi tiết về cài đặt nút của bạn.


xem xét sử dụng NVM thay vì bia

NVM (trình quản lý phiên bản nút) là một giải pháp di động để quản lý nhiều phiên bản của nút

https://github.com/nvm-sh/nvm

> nvm uninstall v4.1.0
> nvm install v8.1.2
> nvm use v8.1.2
> nvm list
         v4.2.0
         v5.8.0
        v6.11.0
->       v8.1.2
         system

bạn có thể sử dụng điều này với AVN để tự động chuyển đổi các phiên bản khi bạn nhảy giữa các dự án khác nhau với các phụ thuộc nút khác nhau.


2
Làm cách nào để đặt vv env sao cho nút và npm có sẵn sau khi cài đặt như vậy?
Maxim V. Pavlov

13
Bạn có thể cần chạy brew với --forcecờ để đảm bảo xóa tất cả các phiên bản của nút: $ brew uninstall --force node
magikMaker 6/10/2015

-bash: /usr/local/bin/npm: No such file or directorytôi có thể làm gì bây giờ?
ValRob

5
> "xem xét sử dụng NVM thay vì bia"; Trớ trêu thay bạn có thể cài đặt NVM với brew!; Mẹo hay, cảm ơn.
HankCa

2
Sử dụng NVM đã giúp.
coderpc

186

Tôi biết bài đăng này hơi cũ nhưng chỉ muốn chia sẻ các lệnh đã làm việc cho tôi trong Terminal khi xóa Node.js.

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

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

CẬP NHẬT: 23 SEP 2016


Nếu bạn sợ chạy các lệnh này ...

Cảm ơn jguixcho this quick tutorial.

Đầu tiên, tạo một tệp trung gian:

lsbom -f -l -s -pf /var/db/receipts/org.nodejs.node.pkg.bom >> ~/filelist.txt

Xem lại thủ công tệp của bạn (nằm trong Homethư mục của bạn )

 ~/filelist.txt

Sau đó xóa các tập tin:

cat ~/filelist.txt | while read f; do sudo rm /usr/local/${f}; done

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

Từ 10.10.5 trở lên

Cảm ơn Lenar Hoyt

Nguồn bình luận chính: gistcomment-1572198

Ý chính TonyMtz/d75101d9bdf764c890ef

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

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

15
Whoa-- điều này thật đáng sợ. Ít nhất "rm" đầu tiên không phải là "rm -rf", mà nếu có một dòng trống trên outpur của sbom, sẽ xóa tất cả / usr / local. Trước khi làm bất cứ điều gì quá nặng nề, hãy xem xét kỹ lưỡng đầu ra sbom và nơi tất cả các thư mục này đến từ và đảm bảo bạn biết chính xác những gì bạn đang loại bỏ.
Don nở

16
Tôi nên thêm ... nếu bạn có bản năng tự bảo vệ lành mạnh, việc bạn gõ hoặc sao chép-dán lệnh thứ hai đó sẽ cực kỳ khó khăn, bắt đầu bằng "sudo rm -rf /". Một cái hắt hơi, hoặc con mèo nhảy lên bàn phím của bạn và bạn đã phá hủy hệ thống tập tin của bạn.
Don nở

2
org.nodejs.node.pkg.bomthay vì org.nodejs.pkg.bom.
Lenar Hoyt

1
@DonHatch sao chép dòng mà không có chữ cái đầu tiên để nó bắt đầu udo..và sau đó trả trước skhi chạy nó.
youurayy

1
Lệnh lsbom đưa ra các đường dẫn tương đối để tập lệnh đang cố xóa các đường dẫn trông như thế nào /usr/local/./node/yada. Để xóa ./tiền tố tôi đã sử dụng bộ lọc cắt: lsbom -f -l -s -pf /var/db/receipts/org.nodejs.node.pkg.bom | cut -c 3- | while read f; do sudo rm /usr/local/${f}; done
mã hóa thời gian

142

Trên Mavericks tôi cài đặt nó từ nút pkg (từ trang web nodejs) và tôi gỡ cài đặt nó để tôi có thể cài đặt lại bằng brew. Tôi chỉ chạy 4 lệnh trong terminal:

  1. sudo rm -rf /usr/local/lib/node_modules/npm/
  2. brew uninstall node
  3. brew doctor
  4. brew cleanup --prune-prefix

Nếu vẫn còn cài đặt nút, lặp lại bước 2. Sau khi tất cả đều ổn, tôi cài đặt bằng brew install node


50
1 làm việc, nhưng 2 thất bại. Tôi nhận được "không có keg: usr / local / Cellar / node"
positiveGuy

Đúng, đây là điều tốt nhất nếu bạn đang chạy Mavericks
Dicer

1
Tôi đã thử nhưng một lần nữa gặp lỗi tương tự Lỗi: brew linkBước không hoàn thành thành công
Chandni

Cảm ơn, hoàn hảo ngoại trừ tôi đã phải thêm - lực lượng để gỡ cài đặt
Medhi

1
FYI: Khi viết bài này -->brew prune Error: Calling 'brew prune' is disabled! Use 'brew cleanup --prune-prefix' instead.
Mike S.

33
  1. Đầu tiên:

    lsbom -f -l -s -pf /var/db/receipts/org.nodejs.pkg.bom | while read f; do  sudo rm /usr/local/${f}; done
    
    sudo rm -rf /usr/local/lib/node /usr/local/lib/node_modules /var/db/receipts/org.nodejs.*
  2. Để tóm tắt lại, cách tốt nhất (tôi đã tìm thấy) để gỡ cài đặt hoàn toàn nút + npm là làm như sau:

    đi đến /usr/local/libvà xóa bất kỳ nút và node_modules

    cd /usr/local/lib
    
    sudo rm -rf node*
  3. đi đến /usr/local/includevà xóa bất kỳ thư mục nút và node_modules

    cd /usr/local/include
    
    sudo rm -rf node*
  4. nếu bạn đã cài đặt brew install node, sau đó chạy brew uninstall nodetrong thiết bị đầu cuối của bạn

    brew uninstall node
  5. kiểm tra thư mục Home của bạn xem có thư mục "cục bộ" hoặc "lib" hoặc "bao gồm" nào không và xóa bất kỳ "nút" hoặc "node_modules" nào từ đó

    đi tới / usr / local / bin và xóa bất kỳ nút thực thi nào

    cd /usr/local/bin
    
    sudo rm -rf /usr/local/bin/npm
    
    ls -las
  6. Bạn cũng có thể cần phải làm các hướng dẫn bổ sung:

    sudo rm -rf /usr/local/share/man/man1/node.1
    
    sudo rm -rf /usr/local/lib/dtrace/node.d
    
    sudo rm -rf ~/.npm

Nguồn: tonyMtz


7
Loại bỏ node*không phải là một cách đặc biệt an toàn để tiến hành. Có thể có các nhị phân khác với tiền tố đó.
Lenar Hoyt

2
Tuyệt vời, cuối cùng sau 3 ngày, khi thỉnh thoảng có sự cố npm, loại bỏ hoàn toàn và cài đặt lại bằng cách sử dụng brew trên máy mac của tôi, hoạt động như một cơ duyên.
Amit Bravo

Khi bị bắn lệnh đầu tiên, can't open /var/db/receipts/org.nodejs.pkg.bom: No such file or directory **** Can't open /var/db/receipts/org.nodejs.pkg.bom.xin hãy giúp đỡ
Ahtesham Shah

Ngay cả sau khi thực hiện các bước này trên Mac 10.13.5, tôi vẫn có thể thấy npm và nút điều gì có thể xảy ra?
vikramvi

25

hạ cấp nút xuống 0.10.36

  sudo npm cache clean -f
  sudo npm install -g n
  sudo n 0.10.36

nâng cấp nút lên ổn định v

  sudo npm cache clean -f
  sudo npm install -g n
  sudo n stable

Tôi mới làm điều này và thật kỳ lạ, nó đã hạ cấp npm từ 6.4.1 xuống 6.2.0.
Capn Sparrow

22

Tôi không chắc là vì tôi đã có phiên bản cũ (4.4.5) hay vì tôi đã sử dụng trình cài đặt chính thức, nhưng hầu hết các tệp được tham chiếu trong các câu trả lời khác không tồn tại trên hệ thống của tôi. Tôi chỉ phải loại bỏ những điều sau đây:

~/.node-gyp
~/.node_repl_history
/usr/local/bin/node
/usr/local/bin/npm
/usr/local/include/node
/usr/local/lib/dtrace/node.d
/usr/local/lib/node_modules
/usr/local/share/doc/node
/usr/local/share/man/man1/node.1
/usr/local/share/systemtap/tapset/node.stp

Tôi quyết định giữ ~/.npmvì tôi đang dự định cài đặt lại Node với Homebrew.


Câu trả lời này đã được thực hiện vào năm 2012, vì vậy tôi chắc chắn rằng nó có một số di sản đối với nó. Bây giờ, nếu câu trả lời mới xuất hiện, tôi sẽ nâng cao chúng sau khi xem xét nếu chúng có hiệu quả.
Đaminh Tancredi

15

Tôi đã tóm tắt các câu trả lời hiện có và đảm bảo Node js HOÀN TOÀN HOÀN TOÀN cùng với NPM.

  1. brew uninstall node
  2. which node
  3. sudo rm -rf /usr/local/bin/node
  4. sudo rm -rf /usr/local/lib/node_modules/npm/
  5. brew doctor
  6. brew cleanup --prune-prefix

Các dòng để sao chép vào thiết bị đầu cuối:

brew uninstall node;
which node;
sudo rm -rf /usr/local/bin/node;
sudo rm -rf /usr/local/lib/node_modules/npm/;
brew doctor;
brew cleanup --prune-prefix;

Tôi đã làm theo các bước này và nó dường như đã làm việc. Tôi vẫn có thư mục trong thư mục gốc của tôi như .node-gyp/, .npm/, .npm-global/, và .nvm/. Tôi có thể xóa chúng không hoặc tôi nên giữ chúng nếu tôi có kế hoạch cài đặt lại nút?
WaterTrash

10
  • Xóa nút và / hoặc node_modules khỏi / usr / local / lib

          ex code:
          cd /usr/local/lib
          sudo rm -rf node
          sudo rm -rf node_modules
  • Xóa nút và / hoặc node_modules khỏi / usr / local / bao gồm

  • Xóa nút, gỡ lỗi nút và nút-gyp khỏi / usr / local / bin
  • Xóa .npmrc khỏi thư mục chính của bạn (đây là các cài đặt npm của bạn, đừng xóa cái này nếu bạn có kế hoạch cài đặt lại Node ngay lập tức)
  • Xóa .npm khỏi thư mục nhà của bạn
  • Xóa .node-gyp khỏi thư mục nhà của bạn
  • Xóa .node_Vpl_history khỏi thư mục nhà của bạn
  • Xóa nút * khỏi / usr / local / share / man / man1 /
  • Xóa npm * khỏi / usr / local / share / man / man1 /
  • Xóa nút.d khỏi / usr / local / lib / dtrace /
  • Xóa nút khỏi / usr / local / opt / local / bin /
  • Xóa nút khỏi / usr / local / opt / local / include /
  • Xóa node_modules khỏi / usr / local / opt / local / lib /
  • Xóa nút khỏi / usr / local / share / doc /
  • Xóa node.stp khỏi / usr / local / share / systemtap / tapset /

Tôi cũng phải xóa node@6khỏi/usr/local/opt/
echo


8

Sau

brew uninstall node

Tôi phải biết nút nào

which node

sau đó loại bỏ nó

rm -rf /usr/local/bin/node

7

Nếu bạn đã cài đặt nvm rồi thì thực hiện các lệnh sau

  • nvm deactivate - Điều này sẽ xóa /.nvm/*/bin khỏi $ PATH
  • nvm list - Để liệt kê tất cả các phiên bản của nút được cài đặt trong hệ thống
  • nvm uninstall <version> trong bạn có thể chỉ định tất cả các phiên bản bạn muốn gỡ cài đặt.

Nó luôn luôn là một tốt mà bạn cài đặt nút sử dụng nvmvà gỡ bỏ cài đặt sử dụng nvm chứ không phải là brew.

Giải pháp này đã làm việc cho tôi.

Các lệnh bổ sung

  • which nodeđể biết đường dẫn của nút được cài đặt trong hệ thống của bạn. Bạn có thể rm thư mục này để gỡ cài đặt nút thủ công. Sau đó, bạn có thể cần phải điều chỉnh tệp PATH cho phù hợp.

6

Mở rộng câu trả lời tuyệt vời của Dominic Tancredi , tôi đã đưa nó vào một gói bash và kịch bản độc lập. Nếu bạn đã sử dụng "Back Manager Manager" có tên bpkg, bạn có thể cài đặt tập lệnh bằng cách chạy:

bpkg install -g brock/node-reinstall

Hoặc bạn có thể xem tập lệnh trên Github tại brock / node-reinstall . Kịch bản cho phép bạn cài đặt lại nút bằng nvm hoặc nave và chỉ định phiên bản nút làm mặc định.


1
Tôi chuẩn bị đăng bài này và thấy rằng chính tác giả đã đăng câu trả lời tốt nhất có thể cho vấn đề: sử dụng cài đặt lại nút một lần và bạn sẽ không bao giờ nhìn lại. Đã cho tôi chạm đất chạy và sẵn sàng để phát triển hơn! Chúc mừng cho @brockangelo này!
Wallace Sidhrée

3
Cảnh báo ..... node-reinstalltập lệnh chứa dòng này: sudo rm -rf $HOME/{local,lib,include,node*,npm,.npm*} Vì vậy, nếu bạn tình cờ có một thư mục tên đó trong $HOME(như tôi làm), nó sẽ bị ghi đè!
terrycojones

6

Bổ sung vào câu trả lời chính tôi cần để xóa tất cả các trường hợp npm được tìm thấy trong:

rm -rf /usr/local/share/man/man1/npm*

1
Đây phải là một nhận xét về câu trả lời thích hợp, không phải là một câu trả lời mới.
Edward Anderson

5

Tôi đã gặp phải sự cố trong quá trình gỡ cài đặt Node.js trên máy mac của mình. Tôi đã có một số hành vi kỳ lạ như npmvẫn là của họ ngay cả sau khi đã loại bỏ nó với tất cả điều này.

Đó là bởi vì tôi đã cài đặt cũ với macport. Vì vậy, bạn cũng phải gỡ cài đặt nó bằng cổng:

sudo port uninstall nodejs

Nó có thể đã cài đặt nhiều phiên bản Node.js khác nhau để gỡ cài đặt tất cả (từng cái một).


1
Đây chính xác là những gì đã xảy ra với tôi :-) thx cho câu trả lời phụ lục của bạn. Chà, tôi đã bắt đầu có một vài phiên bản của Cordova và một npm không thể loại bỏ một Cordova và ngược lại.
peter_the_oak

5

có lẽ bạn cần phải làm

hash -r 

nó giúp với vấn đề về symlink

$ node -v
$ bash: /opt/local/bin/node: No such file or directory

4

Bạn có thể sao chép https://github.com/brock/node-reinstall và chạy lệnh đơn giản như được đưa ra trong kho lưu trữ. Sau đó, chỉ cần khởi động lại hệ thống của bạn.
Đây là phương pháp đơn giản nhất và cũng hiệu quả với tôi.


4

Cách tốt nhất là tải xuống gói cài đặt: .pkg trên mac. Thích phiên bản ổn định mới nhất.

Đây là liên kết: Node.js

Gói này cuối cùng sẽ ghi đè lên phiên bản trước và đặt các biến môi trường tương ứng. Chỉ cần chạy trình cài đặt và nó được thực hiện trong vài cú nhấp chuột.


3

Tôi đã cài đặt Node.js từ nguồn được tải xuống từ kho git. Tôi đã cài đặt với:

./configure
$ make
$ sudo make install

Bởi vì tập tin make hỗ trợ nó, tôi có thể làm:

$ sudo make uninstall

Làm thế nào để chạy nó song song? nói tôi muốn chạy 2 phiên bản?

3

Là người bạn đồng hành với các câu trả lời giải thích về việc dọn dẹp và cài đặt qua homebrew, tôi thấy rằng chính homebrew đã cung cấp các dấu hiệu rõ ràng về các xung đột symlink.

Thật không may, nó cung cấp từng cái một khi nó gặp chúng, vì vậy nó hơi tốn công sức, nhưng dường như nó tìm thấy tất cả các cuộc đụng độ và là cách duy nhất tôi có thể cài đặt sạch với homebrew.

Về cơ bản, quy trình là:

  1. sử dụng homebrew để gỡ cài đặt nút
  2. sạch homebrew
  3. sử dụng homebrew để cài đặt nút và lưu ý bất kỳ tệp xung đột được gắn cờ nào
  4. xóa tệp clashing cờ (hoặc toàn bộ thư mục nếu đó là thư mục 'nút')
  5. goto bước 1 cho đến khi bạn có được một cài đặt sạch

Sơ đồ:

Đây là một đầu ra màn hình từ các bước cuối cùng trong quá trình cài đặt của tôi - bạn có thể thấy nó dẫn đến một cài đặt sạch (cuối cùng ...):

computer1:DevResources user1$ brew install node
Updating Homebrew...
==> Downloading https://homebrew.bintray.com/bottles/node-13.1.0.mojave.bottle.tar.gz
Already downloaded: /Users/user1/Library/Caches/Homebrew/downloads/da904f1fdab6f6b2243a810b685e67b29a642c6e945f086e0022323a37fe85f9--node-13.1.0.mojave.bottle.tar.gz
==> Pouring node-13.1.0.mojave.bottle.tar.gz
Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local
Could not symlink share/systemtap/tapset/node.stp
Target /usr/local/share/systemtap/tapset/node.stp
already exists. You may want to remove it:
  rm '/usr/local/share/systemtap/tapset/node.stp'

To force the link and overwrite all conflicting files:
  brew link --overwrite node

To list all files that would be deleted:
  brew link --overwrite --dry-run node

Possible conflicting files are:
/usr/local/share/systemtap/tapset/node.stp
/usr/local/lib/dtrace/node.d
==> Caveats
Bash completion has been installed to:
  /usr/local/etc/bash_completion.d
==> Summary
🍺  /usr/local/Cellar/node/13.1.0: 4,591 files, 54.2MB
computer1:DevResources user1$ rm '/usr/local/share/systemtap/tapset/node.stp'
computer1:DevResources user1$ brew uninstall node
Uninstalling /usr/local/Cellar/node/13.1.0... (4,591 files, 54.2MB)
computer1:DevResources user1$ brew cleanup
computer1:DevResources user1$ brew install node
Updating Homebrew...
==> Downloading https://homebrew.bintray.com/bottles/node-13.1.0.mojave.bottle.tar.gz
Already downloaded: /Users/user1/Library/Caches/Homebrew/downloads/da904f1fdab6f6b2243a810b685e67b29a642c6e945f086e0022323a37fe85f9--node-13.1.0.mojave.bottle.tar.gz
==> Pouring node-13.1.0.mojave.bottle.tar.gz
Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local
Could not symlink lib/dtrace/node.d
Target /usr/local/lib/dtrace/node.d
already exists. You may want to remove it:
  rm '/usr/local/lib/dtrace/node.d'

To force the link and overwrite all conflicting files:
  brew link --overwrite node

To list all files that would be deleted:
  brew link --overwrite --dry-run node

Possible conflicting files are:
/usr/local/lib/dtrace/node.d
==> Caveats
Bash completion has been installed to:
  /usr/local/etc/bash_completion.d
==> Summary
🍺  /usr/local/Cellar/node/13.1.0: 4,591 files, 54.2MB
computer1:DevResources user1$ rm '/usr/local/lib/dtrace/node.d'
computer1:DevResources user1$ 
computer1:DevResources user1$ brew uninstall node
Uninstalling /usr/local/Cellar/node/13.1.0... (4,591 files, 54.2MB)
computer1:DevResources user1$ brew cleanup
computer1:DevResources user1$ brew install node
Updating Homebrew...
==> Downloading https://homebrew.bintray.com/bottles/node-13.1.0.mojave.bottle.tar.gz
Already downloaded: /Users/user1/Library/Caches/Homebrew/downloads/da904f1fdab6f6b2243a810b685e67b29a642c6e945f086e0022323a37fe85f9--node-13.1.0.mojave.bottle.tar.gz
==> Pouring node-13.1.0.mojave.bottle.tar.gz
==> Caveats
Bash completion has been installed to:
  /usr/local/etc/bash_completion.d
==> Summary
🍺  /usr/local/Cellar/node/13.1.0: 4,591 files, 54.2MB
computer1:DevResources user1$ node -v
v13.1.0

2

Trước hết, bạn cần hủy kích hoạt nút: (mac) sau khi cài đặt phiên bản nút mới.

nvm deactivate

Điều này đã bị xóa /Users/user_name/.nvm/*/bin từ $ PATH

Và sau khi nút đó được cập nhật

node --version
v10.9.0

1

Điều này đã sửa nó cho tôi Sửa npm Trên Mac OS X cho Người dùng Homebrew . Và nó không đòi hỏi quá nhiều bước.

Chỉ cần đi đến phần giải pháp nếu bạn không quan tâm đến lý do tại sao.

Đây là phần có liên quan để thuận tiện:

Giải pháp

Giải pháp này khắc phục lỗi gây ra bằng cách cố gắng chạy npm update npm -g. Khi bạn kết thúc, bạn cũng sẽ không cần sử dụng sudođể cài đặt các mô-đun npm trên toàn cầu.

Trước khi bạn bắt đầu, hãy ghi lại bất kỳ gói npm nào được cài đặt trên toàn cầu. Các hướng dẫn này sẽ giúp bạn loại bỏ tất cả các gói đó. Sau khi hoàn thành, bạn sẽ cần cài đặt lại chúng.

Chạy các lệnh sau để xóa tất cả các mô-đun npm toàn cầu hiện có, gỡ cài đặt nút & npm, cài đặt lại nút với mặc định chính xác, định cấu hình vị trí cho các mô-đun npm toàn cầu sẽ được cài đặt, sau đó cài đặt npm làm nhịp điệu riêng.

rm -rf /usr/local/lib/node_modules
brew uninstall node
brew install node --without-npm
echo prefix=~/.npm-packages >> ~/.npmrc
curl -L https://www.npmjs.com/install.sh | sh

Nút và npm nên được cài đặt chính xác tại thời điểm này. Bước cuối cùng là thêm ~/.npm-packages/binvào PATHcác gói npm và npm toàn cầu của bạn có thể sử dụng được. Để làm điều này, thêm dòng sau vào ~/.bash_profile:

export PATH="$HOME/.npm-packages/bin:$PATH"

Bây giờ bạn có thể cài đặt lại bất kỳ gói npm toàn cầu nào bạn cần mà không gặp vấn đề gì.


4
Câu trả lời chỉ liên kết không được khuyến khích trên Stack Overflow.
Andrew Grimm

@AndrewGrimm có ý nghĩa, tôi đã sao chép phần có liên quan.
pcatre

1
Sau khi đặt lệnh sau, tôi nhận được lỗi sau: curl -L npmjs.com/install.sh | sh .... npm ERR! Một bản ghi đầy đủ của lần chạy này có thể được tìm thấy trong: npm ERR! /Users/bddev/.npm/_logs/2018-10-18T20_02_34_337Z-debug.log npm ERR! mã E404 npm ERR! 404 Không tìm thấy: 1.535s@latest npm ERR! Một bản ghi đầy đủ của lần chạy này có thể được tìm thấy trong: npm ERR! /Users/bddev/.npm/_logs/2018-10-18T20_02_36_399Z-debug.log Nó không thành công
Shoaib Ahmed

1

Trong trường hợp của tôi, không có câu trả lời nào khác hoạt động được vì trước đó tôi đã hạ cấp xuống nút8. Vì vậy, thay vì làm ở trên, sau đây làm việc cho tôi:

which node

mà trở lại /usr/local/bin/node@8thay vì/usr/local/bin/node

Vì vậy, tôi đã thực hiện lệnh này:

brew uninstall node@8

đã làm việc và sau đó tải pkg mới nhất từ ​​trang web chính thức và cài đặt. Sau đó tôi phải đóng thiết bị đầu cuối của mình và bắt đầu lại để truy cập phiên bản mới


1

Nếu bạn không thể xác định vị trí nút chỉ cần chạy whereis nodewhereis npmwhereis nvmvà bạn có thể xóa các thư mục được liệt kê khi cần thiết.

Bạn cũng cần phải đóng hoàn toàn thiết bị đầu cuối của mình và mở lại thiết bị để các thay đổi có hiệu lực.


1

Docker - phương pháp thay thế

Docker là một loại máy ảo siêu nhanh có thể được sử dụng để chạy các công cụ như nút (thay vì cài đặt chúng trực tiếp trên mac-os). Những lợi thế để làm điều đó là sau

  • tất cả nội dung (tệp nút 'triệu) được cài đặt bên trong hình ảnh / thùng chứa docker (chúng được gói gọn trong một vài tệp docker bên trong)

  • bạn có thể ánh xạ thư mục mac của bạn với dự án vào thùng chứa docker của bạn và có quyền truy cập vào nút - nhưng bên ngoài docker, mac-os sytem thậm chí không biết rằng nút đó đã được cài đặt. Vì vậy, bạn nhận được một số loại bảng điều khiển 'ảo' với các lệnh nút có sẵn có thể hoạt động trên các tệp thực

  • bạn có thể dễ dàng giết nút bằng cách tìm nó bằng cách docker psvà giết bởidocker rm -f name_or_num

  • bạn có thể dễ dàng gỡ cài đặt hình ảnh / container của docker bằng một lệnh docker rmi ...và nhận dung lượng trống - và cài đặt lại bằng cách chạy tập lệnh (bên dưới)

  • nút của bạn được gói gọn trong docker và không có quyền truy cập vào toàn bộ hệ thống - chỉ các thư mục bạn ánh xạ tới nó

  • bạn có thể chạy các dịch vụ nút và dễ dàng ánh xạ chúng chuyển sang cổng mac và có quyền truy cập từ trình duyệt web

  • bạn có thể chạy nhiều phiên bản nút cùng một lúc

  • theo cách tương tự, bạn có thể cài đặt các công cụ khác như (trong nhiều phiên bản cùng một lúc): php, cơ sở dữ liệu, redis, v.v. - bên trong docker mà không có bất kỳ tương tác nào với mac-os (hoàn toàn không nhận thấy phần mềm như vậy). Ví dụ: bạn có thể chạy cùng lúc 3 mys mys db với các phiên bản khác nhau và 3 ứng dụng php với phiên bản php khác nhau ... - vì vậy bạn có thể có nhiều công cụ nhưng hệ thống sạch

  • TEAM WORK: môi trường như vậy có thể dễ dàng được sao chép vào các máy khác (và thậm chí với các hệ thống windows / linux - với một số sửa đổi) và cung cấp môi trường cấp docker giống hệt nhau - vì vậy bạn có thể dễ dàng thiết lập và sử dụng lại tập lệnh / dockerfiles và môi trường thiết lập cho thành viên nhóm mới theo cách rất nhanh (anh ta chỉ cần cài đặt docker và tạo cấu trúc thư mục tương tự và nhận bản sao của các tập lệnh - đó là tất cả). Tôi làm việc theo cách này trong 2 năm và với nhóm của mình - và chúng tôi rất hạnh phúc

Chỉ dẫn

  • Cài đặt docker bằng cách sử dụng, ví dụ như hướng dẫn này

  • Chuẩn bị thư mục 'đặc biệt' cho công việc, ví dụ thư mục của tôi là /Users/kamil/work(tôi sẽ sử dụng thư mục này hơn nữa - nhưng nó có thể tùy ý) - thư mục này sẽ là 'giao diện' giữa các thùng chứa docker và ststem tệp mac của bạn. Bên trong thư mục này tạo cấu trúc thư mục sau:

    /Users/kamil/work/code - ở đây bạn đặt các dự án của bạn với mã

    /Users/kamil/work/tools

    /Users/kamil/work/tools/docker-data - ở đây chúng tôi ánh xạ dữ liệu đầu ra của container như nhật ký (hoặc tệp cơ sở dữ liệu nếu có ai đó db, v.v.)

    /Users/kamil/work/tools/docker

    /Users/kamil/work/tools/docker/node-cmd - ở đây chúng tôi đặt tập lệnh nút docker

  • bên trong toolstạo tập tin .envsẽ chứa ở một nơi toàn cầu - đường dẫn được sử dụng trong các tập lệnh khác

  • innside dir ../node-cmdtạo tập tin dockerfilevới nội dung sau đây

  • Tập ../node-cmdtin bên trong tạo tệp run-containercó nội dung sau (tệp này phải được thực thi, ví dụ chmod +x run-container:) (chú ý cách chúng tôi ánh xạ các cổng và thư mục hình thành bên ngoài 'thế giới' sang hệ thống tập tin docker bên trong)

  • ok bây giờ bạn có thể thêm một số dự án, ví dụ work/code/myProjectvà thêm vào nó sau tệp 'run-cmd' (phải được thực thi)

  • sau đó nếu bạn chạy tập lệnh bên trên (bằng cách nhấp đúp), bạn sẽ thấy bàn điều khiển với các lệnh nút có sẵn trong thư mục dự án, vd npm install

  • đối với dự án chạy ở chế độ nền (ví dụ như một số serwice) ví dụ như chạy máy chủ web góc-cli ứng dụng mà bạn có thể sử dụng sau kịch bản (tên run-front-must được thực thi) - (bạn cũng phải chỉnh sửa /etc/hoststập tin để thêm miền thích hợp)


0

@ lfender6445 câu trả lời chỉ hoạt động tốt để tôi gỡ cài đặt

Bây giờ để cài đặt lại, tôi gặp vấn đề khi cài đặt phiên bản cuối cùng thay vì phiên bản ổn định nhất, vì vậy để cài đặt phiên bản nút cụ thể bạn nên làm:

brew install node@10 // 10 is the version I want
brew link node@10

-7

(máy chủ: Ubuntu 14)

1.) cài đặt nvm (trình quản lý phiên bản nút) https://github.com/creationix/nvm

2.) nút cài đặt nvm

3.) npm -v (yêu cầu phiên bản npm => 3.8.6)

4.) nút -v (yêu cầu phiên bản nút => v6.0.0)

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.