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

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


@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.


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 :)


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

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 

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.


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

12

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


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


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

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

4

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

Lo que me arregló fue brew upgrade



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


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


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.


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

1

Yo arreglé por

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

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 !!!!!


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í.



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

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.