MacPorts vs. Fink vs. Homebrew [duplicado]

39

Esta pergunta já tem uma resposta aqui:

Eu sempre usei o MacPorts para instalar e manter meus compiladores GCC e outros programas. Agora já ouvi falar de Fink e Homebrew. Parece que esses dois utilitários estão ganhando terreno na comunidade Mac, mas não entendo a diferença entre eles.

Qual é a principal diferença entre MacPorts, Fink e Homebrew? Existe alguma diferença em qualidade ou desempenho?


fonte
3
Há também Rudix .
lhf 21/09/12
4
Esta pergunta mais antiga atende às suas necessidades?
bmike

Respostas:

30

Fink tem sido em torno desde pelo menos 2001. Fink e MacPorts são gerenciadores de pacotes que querem ser "ortogonal" para o sistema, isto é, eles instalam sua própria versão python, perl, bibliotecas, compiladores, etc. nas próprias árvores (/ sw para / Opt / local para MacPorts). A razão para isso é que eles não têm controle sobre o que a Apple faz com seu software e, ocasionalmente, quebrava as coisas quando a Apple atualizava suas próprias coisas.

Pelo que entendi, o Homebrew quer ser mais "integrado" ao sistema, usa as bibliotecas que a Apple fornece e instala seu material em /usr/local/binoutras pastas padrão. Acho que isso significa que a escolha do software é mais limitada com o Homebrew. Não consigo imaginar que alguém possa instalar o KDE com ele, mas ainda não tentei.

Um ponto para o Fink vs. MacPorts: alguns anos atrás, o projeto Fink fornecia pacotes binários; ou seja, você pode baixar e instalar os pacotes sem compilá-los. Seu gerenciador de pacotes ainda possui essa capacidade, mas não há binários disponíveis por um longo tempo. Não sei se isso mudou enquanto isso.

Resumindo: sem o material binário, o Fink e o MacPorts são muito parecidos. Eles devem ter mais pacotes disponíveis que o Homebrew, enquanto o Homebrew deve ocupar menos espaço em disco pelos motivos mencionados acima. Em relação à qualidade: nunca instalei o Homebrew e, entre o Fink e o MacPorts, geralmente prefiro aquele que não estou usando no momento.

Portanto, se você estiver satisfeito com o MacPorts, continue com ele.

PS: O motivo pelo qual nunca experimentei o Homebrew é o uso de alguns pacotes pré-compilados. Eles geralmente também se instalam em / usr / local / bin e similares, o que apenas exige problemas.

Percival Ulysses
fonte
Eu pensei que você deveria estar errado sobre o KDE, mas com certeza é verdade. Ele já tinha pacotes para ele, mas aparentemente há algo na maneira como o KDE é construído que é incompatível com a hierarquia do Homebrew. Espero que isso seja corrigido algum dia.
echristopherson
11
@echristopherson Então o KDE já teve uma vez? Uma surpresa para mim Mas o KDE parece ser bastante frágil, uma vez eu o instalei com o Fink e, na próxima atualização, toda a instalação ficou confusa; então você esperaria que seja ainda mais frágil com o Homebrew. Mas se eles acertarem algum dia, retiro tudo o que disse.
Percival Ulysses
4
A instalação do Homebrew em / usr / local é a mesma razão pela qual eu também não o uso. Seguindo a filosofia tradicional do unix, somente eu devo colocar coisas em / usr / local. Um gerenciador de pacotes deve gerenciar outro prefixo.
Jason
Pessoalmente, eu uso o MacPorts, mas a última vez que verifiquei (há algum tempo) o Fink tinha uma coleção muito maior de pacotes disponíveis.
HairOfTheDog 12/10/12
11
@ Jason Isso também é válido para uma máquina de usuário único? Acabei de instalar o Homebrew e espero não me arrepender. No entanto, não estou muito claro como a apple lida com root e usuários com privilégios de administrador. Eu sou o único usuário no meu sistema.
haziz
8

Eu diria que as principais diferenças são:
providência, resultado e o método de distribuição.

