Por que não existe um gerenciador de pacotes verdadeiramente unificado para o Linux?

31

Por que não há um gerenciador de pacotes unificado que atua como uma interface entre o usuário final e o gerenciador de pacotes de baixo nível subjacente ( apt , yast , pacman , etc.)?

É difícil de fazer e, portanto, não é prático, ou existe um obstáculo genuíno que torna impossível fazer isso?

    
por vonPetrushev 31.10.2011 / 14:27

5 respostas

35

Primeiro de tudo, existe. O problema não é que não haja um gerenciador de pacotes unificado, o problema é que há dez deles - a sério.

Vamos pegar meu favorito: poldek . É um front-end de usuário para gerenciamento de pacotes que pode ser executado em várias distros diferentes e gerenciar rpm ou deb packages. O Poldek não faz o que o rpm faz (deixa isso para o rpm) e apenas envia os comandos certos sem que o usuário tenha que descobrir toda essa bagunça.

Mas os problemas não param por aí. Todo mundo tem uma ideia diferente de como um front end de usuário deve ser e como ele deve funcionar e quais opções ele deve expor. Então outras pessoas escreveram as suas. Na verdade, muitos dos gerentes frontais de pacotes que as pessoas usam nas distribuições comuns hoje são capazes de lidar com mais de um back-end.

No final, no entanto, o problema (ou vantagem) é que as pessoas gostam que as coisas funcionem exatamente do jeito que elas querem, não de alguma maneira que tente satisfazer a todos apenas para não deixar ninguém feliz. Esta é a razão pela qual temos muitas distrações de gazillion em primeiro lugar. É a razão pela qual temos tantos ambientes de desktop e gerenciadores de janelas diferentes (e o fato de que esses são realmente tipos diferentes de coisas).

Ainda há propostas excelentes para formas de escrever pacotes universais ou ter um gerente que os entenda todos ou ter uma API para converter um para o outro ... mas no final o Unix é melhor quando usado de acordo com o seu filosofia ... cada ferramenta faz uma coisa e faz bem .

Sempre que você tem uma ferramenta que tenta fazer mais de uma coisa, ela acaba não sendo tão boa em uma delas. Por exemplo, poldek é uma droga na manipulação das dependências do pacote deb.

    
por 31.10.2011 / 14:53
10

Resumindo: porque cada distribuição usa uma abordagem diferente para o gerenciamento de pacotes. Eles simplesmente não são compatíveis. A estratégia de gerenciamento que funciona melhor para o Ubuntu terá pouco sentido no Arch etc. Um gerenciador de pacotes "universal" (independente de distribuição) seria apenas uma camada adicional de interface de usuário, que nunca funcionaria tão bem quanto o gerente específico de cada distribuição. p>

Então, usando suas próprias palavras, é difícil de fazer e, portanto, não é prático - também porque dificilmente alguém se beneficiaria com isso.

    
por 31.10.2011 / 15:02
8

Razões históricas, principalmente. Vários sistemas de gerenciamento de pacotes foram estabelecidos na mesma época - particularmente .rpm e .deb. Cada um tem seus adeptos e cada um é bom o suficiente para que nenhum gerenciador de pacotes tenha uma vantagem convincente. Os distribuidores certamente não verão o ponto de uma reconstrução do sistema para implementar um gerenciador de pacotes diferente.

Isso também exigiria que cada pacote dentro do sistema (10.000 no caso do debian) seja reconstruído. Também exigiria que um sistema de migração suave fosse implementado para que os usuários do sistema pudessem ir do antigo para o novo gerenciador de pacotes. O esforço para migrar seria imensamente grande e exponencialmente maior para testar a migração, de modo que quase certamente haveria muitas quebras. Isso geraria muitos apostadores irados.

Cada distro mantém seu próprio conjunto de dependências com base no que foi criado para essa versão. Um repositório universal de pacotes será muito difícil de coordenar entre as distribuições, pois é quase certo que surjam conflitos de dependência. Portanto, o benefício real de um sistema unificado de gerenciamento de pacotes (pacotes universais) será impossível de realizar na prática de qualquer maneira.

Finalmente, quem escolhe o gerenciador de pacotes padrão universal? O quadrinho XKCD mencionado nos comentários sobre o OP resume o modo de falha usual neste tipo de exercício. Padronizar esse tipo de coisa seria muito político e provavelmente resultaria em algo que não é utilizável, ou tão profundamente defeituoso, que gerará mais uma rodada de manipulação de padrões - se as partes puderem chegar a um acordo.

Então, basicamente, isso se resume a: muito político, muito difícil, muito arriscado e nenhum benefício a ser alcançado ao fazê-lo.

    
por 31.10.2011 / 16:46
8

O que você descreveu,

that acts as an interface between the end-user and the underlying low-lever package manager

soa um pouco como o PackageKit para mim, que é ,

PackageKit is a system designed to make installing and updating software on your computer easier. The primary design goal is to unify all the software graphical tools used in different distributions, and use some of the latest technology like PolicyKit to make the process suck less.

Editar: Veja aqui uma lista de back-ends suportados. Edit2: comentário inútil removido.

    
por 31.10.2011 / 15:04
6

Primeiro, entenda que "Linux" não é um sistema operacional. É um kernel. Um gerenciador de pacotes é um conceito em nível de sistema operacional, não um em nível de kernel. Portanto, pedir por um gerenciador de pacotes unificado para o Linux não é realmente sensitivo.

No entanto, se você está perguntando por que os vários sistemas operacionais que usam o kernel Linux não têm gerenciadores de pacotes compatíveis, bem, você pode também perguntar por que o Windows e Macs não têm gerenciadores de pacotes compatíveis. Ou quaisquer outros dois sistemas operacionais.

Diferentes SOs atendem às necessidades de diferentes usuários, e o gerenciador de pacotes é parte dele. Por que nem todas as distribuições do Linux têm o mesmo gerenciador de janelas? Ou vem com o mesmo software pré-instalado?

Resposta: traços diferentes para pessoas diferentes.

    
por 31.10.2011 / 20:48