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?
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.
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.
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.
O MacPorts é realmente estável, em 8 anos eu nunca tive um problema com ele, e todo o meu ecossistema Unix se baseia nele.
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.
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.
Rubists gostam de reescrever tudo em Ruby, porque a única coisa que eles estão à vontade é o próprio Ruby.
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:
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.
{{{À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).
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!
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, costumavasudo 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 homebrewserá possível obter coisas sem a senha.
Respostas:
MacPorts é o caminho a percorrer.
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.
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.
O MacPorts é realmente estável, em 8 anos eu nunca tive um problema com ele, e todo o meu ecossistema Unix se baseia nele.
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.
Grupos de suporte MacPorts.
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.
Rubists gostam de reescrever tudo em Ruby, porque a única coisa que eles estão à vontade é o próprio Ruby.
fonte
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.
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 :
Opcionalmente, você pode sobrescrever as versões de utilitários fornecidas pela macosx com homebrew.
fonte
/opt/local
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.
fonte
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!
fonte
/usr/local
sem exigir o sudo?/usr/local
para a Homebrew. A Apple partiu/usr/local
para "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/local
que não possam ser modificadas semsudo
. Eles não discutem isso no wiki./usr/local
sem permissões de root. As permissões padrão para/usr
uma 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)homebrew
pode instalar as coisas sem,sudo
porque, quando configurada, costumavasudo
tornar a permissão no diretório mais frouxa, para que ele pudesse fazer qualquer coisa dentro/usr/local
sem acionar a senha. Isso significa que a parte "instalar sem senha" está errada? Acho que não! Ainda é verdade quehomebrew
será possível obter coisas sem a senha.