Qual é a diferença / uso de homebrew, macports ou outras ferramentas de instalação de pacotes? [fechadas]


238

Acabei de mudar para um Mac a partir do Ubuntu. Fiquei decepcionado que o mac não tem o conveniente sudo apt-getno Ubuntu. Ouvi dizer que devo usar o homebrew, mas não sei exatamente o que o homebrew ou o macports faz?



8
Alguns anos atrás, a porta da frente do homebrew tinha uma afirmação que dizia algo como "o homebrew é melhor porque está escrito em Ruby". Não tenho nada contra Ruby, lembre-se de você. Eu gosto de oop e rubi é uma ótima linguagem oop. O que eu tenho um problema é com qualquer desenvolvedor de software que pense que um idioma é melhor que todos os outros. Por esse motivo, não tenho interesse em cervejas caseiras. Além disso, o macports vem funcionando bem para mim há muitos anos.
— Mike Makuch

Respostas:


145

MacPorts é o caminho a percorrer.

  1. Como @ user475443 apontou, o MacPorts possui muitos outros pacotes. Com a fermentação, você ficará preso em breve porque a fórmula necessária não existe.

  2. MacPorts é um aplicativo nativo: C + TCL. Você não precisa de Ruby. Para instalar o Ruby no Mac OS X, você pode precisar do MacPorts, então vá com o MacPorts e ficará feliz.

  3. O MacPorts é realmente estável, em 8 anos eu nunca tive um problema com ele, e todo o meu ecossistema Unix se baseia nele.

  4. Se você é desenvolvedor de PHP, pode instalar a última versão do Apache (Mac OS X usa 2.2), PHP e todas as extensões necessárias, e depois atualizar tudo com um único comando. Esqueça de fazer o mesmo com o Homebrew.

  5. Grupos de suporte MacPorts.

    foo@macpro:~/ port select --summary
    
    Name        Selected      Options
    ====        ========      =======
    db          none          db46 none
    gcc         none          gcc42 llvm-gcc42 mp-gcc48 none
    llvm        none          mp-llvm-3.3 none
    mysql       mysql56       mysql56 none
    php         php55         php55 php56 none
    postgresql  postgresql94  postgresql93 postgresql94 none
    python      none          python24 python25-apple python26-apple python27 python27-apple none
    

    Se você possui o PHP55 e o PHP56 instalados (com muitas extensões diferentes), é possível alternar entre eles com apenas um comando. Todas as extensões relativas fazem parte do grupo e serão ativadas dentro do grupo escolhido: php55 ou php56. Não tenho certeza se o Homebrew possui esse recurso.

  6. Rubists gostam de reescrever tudo em Ruby, porque a única coisa que eles estão à vontade é o próprio Ruby.


26
Rubists gostam de reescrever - hehe, dê uma olhada no pessoal do NodeJS implementando protocolos binários para MySQL em JS! :)
— kolypto

37
Você não precisa do MacPorts para instalar o Ruby - o Ruby está incluído no OS X e o brew usa o sistema Ruby.
— Michael Ekstrand

5
@ Michael Ekstrand OS X não inclui a última versão do Ruby.
— noun

89
Não é possível votar isso. É muito sarcástico, e o sismo prejudica as informações.
— OldPeculier

34
Voto a favor para combater as votações omitidas "anti-snarky". Qualquer informação recebida de um ser humano sempre terá um viés natural ("snarkiness" neste caso). Aprecio a perspectiva deste usuário, talvez especificamente porque a resposta não parece uma entrada da Wikipedia.
— rinogo 23/03

109

Homebrew e macports resolvem o mesmo problema - que é a instalação de bibliotecas e utilitários comuns que não são fornecidos com o osx.

Normalmente, são bibliotecas relacionadas ao desenvolvimento e o uso mais comum dessas ferramentas é para desenvolvedores que trabalham no osx.

