Come installare l'ultima versione di Node usando Brew


154

L'ultima versione di NodeJs in questo momento è la 0.4.1

Il comando in brew install nodequesto momento installa 0.2.6 - che non è l'ideale. Vorrei 0.4.1

Ho guardato questo elenco di comandi per la preparazione e provatobrew install --HEAD node

Ma questo installa il nodo 0.5-pre.

Perché brew non sta installando la versione giusta e come posso forzarla per ottenere quella giusta?

A questo punto, sembra che sarebbe effettivamente più semplice scaricare l'src e installarlo manualmente. Ma vorrei sapere cosa sta succedendo con Brew.


Io sono curioso. Qual è la differenza tra l'installazione tramite Homebrew e l'installazione dal pacchetto scaricato da nodejs.org ?
yihangho,

Risposte:


126

Hai corso per brew updateprimo? Se non lo fai, Homebrew non può aggiornare le sue formule e se non aggiorna le sue formule non sa come installare le ultime versioni del software.


2
Bene, avevo provato 'brew update node' ma ora vedo che hai ragione. Non mi è venuto in mente perché il doco afferma che "brew update" aggiornerebbe il software brew, il che sembrerebbe non fare alcuna differenza. Ma menziona "formule" - che è solo una parola (francamente) stupida per ciò che è fondamentalmente "biblioteca di versioni del software". Posso fare "brew info node" per scoprire quale versione installerà. È impostato su 0.4.0 quindi ho finito per installare da src comunque, ma questo è giusto. Grazie.
PandaWood,

Quando dice "aggiorna il software brew" non significa aggiornare il software che brew ha installato, ma significa update brew stesso, così come la sua libreria di formule.
Lily Ballard,

301

Esegui i comandi di seguito, in questo ordine:

brew update
brew doctor
brew upgrade node

Ora hai installato la versione aggiornata del nodo e probabilmente non è collegata. In caso contrario, digita semplicemente: brew link nodeobrew link --overwrite node


1
Continua a ricevere/usr/local/share/doc/node is not writable.
Saba Ahang

@SabaAhang, vedi: Correggi le autorizzazioni su / usr / local per Homebrew; ; gist.github.com/rpavlik/768518
AnneTheAgile

3
Errore: nessun barile di questo tipo: / usr / local / Cellar / node
Hos Mercury

Bene, questo ha risolto un errore NPM ("Buffer.alloc non è una funzione") perché il keg del nodo era scollegato; necessario per forzare il collegamento / sovrascrivere i vecchi file.
Dave,

2
brew link --overwrite nodeè davvero importante! grazie
hanzichi il

136

Dopo l'installazione / l'aggiornamento del nodo tramite brew mi sono imbattuto esattamente in questo problema: il comando node ha funzionato ma non il comando npm.

Ho usato questi comandi per risolverlo.

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

Ho messo insieme questa soluzione dopo tentativi ed errori usando ...


Grazie! Aveva lo stesso identico problema e questo l'ha risolto.
elsurudo

7
sudo brew postinstall nodegenererà un errore a meno che brew non sia di proprietà di root (non raccomandato). Non penso che dovrebbe essere necessario se lo hai già fatto sudo chown -R $(whoami) /usr/local. Dovresti essere in grado di correre brew postinstall node.
Sam Fen,

2
@SamFen ha ragione. sudonon necessario. Ho prima eseguito la risposta accettata prima di dare un'occhiata a questo elenco di comandi. Dopo ho corso node -ve ora sembra tutto a posto.
6754534367,

1
Usa sudo chown -R $ (whoami) $ (brew --prefix) / * invece di sudo chown -R $ (whoami) / usr / local
Troy DC Thompson,

1
Questo ha funzionato per me. Ho fatto ciò che @TroyDCThompson mi ha raccomandato sudo chown -R $(whoami) $(brew --prefix)/*mentre stavo ottenendo Operation not permitted.
thurzo101


13

Inoltre, prova a disattivare la versione del nodo corrente dopo aver installato una nuova versione del nodo. Mi aiuta.

nvm deactivate

Questo è rimosso /Users/user_name/.nvm/*/bin da $ PATH

E dopo che quel nodo è stato aggiornato

node --version
v10.9.0

9

Ho dovuto fare brew link --overwrite nodedopo brew install nodel'aggiornamento da 0.4 a 0.8.18


Errore: nessun barile di questo tipo: / usr / local / Cellar / node
Hos Mercury

7

Prova a usare "n" il gestore pacchetti estremamente semplice Node .

> npm install -g n

Dopo aver installato "n". È possibile estrarre l'ultimo nodo procedendo come segue:

> n latest

L'ho usato con successo su Ubuntu 16.0x e MacOS 10.12 (Sierra)

Riferimento: https://github.com/tj/n


7

Se hai installato il nodo corrente tramite Homebrew, usa questi comandi.

brew update
brew upgrade node

Controlla la versione del nodo entro

node -v


3

Ho appena usato questa soluzione con Homebrew 0.9.5 e sembrava una soluzione rapida per l'aggiornamento all'ultima versione stabile del nodo.

brew update

Questo installerà l'ultima versione

brew install node

Scollega la tua versione corrente del nodo usa, node -v, per trovare questo

brew unlink node012

Questo cambierà alla versione più aggiornata del nodo.

brew link node

Nota: questa soluzione ha funzionato a causa della visualizzazione di questo errore:

Errore: nessun tale barile: / usr / local / Cellar / node


2

L'ho fatto su Mac OSX Sierra. Avevo installato il Nodo 6.1 ma Puppetter richiedeva il Nodo 6.4. Questo è quello che ho fatto:

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

E quindi apri una nuova finestra del terminale ed esegui:

node -v
v8.11.2

--Overwrite è necessario per sovrascrivere i file in conflitto tra node6 e node8




0

Se sei disposto a rimuovere la brewdipendenza, consiglierei nvm : non posso davvero consigliarlo su qualsiasi altra soluzione di versioning perché non ho bisogno di provare nient'altro. Avere la possibilità di passare istantaneamente da una versione all'altra a seconda del progetto a cui stai lavorando è piuttosto prezioso.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.