La instalación del nodo con brew falla en Mac OS Sierra

92

Estoy intentando instalar el nodo con homebrew en macOS Sierra. Corro

 brew install node

Después de una instalación aparentemente exitosa, obtengo lo siguiente cuando intento ejecutar node:

dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.58.dylib
  Referenced from: /usr/local/bin/node
  Reason: image not found
Abort trap: 6
mircealungu
fuente
1
Quizás esto (reemplazar php56con node) ayude, pero yo mismo uso el instalador oficial de Node.js para Mac.
Robertklep
6
esto funcionó para mí: brew update && brew reinstala nodejs
Scott Flack
Encuentra el hilo en github aquí github.com/Homebrew/homebrew-core/issues/11713
Simon Franzen
@ScottFlack, actualización de preparación; brew reinstall nodejs también puede funcionar, ya que la reinstalación de nodejs puede pasar a pesar de que la actualización de brew no es cero (por ejemplo, debido a un tap mal configurado o no utilizado).
emallove

Respuestas:

108

Esta es la serie de encantamientos que finalmente me funcionó en base a este enlace sugerido por @robertklep y @vovkasm.

brew uninstall --force node
brew uninstall icu4c && brew install icu4c
brew unlink icu4c && brew link icu4c --force
brew install node

No estoy seguro de si todos son necesarios, pero dado que no puedo poner mi máquina en el estado anterior ... Dejaré esta información aquí, tal vez sea útil para alguien más.

mircealungu
fuente
3
Gracias por esto. Me funcionó en Mac Os 10.13.4 High Sierra. Juro que nunca entenderé la necesidad de ... fuerza. Es como "Lo digo en serio, esta vez ...".
Matt
3
También tuve que desinstalar el nodo 8 para que esto funcione. brew uninstall node@8. Ver medium.com/@mahcloud/mac-brew-node-10-upgrade-55d3e910eebb
jkschneider
6
Se agregó --ignore-dependencies para desinstalar comandos y funcionó muy bien.
Almas Dusal
1
¡Solo forzar la desinstalación y reinstalación funcionó para mí!
Graystripe
1
Puede encontrarse con un error con NPM diciendo que no se puede desinstalar icu4cporque es una dependencia de otras aplicaciones. Para conseguir alrededor de esta carrera: brew uninstall --ignore-dependencies icu4c && brew install icu4c. Este comando reemplaza al segundo comando de @ mircealungu.
Reelyard
68

En mi caso, brew upgrade noderesuelve el problema :)

hielo6
fuente
8
Creo que quieres en brew upgradecambio, updateme dio un error.
getmicah
31

Bueno, recibí este error al intentar instalar @angular/cli, me di cuenta de que el nodo podría estar desactualizado. Seguir los pasos exactos de @mircealungu no funcionó del todo para mí, aquí está la versión modificada que funcionó para mí.

brew uninstall --ignore-dependencies --force node
brew uninstall --ignore-dependencies --force icu4c
brew install icu4c
brew unlink icu4c && brew link icu4c --force
brew install node
ishandutta2007
fuente
2
Esto lo hizo por mí. También ayudó a mi proyecto actual a matar a node_modules ( rm -rf node_modules) y de npm installnuevo.
notacouch
1
Tengo este problema después de instalar php56-pgsql a través de brew, esta solución es para mí.
Felice Ostuni
3
Gracias, esta respuesta me salvó la vida. Hay algunas cosas que tuve que hacer fuera de estos pasos.
yoshi
24

La actualización del nodo solucionó un problema.

brew upgrade node 
mkkrolik
fuente
23

Recientemente encontré un problema similar (después de hacer brew switch node 9.8.0para cambiar a una versión anterior del nodo)

dyld: Library not loaded: 
/usr/local/opt/icu4c/lib/libicui18n.60.dylib
  Referenced from: /usr/local/bin/node
  Reason: image not found
Abort trap: 6

El problema es que el nodo es exigente con la versión de icu4c que está buscando, y la versión que había instalado (62) era superior a la que esperaba el nodo.

Para solucionarlo, me aseguré de tener seleccionada la versión 60 de icu4c.

Primero encontré con qué versiones tenía brew info icu4c, luego lo hice brew switch icu4c 60.2para seleccionar el nodo que esperaba.

amcvitty
fuente
cómo determinó que el nodo quería la versión 60.2 - gracias
razón
1
@raison La versión de icu4c que busca el nodo está en el mensaje de error dyld. En este caso 60,. Compare eso con la salida de brew info icu4cpara encontrar una versión compatible, por ejemplo 60.2.
neatonk
Esa es la mejor respuesta
saza
13

Parece que el archivo /usr/local/opt/icu4c/lib/libicui18n.58.dylibno existe en su sistema.

