Deixe-me responder que, da perspectiva MacPorts, eu venho, como esses problemas de ferramentas de gerenciamento de software coexistentes não são desconhecidos lá. Mais importante, simplesmente não há como remover /usr/local
dos caminhos de pesquisa padrão do compilador. Isso pode levar a problemas com algumas compilações, especialmente durante uma compilação +universal
de arquitetura múltipla.
No início do projeto, há muitos anos, o MacPorts mudou para /opt/local
para evitar problemas com outro software. O isolamento total de /usr/local
parece não ser possível apenas pelos sinalizadores de configuração do compilador. Infelizmente, os desenvolvedores do Homebrew deliberadamente ignoraram isso e escolheram / usr / local como padrão. Embora pareça uma boa ideia, como já estaria listado no PATH, na configuração padrão /usr/local/bin
ocorre somente após /usr/bin
, tornando impossível sobrescrever qualquer ferramenta de linha de comando. Portanto, não há vantagem em usar /usr/local
.
A melhor solução é instalar o Homebrew em qualquer outro caminho (por exemplo /opt/homebrew
) ou renomear / usr / local temporariamente antes de construir e renomeá-lo depois:
sudo mv /usr/local /usr/local.off
... # do your compilation work
sudo mv /usr/local.off /usr/local
Como uma observação para o futuro, enquanto o MacPorts em sua versão atual já está usando uma sandbox para todas as compilações, há melhorias nessa área para a versão 2.3.0 ou posterior. O novo modo de rastreio atualmente em desenvolvimento permitiria limitar todo o acesso a arquivos aos arquivos necessários apenas para a tarefa de construção específica, ocultando locais como /usr/local
e /sw
completamente do processo de construção. No entanto, isso não ajudará em outras ferramentas, a menos que elas também adotem esse recurso.