Os detalhes mais importantes serão para você verificar se o sistema escolhido contém pacotes para o software que você deseja. As contagens de pacotes são aproximadamente: 19k Macports, 22k Fink, 3k Homebrew, 10k pkgsrc.

  • O Macports , antigo Darwin ports, parece um sistema de portas no estilo BSD, como o pkgsrc, que obtém o código-fonte, corrige-o, constrói-o e instala-o. Se for muito parecido com o pkgsrc, ele fará isso usando scripts de shell. Ele costumava confiar nas ferramentas fornecidas pelo Xcode, mas isso começou a causar problemas, e agora também pode ser iniciado o gcc. Além disso, existem alguns pacotes binários por aí, mas você pode não encontrar a versão mais recente do seu sistema todas as vezes. Ele veio de Darwin, o BSD de código aberto da Apple, baseado no kernel do OS X, que interrompeu a distribuição. Ele instala pacotes nos /opt/localquais provavelmente não serão afetados por outros pacotes do instalador ou atualizações do sistema.
  • O Fink , re: finches, sendo o assunto do estudo de Charles Darwin, é um sistema de pacotes baseado no Debian Package Manager, o que significa que ele apresenta o uso dpkge apt-geto principal benefício é que você pode encontrar com segurança pacotes binários .. supondo que você tenha um pacote upstream repositório que contém binários para sua versão atual do sistema operacional. Ele também saiu da base de usuários de Darwin, mas provavelmente é mais popular entre os que vieram do Debian Linux [para mac, ou PPC] procurando um suporte de hardware um pouco mais estável ... enquanto durou. Ele instala pacotes /swpor motivos de não sobrescrever ou sobrescrever o que outros instaladores podem instalar. Também algo sobre os caminhos de pesquisa do compilador e o padrão PATHque /usr/local/binjá contém .
  • Homebrew é um tipo de sistema de portas em conceito, mas escrito em ruby. Ele não vem de um mundo independente do sistema operacional e foi projetado para usuários do Mac OS X (os outros são amplamente utilizados e testados pelo mesmo). A partir de meados de 2014, ele tenta criar basicamente todos os pacotes (eles os chamam de fórmula), embora alguns estejam disponíveis em formato binário chamados de garrafas, e você pode criar um repositório de garrafas para compartilhar em seu grupo social, se você preferir - padronizar as cadeias de ferramentas de você e de seu amigo (idem para outros sistemas). No lado positivo, ele cria usando tantas bibliotecas quanto você provavelmente já possui da Apple. Eu acho que você não precisa do Xcode para que ele funcione na maioria dos casos, mas ele "o suporta e recomenda". Você pode instalar cada item em seu próprio prefixo,/usr/localEu acho que foi iniciado e é mais recente que os outros. Pessoalmente, descobri que usei mais este porque raramente preciso de pacotes interdependentes e não sei ao certo o quão bem o mac homebrew o suporta. O Homebrew visa forçá-lo a usar gerenciadores de pacotes mais apropriados para softwares originários de um gerenciador fortemente acoplado, como cpan, gemas e similares.
  • O pkgsrc estaria disponível para o Mac OS X, possui pacotes binários e vem do NetBSD, que o mantém e, por sua vez, o baseia no sistema de portas do FreeBSD. O NetBSD estava tão focado na portabilidade entre arquiteturas que provavelmente era o melhor sistema de portas candidatas a começar a suportar outras plataformas também. É semelhante na minha descrição ao Macport, mas não o usei (exceto no NetBSD), e acho que ele se instala, /mas cria e mantém os pacotes /pkg. Provavelmente existem muitos pacotes (como 12k) e cerca de 20% podem não ser compilados ou a versão mais recente da fonte pode não ser corrigida com o último patch mantido. É por isso que os pacotes binários são a minha preferência com esses tipos de sistemas.

Também usei o perlbrew, que é um tipo de homebrew perl, aplicativos criados em perl e algumas dependências. É principalmente uma boa maneira de manter várias versões do perl e nega convenientemente a necessidade de outros sistemas de pacotes mais gerais (para sua finalidade). Mas é claro que também tem cpan e cpanminus .

Você pode encontrar gerenciadores semelhantes para o seu próprio mini-ambiente (como vundle for vim ou gem para ruby, npm para node.js, pypm ou pip para python, o built-in do gogo install ... etc?)

dlamblin
fonte
As contagens de pacotes são enganadores porque Homebrew intencionalmente não inclui certas classes de pacotes - veja mais em apple.stackexchange.com/questions/32724/...
Dan Dascalescu
5

Fink e MacPorts são concorrentes diretos na instalação de um sistema ortogonal. Fink perdeu terreno considerável para o MacPorts há vários anos. Não sei ao certo por que agora, mas o MacPorts lidou com quase tudo melhor.

Temos menos motivos para uma instalação ortogonal, agora que o Mac OS X cresceu com menos calças malucas. O Brew foi criado para integrar-se melhor ao Mac OS X, tornando-o mais leve e menos ortogonal, e também porque o Rubyist reescreveu tudo.

Na prática, o MacPorts é um pouco mais complicado, mas o MacPorts quase sempre funciona, enquanto o Brew é mais simples, mas com maior probabilidade de se deparar com uma parede de tijolos.

Faça a si mesmo esta pergunta:

  • Você usa muitas ferramentas do ecossistema Linux?
  • Você precisa de várias versões?
  • Você experimenta muito novas ferramentas?
  • Você usa ferramentas / bibliotecas de matemática / ciências ou outras ferramentas incomuns?

Qualquer resposta afirmativa sugere que você escolha MacPorts. O Brew é menos sobrecarregado se você instalar relativamente poucos pacotes comuns, mas o Brew não lidará com complexidades também. Brew polui o /usr/localque você pode querer para instalações manuais também. Na verdade, existem argumentos mais detalhados para o MacPorts, mas novamente eles provavelmente não se aplicam se você respondeu que não.

Por outro lado, se você respondeu sim, mas sua máquina principal executa Linux, e seu Mac é apenas um brinquedo executando um software Linux mínimo, na verdade você pode fazer melhor com o Brew.

Jeff Burdges
fonte
2

Mas como uma observação lateral, nada relacionado ao Apple OS X se instalaria em / usr / local / bin. Eles usam / usr / lib, / usr / bin nos bastidores e os frameworks são empacotados em / Library / Frameworks, enquanto as coisas que você instala por meio do Unix ./configure, make, make install usam / usr / local / bin etc , e utilitários como MacPorts usarão / opt / e possivelmente empacotarão estruturas em seu ~ / Library / Frameworks /.

Minha recomendação é ficar com o MacPorts se é isso que você está acostumado. Basicamente, a principal diferença é que o MacPorts usa um sistema que se assemelha à verdadeira implementação da árvore de portas Unix / BSD com portas do FreeBSD, enquanto o Fink usa aplicativos portados dos arquivos Linux Debian e usa o mesmo sistema gerenciador de pacotes que o Linux Debian.

Chris
fonte