Cách cài đặt phiên bản mới nhất của Node bằng cách sử dụng Brew


154

Phiên bản mới nhất của NodeJs ngay bây giờ là 0.4.1

Lệnh brew install nodengay bây giờ, cài đặt 0.2.6 - không lý tưởng. Tôi muốn 0.4.1

Tôi đã xem danh sách các lệnh này cho brew và đã thửbrew install --HEAD node

Nhưng cài đặt nút 0,5-pre.

Tại sao brew không cài đặt đúng phiên bản và làm cách nào tôi có thể buộc nó lấy đúng phiên bản?

Ở giai đoạn này, có vẻ như thực sự sẽ dễ dàng hơn chỉ cần tải xuống src và cài đặt thủ công. Nhưng tôi muốn biết chuyện gì đang xảy ra với Brew.


Tôi tò mò. Sự khác biệt giữa cài đặt qua Homebrew và cài đặt từ gói được tải xuống từ nodejs.org là gì?
yihangho

Câu trả lời:


126

Bạn đã chạy brew updatetrước chưa? Nếu bạn không làm điều đó, Homebrew không thể cập nhật các công thức của nó và nếu nó không cập nhật các công thức của nó thì nó không biết cách cài đặt các phiên bản phần mềm mới nhất.


2
Phải, tôi đã thử 'nút cập nhật bia' nhưng tôi thấy bây giờ bạn đã đúng. Điều đó đã không xảy ra với tôi bởi vì tài liệu nói rằng 'bản cập nhật bia' sẽ cập nhật phần mềm sản xuất bia - điều này dường như không có gì khác biệt. Nhưng nó đề cập đến 'formulea' - đó chỉ là một từ ngu ngốc (thẳng thắn) cho những gì về cơ bản nó là 'thư viện của các phiên bản phần mềm'. Tôi có thể thực hiện 'ủ nút thông tin' để tìm hiểu phiên bản nào sẽ cài đặt. Nó được đặt thành 0.4.0 vì vậy cuối cùng tôi đã cài đặt từ src, nhưng điều này đúng. Cảm ơn bạn.
PandaWood

Khi nó nói "cập nhật phần mềm sản xuất bia", điều đó không có nghĩa là cập nhật phần mềm mà hãng bia đã cài đặt - nó có nghĩa là cập nhật chính hãng bia, cũng như thư viện Công thức của nó.
Lily Ballard

301

Chạy các lệnh dưới đây, theo thứ tự này:

brew update
brew doctor
brew upgrade node

Bây giờ bạn đã cài đặt phiên bản cập nhật của nút và có lẽ nó không được liên kết. Nếu không, hãy gõ: brew link nodehoặcbrew link --overwrite node


1
Tiếp tục nhận/usr/local/share/doc/node is not writable.
Saba Ahang

@SabaAhang, xem: Sửa quyền trên / usr / local cho Homebrew; ; gist.github.com/rpavlik/768518
AnneTheAgile

3
Lỗi: Không có keg như vậy: / usr / local / Cellar / nút
Hos Mercury

Rất vui, điều này đã sửa lỗi NPM ("Buffer.alloc không phải là hàm") vì nút keg không được liên kết; cần thiết để buộc liên kết / ghi đè lên các tập tin cũ.
dave

2
brew link --overwrite nodenó thực sự quan trọng! cảm ơn
hanzichi

136

Sau khi cài đặt / nâng cấp nút thông qua brew tôi đã gặp vấn đề này chính xác: lệnh nút hoạt động nhưng không phải lệnh npm.

Tôi đã sử dụng các lệnh này để sửa nó.

brew uninstall node
brew update
brew upgrade
brew cleanup
brew install node
sudo chown -R $(whoami) /usr/local
brew link --overwrite node
brew postinstall node

Tôi đã cùng nhau giải pháp này sau khi dùng thử và lỗi khi sử dụng ...


Cảm ơn bạn! Có cùng một vấn đề chính xác, và điều này đã giải quyết nó.
elsurudo

7
sudo brew postinstall nodesẽ đưa ra một lỗi trừ khi brew được sở hữu bởi root (không được khuyến nghị). Tôi không nghĩ rằng nó là cần thiết nếu bạn đã làm sudo chown -R $(whoami) /usr/local. Bạn sẽ có thể chỉ cần chạy brew postinstall node.
Sam Fen

