Quando o brew link é interrompido porque um caminho já existe, primeiro identifique quem possui esse caminho. Se for um link simbólico de outra fórmula do Homebrew, desfaça o link dessa fórmula; se for um arquivo não relacionado, inspecione a simulação (dry run) do Homebrew antes de considerar a substituição. Um conflito não significa que a nova fórmula falhou ao ser instalada: ela pode já estar presente em seu keg, aguardando um link seguro para o prefixo compartilhado do Homebrew. Manual do brew do Homebrew
O que a mensagem de conflito indica
Uma fórmula do Homebrew é instalada em um keg com versão específica, e o brew link cria links simbólicos para diretórios compartilhados, como bin, lib e include. O erro geralmente indica o caminho de destino e pode informar que ele pertence a outra fórmula ou que já existe. O Homebrew documenta o brew link como a ação de criar links para os arquivos instalados dentro de seu prefixo, enquanto o brew unlink remove os links de uma fórmula desse prefixo. Manual do brew do Homebrew
O próximo passo seguro depende da posse do arquivo. Substituir um link simbólico do Homebrew pode alterar qual fórmula fornece um determinado comando ou biblioteca. Substituir um arquivo não relacionado pode afetar softwares fora do ecossistema do Homebrew. Leia o erro completo e não trate o --overwrite como uma opção de reparo genérica.
Inspecione a fórmula e o caminho em conflito
Use o nome da fórmula exibido no comando de link que falhou no lugar de FORMULA. brew info pode exibir detalhes da fórmula, inclusive se ela é keg-only; brew list resume os arquivos no keg atual. Você também pode solicitar o prefixo ativo sem precisar codificar de forma fixa o caminho do Homebrew para Mac com processador Intel ou Apple silicon:
brew info FORMULA
brew list FORMULA
brew --prefix FORMULA
Se o erro indicar que o destino existente é um link simbólico pertencente a outra fórmula, anote também o nome dessa fórmula. A mensagem de conflito pode fornecer uma sugestão direta de brew unlink OTHER_FORMULA. Se o destino for um arquivo comum, um link de um cask ou algo cujo proprietário seja incerto, pare e investigue antes de alterá-lo. Não o exclua apenas porque o Homebrew relatou uma colisão.
Resolva um conflito pertencente a outra fórmula
Quando o destino pertencer a uma fórmula diferente e você quiser que a nova fórmula forneça o caminho em conflito, desfaça o link da fórmula antiga e, em seguida, crie o link da fórmula desejada:
brew unlink OTHER_FORMULA
brew link FORMULA
Desfazer o link remove os links simbólicos dessa fórmula do prefixo; isso não desinstala seu keg. A fórmula antiga pode ser vinculada novamente mais tarde, se necessário. O Homebrew também documenta a ação de desfazer e refazer o link como uma maneira de desativar temporariamente uma fórmula. Manual do brew do Homebrew
Se a outra fórmula ainda for necessária, lembre-se de que desfazer o link pode tornar seus comandos ou arquivos indisponíveis por meio do prefixo compartilhado. Evite desvincular vários pacotes de forma especulativa. Para um conflito que claramente não seja o link simbólico de outra fórmula, continue com uma simulação (dry run) e inspecione cada caminho listado.
Visualize antes de usar --overwrite
A opção --overwrite do Homebrew exclui arquivos que já estão em seu prefixo ao criar os links. Sua opção --dry-run lista os arquivos que seriam vinculados ou excluídos sem fazer alterações neles. Visualize a operação solicitada primeiro:
brew link --overwrite --dry-run FORMULA
Revise os caminhos com atenção. Se a lista incluir arquivos que você reconhece como necessários para outra ferramenta, ou qualquer coisa fora do prefixo esperado do Homebrew, não prossiga até compreender seu proprietário e finalidade. Se a prévia contiver apenas arquivos que você pretende substituir, execute o comando real:
brew link --overwrite FORMULA
Isso altera caminhos no prefixo compartilhado. A prévia é o momento de decisão; ela por si só não resolve o conflito. Manual do brew do Homebrew
Se a fórmula for keg-only
Uma mensagem separada pode informar que a fórmula é keg-only e deve ser vinculada com --force. Keg-only significa que o Homebrew mantém a fórmula em seu próprio keg em vez de criar links para ela no prefixo comum. O Homebrew utiliza essa abordagem para evitar sobrepor softwares do macOS ou entrar em conflito com outra fórmula. Verifique brew info FORMULA para saber o motivo e obter instruções de uso. Perguntas Frequentes (FAQ) do Homebrew
Não adicione --force apenas porque uma tentativa comum de link relatou um conflito de caminho: --force autoriza a criação de links para uma fórmula keg-only; isso não significa que seja seguro sobrescrever os caminhos conflitantes. O Homebrew desaconselha forçar a criação de links para dependências keg-only globalmente, pois compilações não relacionadas e comandos do sistema podem passar a resolver uma dependência diferente. Para uma compilação que necessite de uma ferramenta ou biblioteca keg-only, o Homebrew recomenda usar o prefixo da fórmula especificamente para essa compilação em vez de expô-la globalmente. Guia de dependências keg-only do Homebrew
Confirme o resultado e saiba quando parar
Após resolver o conflito específico, verifique o estado do link da fórmula e tente novamente apenas se necessário:
brew list --versions FORMULA
brew link FORMULA
Se o link já estiver criado, o Homebrew poderá informar isso em vez de criá-lo novamente. Se a criação do link ainda falhar, use a nova mensagem de erro para identificar o caminho restante; não repita a sobrescrita às cegas. Quando o destino não for claramente gerenciado pelo Homebrew, ou a simulação mostrar arquivos que você não pode substituir com segurança, deixe o link sem resolução e investigue primeiro o software proprietário. O keg permanece como uma instalação separada de seus links no prefixo, portanto, uma fórmula instalada pode continuar disponível para diagnóstico mesmo que o processo de vinculação não esteja completo.