Por que não há um gerente unificado pacote 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?
linux
package-management
vonPetrushev
fonte
fonte
Respostas:
Primeiro de tudo, existe. O problema não é que não haja um gerenciador de pacotes unificado, o problema é que existem dez deles - sério.
Vamos dar o meu favorito:
poldek
. É um front end do usuário para gerenciamento de pacotes que pode ser executado em várias distros diferentes e gerenciar umrpm
ou maisdeb
pacotes. O Poldek não faz o que o rpm faz (deixa isso para o rpm) e envia os comandos certos sem que o usuário precise descobrir toda essa bagunça.Mas os problemas não param por aí. Todo mundo tem uma idéia diferente de como deve ser o front end do usuário e como ele deve funcionar e quais opções ele deve expor. Então, outras pessoas escreveram as suas próprias. Atualmente, muitos dos gerentes de front-end de pacotes que as pessoas usam em distros 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 da maneira que desejam, não de uma forma meta que tente satisfazer a todos, apenas para deixar de realmente fazer alguém feliz. Esta é a razão pela qual temos dezenas de distros de gazilhões 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 diferentes tipos de coisas).
Ainda existem propostas pendentes sobre como 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 sua 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 lidar com dependências de pacotes deb.fonte
Em resumo: 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 da distribuição) seria apenas uma camada adicional da interface do usuário, que nunca funcionaria tão bem quanto o gerente específico de cada distribuição.
Portanto, 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.
fonte
Razões históricas, principalmente. Vários sistemas de gerenciamento de pacotes foram estabelecidos ao mesmo tempo - particularmente .rpm e .deb. Cada um tem seus adeptos e é bom o suficiente para que nenhum gerenciador de pacotes único tenha uma vantagem atraente. Os distribuidores certamente não perceberão o ponto em uma reconstrução inicial de seu sistema para implementar um gerenciador de pacotes diferente.
Isso também exigiria que cada pacote dentro do sistema (10.000 no caso do debian) fosse reconstruído. Também exigiria a implementação de um sistema de migração suave, para que os usuários do sistema pudessem passar do antigo para o novo gerenciador de pacotes. O esforço para migrar seria incomensuravelmente grande e exponencialmente maior para testar a migração, de modo que você certamente teria muitas quebras. Isso geraria muitos apostadores irados.
Cada distribuição mantém seu próprio conjunto de dependências com base no que foi criado para esse lançamento. Um repositório universal de pacotes será muito difícil de coordenar entre as distribuições, pois é quase certo que surgirão conflitos de dependência. Portanto, o benefício real de um sistema unificado de gerenciamento de pacotes (pacotes universais) será impossível de ser realizado na prática de qualquer maneira.
Por fim, quem escolhe o gerenciador de pacotes padrão universal? A história em quadrinhos do XKCD mencionada nos comentários sobre o OP resume o modo de falha usual nesse 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 gera mais uma rodada de discussões sobre padrões - se as partes puderem chegar a um acordo.
Então, basicamente, tudo se resume a: muito político, muito difícil, muito arriscado e nenhum benefício a ser alcançado ao fazê-lo.
fonte
O que você descreveu,
soa um pouco como PackageKit para mim, ou seja ,
Editar: veja aqui para obter uma lista de back-end suportados. Edit2: Removido comentário inútil.
fonte
Primeiro, entenda que "Linux" não é um sistema operacional. É um núcleo. Um gerenciador de pacotes é um conceito no nível do SO, não no nível do kernel. Portanto, solicitar um gerenciador de pacotes unificado para Linux não é realmente sensato.
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, também é possível perguntar por que Windows e Macs não têm gerenciadores de pacotes compatíveis. Ou quaisquer outros dois sistemas operacionais.
Diferentes sistemas operacionais atendem às necessidades de diferentes usuários, e o gerenciador de pacotes faz parte dele. Por que nem todas as distribuições Linux têm o mesmo gerenciador de janelas? Ou vem com o mesmo software pré-instalado?
Resposta: Traços diferentes para pessoas diferentes.
fonte