É seguro instalar o Homebrew e o Macports na mesma máquina?

68

Eu tenho o MacPorts instalado no meu iMac com um bom número de portas instaladas.

Estou interessado em experimentar o Homebrew, já que ouvi muitas coisas boas sobre ele, e porque notei que ele contém versões mais atualizadas de várias das ferramentas que uso.

Mas os dois podem coexistir na mesma máquina ou eu preciso desinstalar o MacPorts inteiramente primeiro?

Além disso, se os dois puderem serem instalados ao mesmo tempo, eles serão completamente independentes um do outro? Uma das características do Homebrew é que não é reinstalar novas versões de coisas que já estão incluídas no sistema (por exemplo, python). Isso também se estende a ele não instalando versões de coisas que já são mantidas pelo MacPorts?

O que acontece se depois eu desinstalar o MacPorts?

    
por Rich 27.08.2010 / 13:24

6 respostas

22

Eles não vão coexistir bem juntos. O Apple gcc procura em / usr / local algumas coisas. Isso significa que uma compilação macports poderia encontrar algo que o portador não esperava. Veja listas de email e bugs macports para exemplos de coisas encontradas em / usr / local.

    
por 27.08.2010 / 13:45
17

Eu dei outra resposta em uma pergunta semelhante:

Homebrew will cause problems when building software from source if it is installed in /usr/local. This is the default, which is a bad choice as this path is in the default search path of compilers and other tools. Therefore builds from other packaging software might pick up the wrong dependency, using Homebrew's version instead of their own.

Years ago, in the very beginning of the project, even MacPorts was using /usr/local. But it turned out not to cooperate with other tools as is documented in their FAQ. Unfortunately Homebrew developers didn't want to hear about prior experiences and ignored such facts...

In general, it is usually better to stick to one tool only to avoid all problems. MacPorts is doing their best to patch out any harcoded paths, e.g. to /sw which is used by Fink. So usually it will work, but having anything installed in /usr/local will definitely cause problems for it.

[…]

    
por 12.09.2010 / 21:04
8

Eu costumava pensar que as preocupações sobre o que as ferramentas de construção do Gnu farão com /usr/local estavam paranóicas. As ferramentas de construção esperam que existam muitas coisas lá: nos bons e velhos tempos antes dos gerenciadores de pacotes (eu brinco), compilamos o que quer que seja para /usr/local . Mas, embora o Autoconf geralmente resolva problemas, a grande complexidade de muitos projetos de código aberto causa problemas, e esses problemas podem ser difíceis de serem recuperados quando se entra em dificuldades.

Mas o risco de problemas com o Autoconf encontrar algo que não deveria estar sob /usr/local precisa ser balanceado sobre o incômodo de manutenção tendo duas, três ou quatro diferentes cópias diferentes de Perl, Tcl e Ruby, cada uma com cobertura diferente de suas diferentes bibliotecas de pacotes. Desagradável.

Desde que minha experiência com MacPorts e Fink tem sido tipicamente exasperação causada exatamente por isso, e em algum momento mudando para a maneira antiga de /usr/local , fiquei satisfeito em ver que a Homebrew não mexeu com isso. . Eu tentei configurar o MacPorts para instalar em /usr/local , mas o MacPorts faz de tudo para tornar isso difícil. Eu entendo que a motivação é tornar a vida mais fácil para eles mesmos ao lidar com gritos de ajuda em sua lista de e-mails e rastreador de bugs: esteja ciente de que, embora devamos respeitar o esforço dos empacotadores voluntários e tratar seu tempo como precioso, a conveniência de depuração não é o único tipo de simplicidade que afeta você, como usuário.

O Homebrew, pelo menos a esse respeito, faz as coisas como costumavam ser feitas, e o MacPorts tenta não interferir. Se você está disposto a documentar quais pacotes você precisa com o Homebrew, e limpe / usr / local clean e reinstale em caso de dificuldades, então você pode sempre voltar no caso de as coisas darem errado. E uma vez que você perceba que os problemas em / usr / local geralmente não correm o risco de danos permanentes em suas máquinas, você pode se sentir mais livre para correr riscos.

Vou apenas notar o quão pior a embalagem está no OSX do que no FreeBSD: a Apple não parece se importar com a usabilidade de seu subsistema BSD, porque esse é um problema que poderia ajudar.

    
por 26.11.2010 / 13:43
5

De acordo com as Perguntas frequentes sobre MacPorts :

Note that starting with 2.3.0, MacPorts can automatically hide /usr/local (and all other files a port does not depend on) from ports' build systems. This feature is called trace mode and is activated by providing the -t flag to port, e.g.

sudo port -t install <portname>

Isso é relevante porque, de acordo com a página de instalação do Homebrew:

One of the reasons Homebrew just works relative to the competition is because we recommend installing to /usr/local. Pick another prefix at your peril!

Portanto, e com pouca experiência pessoal, eu teorizo que usar sempre o sinalizador -t para as instalações do MacPort deve evitar que a maioria dos problemas de ter MacPorts e Homebrew coexistam no mesmo sistema. Para resolver sua última pergunta: não vejo nenhum motivo para desinstalar o MacPorts causaria problemas.

    
por 23.10.2014 / 22:00
4

Ao instalar o homebrew em um computador em que venho usando portas há anos, eis o que posso ler:

Warning: You have MacPorts or Fink installed:
  /opt/local/bin/port

This can cause trouble. You don't have to uninstall them, but you may want to
temporarily move them out of the way, e.g.

  sudo mv /opt/local ~/macports

Cuidado!

    
por 18.03.2013 / 16:07
1

A solução sudo port -t ... do webappzero deve ajudar. Para ser honesto, eu corro com o Fink, MacPorts e Homebrew de uma só vez, com deferência ao MacPorts (por enquanto), e usando apenas os outros dois para instalar coisas que não posso obter do MacPorts. Eu tive poucas dificuldades dessa forma, mesmo antes de aprender o truque port -t . Se você está tentando usar vários gerenciadores de pacotes para manter ambientes complexos de desenvolvimento e servidor, provavelmente estará em um mundo de desconforto pelo menos. Escolha um, e evite os outros, mas para algo que você precisa desesperadamente deles, e coloque o principal mais cedo no caminho.

Se o que estou ouvindo é verdade sobre a Apple proibir que as coisas sejam instaladas em / usr / other do que a própria Apple (ou talvez eles já estejam fazendo isso em El Crapitan, o que eu estou evitando "up" até que mais problemas com ele sejam resolvidos), eu suponho que isso mitigará o problema depois que o Homebrew usar como padrão outra coisa - se concordarmos com a abordagem pesada da Apple ou não.

No final, eu gosto da idéia de confinar as próprias portas da Apple em sua própria árvore, eu só queria que não fosse / usr /. Eu preferia que eles usassem / System / bin /, etc., etc., para isolar suas próprias coisas, para que eu pudesse contorná-la com software atualizado mantido pela comunidade com mais facilidade.

    
por 06.12.2015 / 07:41