2 votos

"brew link node" crea/elimina diferente número de enlaces simbólicos cuando se repite

Estaba actualizando Node.js node a través de Homebrew's brew upgrade y no se enlazaba correctamente.

$ actualización de la cerveza
(se han actualizado las fórmulas snip-snip)
$ actualización de cerveza
(snip-snip otras mejoras)
\==> Actualización del nodo
\==> Descargar http://nodejs.org/dist/v0.8.11/node-v0.8.11.tar.gz
######################################################################## 100.0%
\==> ./configure --prefix=/usr/local/Cellar/node/0.8.11
\==> make install
\==> Advertencias
Homebrew instalado npm.
Le recomendamos que añada la siguiente ruta a su entorno PATH
para que se recojan los binarios instalados en npm:
/usr/local/share/npm/bin
Advertencia: No se ha podido enlazar el nodo. Desvinculando...
Error: El brew link el paso no se ha completado correctamente
La fórmula se ha creado, pero no está vinculada simbólicamente a /usr/local
Puedes intentarlo de nuevo utilizando `brew link node'.
\==> Resumen
/usr/local/Cellar/node/0.8.11: 856 ficheros, 13M, construido en 108 segundos
(snip-snip otras mejoras)

He seguido los pasos recomendados para forzar la vinculación.

$ nodo de enlace de cerveza
Enlace /usr/local/Cellar/node/0... Advertencia: No se ha podido enlazar el nodo. Desvinculando...

Error: Could not symlink file: /usr/local/Cellar/node/0.8.11/lib/node_modules/npm/scripts/relocate.sh
El destino /usr/local/lib/node_modules/npm/scripts/relocate.sh ya existe. Es posible que tenga que eliminarlo.
Para forzar el enlace y eliminar este archivo, haga:
brew link -f nombre_fórmula

Para listar todos los archivos que se borrarían:
brew link -n nombre_fórmula
$ brew link -f nodo
Enlazando /usr/local/Cellar/node/0.8.11... 756 enlaces simbólicos creados

Me quedé atónito con el número de enlaces simbólicos, así que por curiosidad probé a enlazarlo de nuevo.

$ brew desvincular nodo
Desenlazando /usr/local/Cellar/node/0.8.11... 755 enlaces eliminados
$ nodo de enlace de cerveza
Enlazando /usr/local/Cellar/node/0.8.11... 352 enlaces simbólicos creados
$ nodo de enlace de cerveza
Advertencia: Ya enlazado: /usr/local/Cellar/node/0.8.11
$ qué nodo
/usr/local/bin/node
$ brew desvincular nodo
Desenlazando /usr/local/Cellar/node/0.8.11... 351 enlaces eliminados
$ nodo de enlace de cerveza
Enlazando /usr/local/Cellar/node/0.8.11... 304 enlaces simbólicos creados
$ brew desvincular nodo
Desenlazando /usr/local/Cellar/node/0.8.11... 303 enlaces eliminados
$ nodo de enlace de cerveza
Enlazando /usr/local/Cellar/node/0.8.11... 304 enlaces simbólicos creados
$ brew desvincular nodo
Desenlazando /usr/local/Cellar/node/0.8.11... 303 enlaces eliminados

El proceso se estabiliza en 304/303.

  1. ¿Por qué tantos enlaces simbólicos?
  2. ¿Por qué el número de enlace/desenlace cambia de 756 a 303?

Edita: ejecuté el mismo procedimiento de actualización/actualización/enlace/desenlace en el ordenador de un colega - en este caso los enlaces simbólicos pasaron de 775 a 318 a 226, donde se estabilizaron. ¿Alguien más tiene números similares? ¿Dependen de otras recetas brew instaladas, o quizás de módulos npm?

0 votos

¿Has corrido brew doctor ? Es lo primero que hay que hacer en caso de problemas. El culpable parece ser /usr/local/lib/node_modules/npm/scripts/relocate.sh . ¿Podría ser que hayas instalado una versión no Homebrew de Node? En ese caso, el archivo de arriba tendría propiedad no Homebrew y brew se confunde. Al parecer, existen otros archivos de este tipo.

0 votos

@Dominique: brew doctor sólo me da advertencias sobre tener Mono (conflictivo pkg-config ) instalado. No creo que haya tenido otro nodo instalado, pero es posible. Mi colega, que tenía el mismo problema, puede haber añadido la compilación manual del nodo a la configuración de un proyecto compartido script (trabaja tanto en Ubuntu como en Mac) para obtener la última versión en Ubuntu. No he visto esta advertencia de vinculación en un tiempo ahora, y desvincular / vincular nodo 0.8.18 es estable en 307/307 enlaces simbólicos =)

5voto

Steve Puntos 973

¿Tienes varias versiones de Node instaladas vía homebrew? Cada vez que actualiza node homebrew pone la versión más reciente junto a la antigua y luego actualiza los enlaces simbólicos a la versión más reciente. Ejecutando el brew cleanup debería reducirlo un poco para ti.

0 votos

No conocía brew cleanup ¡Gracias! He eliminado 7 versiones antiguas de nodos. Repitiendo unlink/link todavía dio el ciclo 303/304 sin embargo, así que no hizo ninguna diferencia.

1 votos

Esos son probablemente el resto de los enlaces simbólicos creados por homebrew para otras aplicaciones. También puedes ejecutar el comando 'brew prune' para eliminar todos los enlaces simbólicos muertos.

0 votos

Ejecutar brew prune es silencioso en mi máquina, así que no puedo estar seguro de la diferencia que supuso. Ahora tengo un ciclo de 303/303, así que es posible que haya afectado a un enlace simbólico =)

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X