Cómo instalar la última versión de Node usando Brew

154

La última versión de NodeJs en este momento es 0.4.1

El comando en brew install nodeeste momento, instala 0.2.6, que no es ideal. Me gustaría 0.4.1

He mirado esta lista de comandos para preparar y he probadobrew install --HEAD node

Pero eso instala el nodo 0.5-pre.

¿Por qué Brew no está instalando la versión correcta y cómo puedo forzarla a obtener la correcta?

En esta etapa, parece que en realidad sería más fácil descargar el src e instalarlo manualmente. Pero me gustaría saber qué está pasando con Brew.

PandaWood
fuente
Tengo curiosidad ¿Cuál es la diferencia entre instalar a través de Homebrew e instalar desde el paquete descargado de nodejs.org ?
yihangho

Respuestas:

126

¿Has corrido brew updateprimero? Si no lo hace, Homebrew no puede actualizar sus fórmulas, y si no actualiza sus fórmulas, no sabe cómo instalar las últimas versiones del software.

Lily Ballard
fuente
2
Correcto, había intentado 'brew update node' pero ahora veo que tienes razón. No se me ocurrió porque el doco dice que 'actualizar brew' actualizaría el software brew, lo que parece no hacer ninguna diferencia. Pero menciona 'formulea', que es solo una palabra (francamente) estúpida para lo que básicamente es 'biblioteca de versiones de software'. Puedo hacer 'brew info node' para averiguar qué versión va a instalar. Está configurado en 0.4.0, así que terminé instalando desde src de todos modos, pero esto es correcto. Gracias.
PandaWood
Cuando dice "actualizar el software brew" no significa actualizar el software que brew ha instalado; significa actualizar brew en sí, así como su biblioteca de fórmulas.
Lily Ballard
301

Ejecute los comandos a continuación, en este orden:

brew update
brew doctor
brew upgrade node

Ahora ha instalado la versión actualizada del nodo, y probablemente no esté vinculada. Si no es así, simplemente escriba: brew link nodeobrew link --overwrite node

Andrey Bodoev
fuente
1
Sigue recibiendo/usr/local/share/doc/node is not writable.
Saba Ahang
@SabaAhang, ver: Corregir permisos en / usr / local para Homebrew; ; gist.github.com/rpavlik/768518
AnneTheAgile
3
Error: No existe ese barril: / usr / local / Cellar / node
Hos Mercury
Agradable, esto solucionó un error de NPM ("Buffer.alloc no es una función") porque el nodo del barril no estaba vinculado; necesario para forzar el enlace / sobrescribir archivos antiguos.
Dave
2
brew link --overwrite node¡Es realmente importante! gracias
hanzichi
136

Después de la instalación / actualización del nodo a través de brew, me encontré con este problema exactamente: el comando del nodo funcionó pero no el comando npm.

Usé estos comandos para arreglarlo.

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

Reuní esta solución después de la prueba y error usando ...

Eric Walsh
fuente
¡Gracias! Tenía exactamente el mismo problema, y ​​esto lo resolvió.
elsurudo
77
sudo brew postinstall nodearrojará un error a menos que brew sea propiedad de root (no recomendado). No creo que sea necesario si ya lo hiciste sudo chown -R $(whoami) /usr/local. Deberías poder correr brew postinstall node.
Sam Fen
2
@SamFen tiene razón. sudoinnecesario. Primero ejecuté la respuesta aceptada antes de probar esta lista de comandos. Luego corrí node -vy todo parece estar bien ahora.
6754534367
1
Use sudo chown -R $ (whoami) $ (brew --prefix) / * en lugar de sudo chown -R $ (whoami) / usr / local
Troy DC Thompson
1
Esto funcionó para mí. Hice lo que @TroyDCThompson me recomendó sudo chown -R $(whoami) $(brew --prefix)/*cuando estaba obteniendo Operation not permitted.
thurzo101
21

A veces brew updateme falla porque un paquete no se descarga correctamente. Así que puedes actualizar una biblioteca específica como esta:

brew upgrade node

https://gist.github.com/3005832

Lance Pollard
fuente
13

Además, intente desactivar la versión del nodo actual después de instalar una nueva versión del nodo. Me ayuda.

nvm deactivate

Esto se elimina /Users/user_name/.nvm/*/bin de $ PATH

Y después de que ese nodo fue actualizado

node --version
v10.9.0
Alexandr
fuente
9

Tuve que hacer brew link --overwrite nodedespués brew install nodepara actualizar de 0.4 a 0.8.18

ojreadmore
fuente
Error: No existe ese barril: / usr / local / Cellar / node
Hos Mercury
7

Intente usar "n" el administrador de paquetes extremadamente simple Node .

> npm install -g n

Una vez que tenga "n" instalado. Puede extraer el último nodo haciendo lo siguiente:

> n latest

Lo he usado con éxito en Ubuntu 16.0x y MacOS 10.12 (Sierra)

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

Rubén
fuente
7

Si ha instalado el nodo actual vía Homebrew, simplemente use estos comandos.

brew update
brew upgrade node

Verifique la versión del nodo por

node -v

Harikrishnan
fuente
3

Acabo de usar esta solución con Homebrew 0.9.5 y parecía una solución rápida para actualizar a la última versión estable de nodo.

brew update

Esto instalará la última versión

brew install node

Desvincula tu versión actual del uso del nodo, nodo -v, para encontrar esto

brew unlink node012

Esto cambiará a la versión más actualizada del nodo.

brew link node

Nota: Esta solución funcionó porque obtuve este error:

Error: No existe ese barril: / usr / local / Cellar / node

usuario2096561
fuente
2

Lo hice en Mac OSX Sierra. Tenía instalado el Nodo 6.1 pero Puppetter requería el Nodo 6.4. Esto es lo que hice:

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

Y luego abra una nueva ventana de terminal y ejecute:

node -v
v8.11.2

--Overwrite es necesario para anular archivos en conflicto entre node6 y node8

Donato
fuente
2
  1. node -v le mostrará la versión actual.
  2. npm -v le mostrará la versión actual.
  3. brew link --overwrite --dry-run node forzará el enlace y sobrescribirá todos los archivos en conflicto.
  4. brew install node hacer una nueva instalación
  5. brew update
  6. brew upgrade node
  7. brew link --overwrite node

    o

    brew link node

Los procedimientos de actualización de nodos están a continuación

Mahendra Rao
fuente
1

Puedes usar nodebrew . También puede cambiar las versiones de nodo.

proyecto c
fuente
0

Si está dispuesto a eliminar la brewdependencia, le recomendaría nvm . Realmente no puedo recomendarlo sobre ninguna otra solución de versiones porque no he necesitado probar nada más. Tener la capacidad de cambiar instantáneamente entre versiones dependiendo del proyecto en el que estés trabajando es bastante valioso.

Jon z
fuente