Cuando brew link se detiene porque una ruta ya existe, primero identifique a qué pertenece esa ruta. Si es un enlace simbólico de otra fórmula de Homebrew, desenlace esa fórmula; si es un archivo no relacionado, inspeccione el simulacro (dry run) de Homebrew antes de considerar la sobrescritura. Un conflicto no significa que la nueva fórmula no se haya instalado: es posible que ya esté presente en su keg, esperando un enlace seguro en el prefijo compartido de Homebrew. Manual de brew de Homebrew
Lo que indica el mensaje de conflicto
Una fórmula de Homebrew se instala en un keg con versión, y brew link crea enlaces simbólicos en directorios compartidos como bin, lib y include. Por lo general, el error nombra una ruta de destino y puede indicar que pertenece a otra fórmula o que ya existe. La documentación de Homebrew define brew link como el enlace de los archivos instalados en su prefijo, mientras que brew unlink elimina los enlaces de una fórmula de dicho prefijo. Manual de brew de Homebrew
El siguiente paso seguro depende de la propiedad del archivo. Reemplazar un enlace simbólico de Homebrew puede cambiar qué fórmula proporciona un comando o biblioteca. Reemplazar un archivo no relacionado puede afectar al software externo a Homebrew. Lea el error completo y no trate --overwrite como una opción genérica de reparación.
Inspeccionar la fórmula y la ruta en conflicto
Utilice el nombre de la fórmula que aparece en el comando de enlace fallido en lugar de FORMULA. brew info puede mostrar detalles de la fórmula, incluido si es keg-only; brew list resume los archivos en el keg actual. También puede consultar su prefijo activo sin tener que codificar de forma rígida la ubicación de Homebrew para Mac con procesador Intel o Apple Silicon:
brew info FORMULA
brew list FORMULA
brew --prefix FORMULA
Si el error indica que el destino existente es un enlace simbólico que pertenece a otra fórmula, anote también el nombre de esa fórmula. El mensaje de conflicto puede proporcionar una sugerencia directa con brew unlink OTHER_FORMULA. Si el destino es un archivo ordinario, un enlace de un cask o algo cuyo propietario no está claro, deténgase e investigue antes de modificarlo. No lo elimine solo porque Homebrew reporte una colisión.
Resolver un conflicto perteneciente a otra fórmula
Cuando el destino pertenece a una fórmula diferente y desea que la nueva fórmula proporcione la ruta en conflicto, desenlace la fórmula antigua y luego enlace la solicitada:
brew unlink OTHER_FORMULA
brew link FORMULA
Desenlazar elimina los enlaces simbólicos de esa fórmula del prefijo; no desinstala su keg. La fórmula antigua se puede volver a enlazar más adelante si es necesario. Homebrew también documenta el desenlace y reenlace como una forma de deshabilitar temporalmente una fórmula. Manual de brew de Homebrew
Si la otra fórmula aún es necesaria, recuerde que desenlazarla puede hacer que sus comandos o archivos dejen de estar disponibles a través del prefijo compartido. Evite desenlazar varios paquetes de forma especulativa. Para un conflicto que no sea claramente un enlace simbólico de otra fórmula, continúe con un simulacro (dry run) e inspeccione cada ruta listada.
Previsualizar antes de usar --overwrite
La opción --overwrite de Homebrew elimina archivos que ya están en su prefijo durante el proceso de enlace. Su opción --dry-run lista los archivos que se enlazarían o eliminarían sin modificarlos. Previsualice primero la operación solicitada:
brew link --overwrite --dry-run FORMULA
Revise las rutas cuidadosamente. Si la lista incluye archivos que reconoce como necesarios para otra herramienta, o cualquier elemento fuera del prefijo esperado de Homebrew, no continúe hasta comprender a qué pertenece y cuál es su propósito. Si la vista previa contiene únicamente archivos que tiene la intención de reemplazar, ejecute el comando real:
brew link --overwrite FORMULA
Esto modifica las rutas en el prefijo compartido. La vista previa es el punto de decisión; no resuelve el conflicto por sí misma. Manual de brew de Homebrew
Si la fórmula es keg-only
Un mensaje independiente puede indicar que la fórmula es keg-only y debe enlazarse con --force. Keg-only significa que Homebrew mantiene la fórmula en su propio keg en lugar de enlazarla en el prefijo común. Homebrew utiliza esta disposición para evitar superponerse al software de macOS o entrar en conflicto con otra fórmula. Consulte brew info FORMULA para conocer el motivo y las instrucciones de uso. Preguntas frecuentes de Homebrew
No añada --force simplemente porque un enlace normal reporte un conflicto de ruta: --force permite enlazar una fórmula keg-only; no significa que sea seguro sobrescribir las rutas en conflicto. Homebrew desaconseja forzar el enlace de dependencias keg-only de manera global, ya que compilaciones no relacionadas y comandos del sistema podrían entonces resolver una dependencia distinta. Para una compilación que necesite una herramienta o biblioteca keg-only, Homebrew recomienda usar el prefijo de su fórmula para esa compilación en lugar de exponerla globalmente. Guía de dependencias keg-only de Homebrew
Confirmar el resultado y saber cuándo detenerse
Después de resolver el conflicto específico, verifique el estado del enlace de la fórmula y reintente solo si es necesario:
brew list --versions FORMULA
brew link FORMULA
Si ya está enlazada, Homebrew puede reportar eso en lugar de crear los enlaces de nuevo. Si el enlace sigue fallando, use el nuevo error para identificar la ruta restante; no repita la sobrescritura a ciegas. Cuando el destino no esté claramente administrado por Homebrew, o la ejecución de prueba (dry run) muestre archivos que no puede reemplazar con seguridad, deje el enlace sin resolver e investigue primero el software al que pertenecen. El keg sigue siendo una instalación independiente de sus enlaces en el prefijo, por lo que una fórmula instalada puede permanecer disponible para diagnóstico incluso si el enlace está incompleto.