Ambos precisam das ferramentas de linha de comando xcode instaladas (que você pode baixar separadamente em https://developer.apple.com/ ) e, para alguns pacotes específicos, você precisará de todo o IDE xcode instalado.

O xcode pode ser instalado a partir da Mac App Store, é um download gratuito, mas demora um pouco desde que custa cerca de 5 GB (se bem me lembro).

macports é uma versão osx do utilitário de portas do BSD (como o osx é derivado do BSD, essa era uma escolha natural). Para qualquer pessoa familiarizada com qualquer uma das distribuições BSD, os macports se sentirão em casa.

Uma grande diferença entre homebrew e macports; e a razão pela qual prefiro o homebrew é que ele não substituirá as coisas que devem ser instaladas "nativamente" no osx. Isso significa que, se houver um pacote nativo disponível, o homebrew o notificará em vez de substituí-lo e causar problemas mais adiante. Também instala bibliotecas no espaço do usuário (assim, você não precisa usar o "sudo" para instalar as coisas). Isso ajuda a se livrar das bibliotecas também, pois tudo está em um caminho acessível para você.

O homebrew também possui uma comunidade de usuários mais ativa e seus pacotes (chamados de fórmulas) são atualizados com bastante frequência.


O macports não substitui os pacotes OSX nativos - ele fornece sua própria versão - Esse é o principal motivo pelo qual prefiro o macports ao home-brew, você precisa ter certeza do que está usando e a mudança da Apple em momentos diferentes das portas e é conhecida anos atrás de atualizações em alguns projetos

Você pode dar uma referência mostrando que os macports substituem pacotes nativos do OS X? Até onde eu sei, toda a instalação de macports acontece em /opt/local

Talvez eu deva esclarecer - não disse em parte alguma da minha resposta que o macports substitua os pacotes nativos do OSX. Ambos instalam itens separadamente.

O Homebrew avisa quando você deve instalar as coisas "nativamente" (usando o instalador preferido da biblioteca / ferramenta) para obter melhor compatibilidade. Foi isso que eu quis dizer. Ele também usará o número de bibliotecas locais disponíveis no OS X. No wiki :

Nós realmente não gostamos de bobagens em Homebrew / homebrew

No entanto, gostamos de burros na torneira!

O material que acompanha o OS X ou é uma biblioteca fornecida pelo RubyGems, CPAN ou PyPi não deve ser enganado. Há boas razões para isto:

  • Bibliotecas duplicadas interrompem regularmente compilações
  • Erros sutis surgem com bibliotecas duplicadas e, em menor grau, ferramentas duplicadas
  • Queremos que você se esforce mais para fazer sua fórmula funcionar com o que o OS X vem com

Opcionalmente, você pode sobrescrever as versões de utilitários fornecidas pela macosx com homebrew.


78
O macports não substitui os pacotes OSX nativos - ele fornece sua própria versão - Esse é o principal rason. Prefiro o macports do que o home-brew. para ser ye3srs atrás de atualizações em alguns projetos
— mmmmmm

13
Você pode dar uma referência mostrando que os macports substituem pacotes nativos do OS X? Tanto quanto eu posso dizer, toda a instalação MacPorts acontece em/opt/local

27
Você implicou pelo menos fortemente que o MacPorts substitui os pacotes OS X nativos. Em vez de "esclarecer" enquanto ainda finge que não disse que escreveu o que escreveu, você provavelmente deve editar a frase em questão.
— Descontraído

13
Esta frase, "Uma grande diferença entre homebrew e macports; e a razão pela qual prefiro o homebrew é que ele não substituirá as coisas que devem ser instaladas" nativamente "no osx". deve ser alterado para "Uma grande diferença entre homebrew e macports; e a razão pela qual prefiro o homebrew é que o homebrew não instala automaticamente cópias paralelas de ferramentas e bibliotecas já fornecidas pela Apple".
— bgupta

7
O MacPorts não substitui os aplicativos nativos, ele "confina o software portado a uma" caixa de areia "privada que evita que ele se misture com o sistema operacional e o software fornecido pelo fornecedor para evitar que sejam corrompidos". - Guia MacPorts, Capítulo 1
— jla 12/01

23

Atualmente, o Macports possui muito mais pacotes (~ 18,6 K) do que as fórmulas Homebrew (~ 3,1K), devido à sua maturidade. Homebrew está lentamente alcançando embora.

Pacotes Macport tendem a ser mantidos por uma única pessoa.

Os Macports podem manter várias versões de pacotes e você pode habilitá-las ou desabilitá-las para testar as coisas. Às vezes, essa lista pode ser corrompida e você deve editá-la manualmente para colocar as coisas em ordem novamente, embora isso não seja muito difícil.

Os dois gerenciadores de pacotes solicitarão que sejam atualizados regularmente. Isso pode levar um tempo.

Nota: você pode ter os dois gerenciadores de pacotes no seu sistema! Não é um ou outro. Brew pode reclamar, mas Macports não.

Além disso, se você estiver lidando com pacotes python ou ruby, use um ambiente virtual sempre que possível.


1
{{{Às vezes, essa lista pode ser corrompida e você precisa editá-la manualmente para colocar as coisas em ordem novamente, embora isso não seja muito difícil. }}} Eu nunca vi isso acontecer, embora isso não signifique que não seja possível. Quais foram as circunstâncias? Você registrou um bug ( trac.macports.org )?
— LSpice

{{{Os dois gerenciadores de pacotes solicitarão que sejam atualizados regularmente. Isso pode levar um tempo. }}} Parece uma afirmação estranha. Em vários anos de uso, lembro-me de atualizar o MacPorts algumas vezes e a atualização é bastante rápida. Você quer dizer que as próprias portas precisam ser atualizadas com frequência? Bem, eles podem ser, mas isso é uma coisa boa, não uma desvantagem, eu acho! Além disso, provavelmente vale a pena notar que MacPorts não pedirá para fazer nada - isto é, não há incômodo; você tem que perguntar -lo sobre os pacotes de out-of-date.
— LSpice

18

Por padrão, o Homebrew instala pacotes no seu / usr / local. Os comandos do Macport exigem que o sudo seja instalado e atualizado (semelhante ao apt-get no Ubuntu).

Para mais detalhes:

Este site sugere o uso do Hombrew: http://deephill.com/macports-vs-homebrew/

considerando que este site lista as vantagens do uso de Macports: http://arstechnica.com/civis/viewtopic.php?f=19&t=1207907

Também mudei do Ubuntu recentemente e gosto de usar o homebrew (é simples e fácil de usar!), Mas se você se sentir ligado ao uso do sudo, o Macports pode ser o melhor caminho a seguir!


4
Você está dizendo que o homebrew instala coisas /usr/localsem exigir o sudo?

1
@NgocPham Você tem uma referência para isso?

16
@ Keith Esse site está incorreto. Ou, pelo menos, está deixando de fora uma premissa importante. Ele diz "A Apple deixou este diretório para nós. O que significa que não há diretório / usr / local por padrão; portanto, não há necessidade de se preocupar com a bagunça das ferramentas existentes". A Apple não partiu /usr/localpara a Homebrew. A Apple partiu /usr/localpara "executáveis, bibliotecas, etc., não incluídos no sistema operacional básico". Isso significa que é possível que as ferramentas instaladas antes do uso do Homebrew tenham sido criadas para /usr/localque não possam ser modificadas sem sudo. Eles não discutem isso no wiki.

2
@NgocPham Meu argumento é que não acredito que o Homebrew possa usar /usr/localsem permissões de root. As permissões padrão para /usruma nova instalação do OS X são o proprietário raiz, sem permissões de gravação para mais ninguém. Para criar /usr/local , o Homebrew precisaria de acesso root. (Não estou tentando defender qualquer coisa)

5
@Articuno Acho que peguei você agora. É apenas a instrução que homebrewpode instalar as coisas sem, sudoporque, quando configurada, costumava sudo tornar a permissão no diretório mais frouxa, para que ele pudesse fazer qualquer coisa dentro /usr/localsem acionar a senha. Isso significa que a parte "instalar sem senha" está errada? Acho que não! Ainda é verdade que homebrew será possível obter coisas sem a senha.
— Ngoc Pham
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.