Jak zainstalować najnowszą wersję Node za pomocą Brew


154

Najnowsza wersja NodeJs to obecnie 0.4.1

Polecenie w brew install nodetej chwili instaluje 0.2.6 - co nie jest idealne. Chciałbym 0.4.1

Spojrzałem na listę poleceń dla naparu i spróbowałembrew install --HEAD node

Ale to instaluje węzeł 0.5-pre.

Dlaczego brew nie instaluje odpowiedniej wersji i jak mogę zmusić go do uzyskania właściwej?

Na tym etapie wygląda na to, że byłoby łatwiej po prostu pobrać plik src i zainstalować go ręcznie. Ale chciałbym wiedzieć, co się dzieje z Brew.


Jestem ciekaw. Jaka jest różnica między instalacją przez Homebrew a instalacją z pakietu pobranego z nodejs.org ?
yihangho

Odpowiedzi:


126

Biegałeś brew updatepierwszy? Jeśli tego nie zrobisz, Homebrew nie może zaktualizować swoich formuł, a jeśli nie zaktualizuje swoich formuł, nie będzie wiedział, jak zainstalować najnowsze wersje oprogramowania.


2
Racja, próbowałem użyć opcji „brew update node”, ale teraz widzę, że masz rację. Nie przyszło mi to do głowy, ponieważ dokumentacja mówi, że „aktualizacja parzenia” zaktualizuje oprogramowanie parzenia - co wydaje się nie robić różnicy. Ale wspomina o „formulea” - co jest (szczerze) głupim słowem na określenie tego, co w zasadzie jest „biblioteką wersji oprogramowania”. Mogę zrobić „brew info node”, aby dowiedzieć się, jaką wersję ma zainstalować. Jest ustawiony na 0.4.0, więc i tak zakończyłem instalację z src, ale to prawda. Dziękuję Ci.
PandaWood,

Kiedy mówi „zaktualizuj oprogramowanie brew”, nie oznacza to aktualizacji oprogramowania, które zainstalował brew - oznacza to aktualizację samego brew, jak również biblioteki formuł.
Lily Ballard,

301

Uruchom poniższe polecenia, w tej kolejności:

brew update
brew doctor
brew upgrade node

Teraz masz zainstalowaną zaktualizowaną wersję węzła i prawdopodobnie nie jest ona połączona. Jeśli tak nie jest, po prostu wpisz: brew link nodelubbrew link --overwrite node


1
Kontynuuj/usr/local/share/doc/node is not writable.
Saba Ahang

@SabaAhang, zobacz: Napraw uprawnienia w / usr / local dla Homebrew; ; gist.github.com/rpavlik/768518
AnneTheAgile

3
Błąd: nie ma takiej beczki: / usr / local / Cellar / node
Hos Mercury

Świetnie, to naprawiło błąd NPM („Buffer.alloc nie jest funkcją”), ponieważ beczka węzła została odłączona; potrzebne do wymuszenia linkowania / nadpisania starych plików.
dave

2
brew link --overwrite nodeto naprawdę ważne! dzięki
hanzichi

136

Po instalacji / uaktualnieniu węzła przez brew natknąłem się dokładnie na ten problem: polecenie node zadziałało, ale nie polecenie npm.

Użyłem tych poleceń, aby to naprawić.

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

Złożyłem to rozwiązanie po próbach i błędach za pomocą ...


Dziękuję Ci! Miał dokładnie ten sam problem i to go rozwiązało.
elsurudo

7
sudo brew postinstall nodezgłosi błąd, chyba że brew jest własnością roota (niezalecane). Myślę, że nie powinno to być potrzebne, jeśli już to zrobiłeś sudo chown -R $(whoami) /usr/local. Powinieneś być w stanie po prostu biegać brew postinstall node.
Sam Fen

2
@SamFen ma rację. sudonie są potrzebne. Najpierw sprawdziłem zaakceptowaną odpowiedź, zanim podałem tę listę poleceń. Potem pobiegłem node -vi teraz wszystko wydaje się w porządku.
6754534367

1
Użyj sudo chown -R $ (whoami) $ (brew --prefix) / * zamiast sudo chown -R $ (whoami) / usr / local
Troy DC Thompson

1
To zadziałało dla mnie. Zrobiłem to, co @TroyDCThompson zalecił, sudo chown -R $(whoami) $(brew --prefix)/*gdy dostawałem Operation not permitted.
czwartek101


13

Spróbuj również dezaktywować bieżącą wersję węzła po zainstalowaniu nowej wersji węzła. To pomaga mi.

nvm deactivate

To jest usuwane /Users/user_name/.nvm/*/bin z $ PATH

Po zaktualizowaniu tego węzła

node --version
v10.9.0

9

Musiałem zrobić brew link --overwrite nodepo brew install nodeaktualizacji z 0.4 do 0.8.18


Błąd: nie ma takiej beczki: / usr / local / Cellar / node
Hos Mercury

7

Spróbuj użyć "n", niezwykle prostego menedżera pakietów Node .

> npm install -g n

Po zainstalowaniu "n". Możesz pobrać najnowszy węzeł, wykonując następujące czynności:

> n latest

Użyłem go z powodzeniem na Ubuntu 16.0x i MacOS 10.12 (Sierra)

Źródła: https://github.com/tj/n


7

Jeśli zainstalowałeś bieżący węzeł za pośrednictwem Homebrew, po prostu użyj tych poleceń.

brew update
brew upgrade node

Sprawdź wersję węzła według

node -v


3

Właśnie użyłem tego rozwiązania z Homebrew 0.9.5 i wydawało się, że jest to szybkie rozwiązanie do aktualizacji do najnowszej stabilnej wersji węzła.

brew update

Spowoduje to zainstalowanie najnowszej wersji

brew install node

Aby to znaleźć, odłącz bieżącą wersję użycia węzła, node -v

brew unlink node012

Spowoduje to zmianę na najbardziej aktualną wersję node.

brew link node

Uwaga: to rozwiązanie zadziałało, ponieważ otrzymałem ten błąd:

Błąd: nie ma takiej beczki: / usr / local / Cellar / node


2

Zrobiłem to na Mac OSX Sierra. Miałem zainstalowany Node 6.1, ale Puppetter wymagał Node 6.4. Oto co zrobiłem:

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

A następnie otwórz nowe okno terminala i uruchom:

node -v
v8.11.2

Opcja --overwrite jest konieczna do przesłonięcia plików powodujących konflikty między node6 i node8




0

Jeśli chcesz usunąć brewzależność, poleciłbym nvm - naprawdę nie mogę go polecić w stosunku do żadnego innego rozwiązania do wersjonowania, ponieważ nie musiałem próbować niczego innego. Możliwość natychmiastowego przełączania się między wersjami w zależności od projektu, nad którym pracujesz, jest bardzo cenna.


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.