Os gerentes de pacotes podem ser divididos em duas categorias principais:
-
Gerentes de pacotes binários : o software é construído em alguma máquina remota e você só obtém o resultado da compilação. Os formatos mais populares (apenas?) Sendo deb (apt) e rpm (yum).
-
Gerentes de pacotes de origem : a origem do código de software é recuperada diretamente e a compilação é feita localmente. Alguns gerenciadores de pacotes fonte estão emerge, pacman, yaourt, slackpkg, pkgng de BSD, Mac Ports, Homebrew, pip (Python), gem (Ruby), etc.
A principal vantagem dos pacotes binários é que o tempo de instalação é bastante reduzido se a largura de banda da sua Internet for alta o suficiente. A reprodutibilidade também é melhor pois uma versão do pacote sempre corresponderá a um e apenas um binário.
As desvantagens são o tamanho do pacote (várias vezes maior que o código-fonte) e a rigidez do sistema : ao contrário do Windows, os binários no Linux incorporam caminhos codificados e binários re-localizáveis (binários que você pode mover) são difíceis de gerar. Ou seja gerenciamentos de pacotes binários normalmente só funcionam em / usr.
Para se ter uma idéia da diferença entre fontes e binários, o repositório Debian é atualmente um pouco mais de 1Tb mas apenas 72Gb para as fontes! Uma arquitetura, por exemplo, amd64, é cerca de 95 + 92 = 187Gb (2,5 maior (1)).
Outro problema com pacotes binários são os flags fixos de compilação : alguns recursos opcionais podem estar desabilitados no pacote do sistema, algumas extensões modernas da CPU também podem ser desabilitadas por razões de compatibilidade ...
Um ponto discutível é a tendência de os gerenciadores binários de pacotes fornecerem releases mais antigos . Na verdade, principalmente gerenciadores de pacotes de origem estão fornecendo a atualização mais recente para cada pacote logo após cada lançamento. No entanto, os pacotes binários tendem a ser extensivamente testados antes de chegar aos repositórios (afinal, eles têm para compilar com sucesso para todas as arquiteturas!).
Para ajudar você a escolher, um padrão comum é usar um gerenciador de pacotes binários para servidores e caixas para os quais não se deseja gastar muito tempo no processo de configuração. Para uma máquina de desenvolvimento usada por um "usuário avançado" e onde você precisará de bibliotecas de ponta, os gerenciadores de pacotes de origem tendem a ser usados com mais frequência.
(1) 95Gb + 92Gb é a soma dos pacotes amd64 e dos pacotes "all" que são os arquivos independentes de arquitetura (recursos multimídia, fontes, documentação, etc.)