Como os principais gerenciadores de pacotes diferem?

4

Parece que os principais gerenciadores de pacotes são (em nenhuma ordem particular) apt, yum e pacman. Mas quando se trata disso, qual é a diferença? Meu entendimento é que você pode usar qualquer um deles em qualquer distribuição, embora cada distribuição pareça favorecer um sobre o outro.

Então, minhas perguntas são: Quais são as principais diferenças entre os principais gerenciadores de pacotes? Por que devo considerar um sobre o outro?

    
por Thomas Owens 21.08.2010 / 02:22

3 respostas

2

bem, é basicamente sobre o tipo de pacotes com os quais eles lidam (apt-deb; yum-rpm; pacman-tar.gz) onde esses sistemas de empacotamento são um pouco diferentes ... então há a questão de quão bem eles lidam com dependências (muito importantes) ... e claro - as opções que eles fornecem e como eles podem apresentar os dados sobre pacotes sendo instalados ... Eu diria que estas seriam algumas das principais diferenças ...

    
por 21.08.2010 / 09:23
1

Os gerenciadores de pacotes que você cita são realmente apenas uma escolha de front-ends para um sistema de empacotamento subjacente. Por exemplo, o yum é um front end para o RPM, e outros existem (smart, zypper, apt4rpm e assim por diante). Da mesma forma, o sistema baseado em DPKG médio possui dois ou três gerenciadores de pacotes por padrão (Synaptic, Aptitude, apt-get, dselect e assim por diante). Eu não sei o suficiente sobre o Pacman para comentar lá.

O front-end não é realmente tão interessante - há um grau de resolução de dependências que ele precisa lidar, mas a parte realmente "difícil" do gerenciamento de pacotes vem do formato de pacote subjacente.

Mais uma vez, não posso comentar Pacman, mas entre RPM e DPKG, é RPM que tem um trabalho mais difícil - você pode definir relacionamentos extremamente complexos em seu pacote RPM, que o resolvedor precisa de alguma forma manipular, e um único deslizamento -up em suas definições de pacote pode causar miséria na linha. O DPKG é um formato muito mais simples no que diz respeito a informações de dependência, já que você só pode definir duas coisas - nomes de pacotes e versões - enquanto que com o RPM você pode fazer coisas complicadas como símbolos versionados em dependências e assim por diante.

Então, para responder à sua pergunta, a escolha entre os gerentes em um único formato é apenas gosto pessoal (eu uso principalmente o aptitude). A escolha entre os formatos é um dos controles mais refinados que você deseja (e, ironicamente, quanta complexidade você quer que o controle introduza em sua embalagem).

    
por 22.08.2010 / 12:36
1

Os gerentes de pacotes podem ser divididos em duas categorias principais:

  1. 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).

  2. 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.)

    
por 25.11.2014 / 11:34

Tags