2
@SamFen đúng. sudokhông cần thiết. Lần đầu tiên tôi chạy câu trả lời được chấp nhận trước khi tôi đưa ra danh sách các lệnh này. Sau đó tôi chạy node -vvà mọi thứ có vẻ ổn.
6754534367

1
Sử dụng sudo chown -R $ (whoami) $ (brew --prefix) / * thay vì sudo chown -R $ (whoami) / usr / local
Troy DC Thompson

1
Điều này làm việc cho tôi. Tôi đã làm những gì @TroyDCThndry đề xuất sudo chown -R $(whoami) $(brew --prefix)/*khi tôi nhận được Operation not permitted.
thurzo101

21

Đôi khi brew updatethất bại với tôi vì một gói không tải xuống đúng cách. Vì vậy, bạn chỉ có thể nâng cấp một thư viện cụ thể như thế này:

brew upgrade node

https://gist.github.com/3005832


13

Ngoài ra, hãy thử hủy kích hoạt phiên bản nút hiện tại sau khi cài đặt phiên bản nút mới. Nó giúp tô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

9

Tôi đã phải làm brew link --overwrite nodesau khi brew install nodecập nhật từ 0,4 đến 0,8,18


Lỗi: Không có keg như vậy: / usr / local / Cellar / nút
Hos Mercury

7

Hãy thử sử dụng "n" trình quản lý gói cực kỳ đơn giản .

> npm install -g n

Khi bạn đã cài đặt "n". Bạn có thể kéo nút mới nhất bằng cách thực hiện như sau:

> n latest

Tôi đã sử dụng thành công trên Ubuntu 16.0x và MacOS 10.12 (Sierra)

Tham khảo: https://github.com/tj/n


7

Nếu bạn đã cài đặt nút hiện tại thông qua Homebrew, chỉ cần sử dụng các lệnh này.

brew update
brew upgrade node

Kiểm tra phiên bản nút bằng

node -v


3

Chỉ cần sử dụng giải pháp này với Homebrew 0.9.5 và có vẻ như là một giải pháp nhanh chóng để nâng cấp lên phiên bản nút ổn định mới nhất.

brew update

Điều này sẽ cài đặt phiên bản mới nhất

brew install node

Bỏ liên kết phiên bản sử dụng nút hiện tại của bạn, nút -v, để tìm cái này

brew unlink node012

Điều này sẽ thay đổi thành phiên bản cập nhật nhất của nút.

brew link node

Lưu ý: Giải pháp này hoạt động do tôi gặp lỗi này:

Lỗi: Không có keg như vậy: / usr / local / Cellar / node


2

Tôi đã làm điều này trên Mac OSX Sierra. Tôi đã cài đặt Node 6.1 nhưng Puppetter yêu cầu Node 6.4. Đây là những gì tôi đã làm:

brew upgrade node
brew unlink node
brew link --overwrite node@8
echo 'export PATH="/usr/local/opt/node@8/bin:$PATH"' >> ~/.bash_profile

Và sau đó mở một cửa sổ terminal mới và chạy:

node -v
v8.11.2

--Overwrite là cần thiết để ghi đè các tệp xung đột giữa nút 6 và nút8


2
  1. node -v sẽ cho bạn thấy phiên bản hiện tại
  2. npm -v sẽ cho bạn thấy phiên bản hiện tại
  3. brew link --overwrite --dry-run node sẽ buộc liên kết và ghi đè lên tất cả các tệp xung đột.
  4. brew install node làm một cài đặt mới.
  5. brew update
  6. brew upgrade node
  7. brew link --overwrite node

    hoặc là

    brew link node

Quy trình nâng cấp nút bên dưới



0

Nếu bạn sẵn sàng loại bỏ sự brewphụ thuộc, tôi sẽ khuyên bạn nên nvm - Tôi thực sự không thể đề xuất nó trên bất kỳ giải pháp phiên bản nào khác bởi vì tôi không cần phải thử bất cứ điều gì khác. Có khả năng chuyển đổi ngay lập tức giữa các phiên bản tùy thuộc vào dự án bạn đang làm việc là khá có giá trị.


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.