Asegúrese de que icu4cesté instalado con Homebrew.

  1. brew info icu4c
  2. Si ya está instalado, intente reinstalar: brew reinstall icu4c
  3. Si no está instalado, intente instalar: brew install icu4c

fuente
12

Para una alta seirra, ¡solo "preparar mejora" hace magia!

Basavaraj Hadimani
fuente
2
Lo mismo también para Mojave. Tuve el problema con la instalación de PHP y simplemente escribí su comando. Gracias.
Julian Schmuckli
9

Primero desinstalo node e icu4c, obligo a desinstalar todas las versiones

brew uninstall --force --ignore-dependencies node icu4c

Después de instalar la versión 8 de Node

brew install node@8

Si ya está instalado, solo actualice

brew upgrade node@8

Y entrar

node -v

v8.11.1

Renan Bronchart
fuente
8

Para mí, aparentemente fue un problema con la icu4cinstalación de brew.

brew reinstall icu4c

se reinstalará icu4c.

si no lo tienes instalado,

brew install icu4c
ddavison
fuente
1
Muchas gracias, me ahorró mucho tiempo y esfuerzo. Buscando esta respuesta durante mucho tiempo.
DC
esta debe ser una respuesta aceptada. este comando me salvó
Jais Anasrulloh Ja'fari
7

Esto se activó para mí después de una brew upgradey brew updatecorrió. Pude solucionarlo simplemente reinstalando los dos elementos marcados como problemas (lo que tenía sentido para mí):

brew reinstall node
brew reinstall icu4c
Kevin Leary
fuente
4

Ninguno de los anteriores funcionó para mí. Estoy usando High Sierra.

Lo que me arregló fue brew upgrade

Markashworth
fuente
3

Nada funcionó para mí, pero ejecutar esto funcionó

brew link --overwrite node
dura zalavadiya
fuente
3

Encontré una solución que funciona muy bien aquí . Daré brevemente los comandos a continuación.

Primero, ingrese al directorio de fórmulas homebrew:

cd $(brew --prefix)/Homebrew/Library/Taps/homebrew/homebrew-core/Formula

Registro de Git:

git log --follow icu4c.rb

Elija el hash de confirmación que coincida con la versión que necesita. Necesitaba la versión 61.1, así que elegí el 6d9815compromiso:

git checkout -b icu4c-61.1 6d9815

Reinstalar:

brew reinstall ./icu4c.rb

Cambiar:

brew switch icu4c 61.1

Eso me lo arregló.

Crédito: hanxue

Sawant
fuente
1
¡También es una gran solución general para otros problemas de la biblioteca! tuve este problema con otras bibliotecas antes, pero esta es, con mucho, la solución más limpia (con git branch, y simplemente verificando versiones antiguas en lugar de editar manualmente la fórmula)
Ricky Cook
1

brew uninstall --force node
brew uninstall --ignore-dependencies icu4c
brew unlink icu4c && brew link icu4c --force
brew install node

rapaelec
fuente
1

Este error me lo dieron después de migrar las máquinas.

Aunque todo estaba instalado, cuando fui a comprobar node -vonpm version , recibí este error.

Lo que solucionó fue brew reinstall icu4c.

Miguel
fuente
1

Tuve el mismo problema con mi instalación de php local.

dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.62.dylib
  Referenced from: /usr/local/bin/php
  Reason: image not found
Abort trap: 6

Resolvió el problema con este comando. (verifica tu versión)

brew link --overwrite --force php@7.1
Fred
fuente
1

Yo arreglé por

cd /usr/local/Cellar
rm -rf node*/
rm -rf icu4c/
brew install node
Miao1007
fuente
0

parece que su ruta de referencia icu4u no está configurada correctamente

Primero verifique que puede instalar icu4c o no poniendo el comentario debajo en el mensaje

brew info icu4c

o reinstalar

brew reinstall icu4c

Si necesita tener este software primero en su ejecución PATH:

echo 'export PATH="/usr/local/opt/icu4c/bin:$PATH"' >> ~/.bash_profile

espero que esto pueda ayudar !!!!!

sritharan
fuente
0

Es tan fácil como un software común, simplemente descargue el paquete de instalación del sitio oficial: NodeJS

y luego descargue una versión recomendada (actualmente 8.11.3, finalice con .pkg), instálelo como un software común, luego podrá usarlo. Probé tantos métodos, y solo este funciona para mí.

Lau Real
fuente
0

Intente reiniciar su máquina. Eso me ayudó.

Vygandas
fuente
0

Lo eliminé export PATH="/usr/local/opt/icu4c/bin:$PATH"de mi ~/.bash_profilearchivo y solucionó mi problema.

Mi error fue:

dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.63.dylib
  Referenced from: /usr/local/opt/node@10/bin/node
  Reason: image not found
Abort trap: 6

Mi /usr/local/opt/icu4c/lib contienelibicui18n.64.dylib

y2knoproblem
fuente