Pourquoi n'y a-t-il pas de gestionnaire de packages vraiment unifié pour Linux?


31

Pourquoi est - il pas un gestionnaire de paquets unifié qui agit comme une interface entre l'utilisateur final et le gestionnaire de paquets à faible niveau sous - jacent ( apt, yast, pacman, etc.)?

Est-ce difficile à faire et donc pas pratique, ou y a-t-il un véritable obstacle qui le rend impossible à faire?


14
Je suppose que nous aurons une théorie de champ unifiée bien avant d'avoir un gestionnaire de paquets unifié ...


2
Pour la même raison exacte, nous ne voulons pas d'une seule distribution - j'aime la façon dont ma distribution le fait. Si vous ne le faites pas, vous êtes libre d'en utiliser un autre ou d'écrire le vôtre. Avant de le savoir, vous avez autant de gestionnaires de packages que de programmeurs.
new123456

2
ne voulez-vous pas dire les gestionnaires de paquets de bas niveau rpm, dep, source? Ceux que vous avez énumérés sont eux-mêmes des interfaces.
frogstarr78

Réponses:


35

Tout d'abord, il y en a. Le problème n'est pas qu'il n'y a pas de gestionnaire de paquets unifié, le problème est qu'il y en a dix - sérieusement.

Allons prendre mon préféré: poldek. Il s'agit d'une interface utilisateur pour la gestion des packages qui peut s'exécuter sur plusieurs distributions différentes et gérer les packages rpmou deb. Poldek ne fait pas ce que fait rpm (il laisse cela à rpm) et envoie simplement les bonnes commandes sans que l'utilisateur n'ait à comprendre tout ce gâchis.

Mais les problèmes ne s'arrêtent pas là. Tout le monde a une idée différente de ce à quoi doit ressembler un frontal utilisateur, comment il devrait fonctionner et quelles options il devrait exposer. Donc, d'autres personnes ont écrit la leur. En fait, de nombreux gestionnaires frontaux de packages que les gens utilisent dans les distributions courantes sont capables de gérer plus d'un backend.

En fin de compte, cependant, le problème (ou l'avantage) réside dans le fait que les gens aiment que les choses fonctionnent exactement comme elles le souhaitent, et non d'une certaine façon qui essaie de satisfaire tout le monde mais échoue à vraiment rendre quelqu'un heureux. C'est la raison pour laquelle nous avons énormément de distributions de gazillions en premier lieu. C'est la raison pour laquelle nous avons tant d'environnements de bureau et de gestionnaires de fenêtres différents (et le fait qu'il s'agit en fait de différents types de choses).

Il y a encore des propositions exceptionnelles pour écrire des packages universels ou avoir un gestionnaire qui les comprend tous ou avoir une API pour les convertir l'un en l'autre ... mais au final Unix est le meilleur lorsqu'il est utilisé selon sa philosophie ... chaque outil fait une chose et le fait bien .

Chaque fois que vous avez un outil qui essaie de faire plus d'une chose, il finit par ne pas être aussi bon pour l'une d'entre elles. Par exemple, poldekça craint de gérer les dépendances du paquet deb.


1
À peu près ce que j'allais dire. Et franchement, tant que les choses interagissent décemment sous le capot (par exemple, en adhérant aux normes LSB), je ne vois pas vraiment le problème.
Shadur

10
++ pour "UNIX est meilleur quand ... chaque outil fait une chose et le fait bien". Parfois, je pense que trop d'outils sont loin de ce chemin ...
ktf

Mettre un lien vers poldek.pld-linux.org --- pourrait être utile pour enquêter sur quelque chose qui avait une dernière mise à jour en 2005.
sorin

10

En bref: parce que chaque distribution utilise une approche différente de la gestion des packages. Ils ne sont tout simplement pas compatibles. La stratégie de gestion qui fonctionne le mieux pour Ubuntu n'aura que peu de sens sur Arch, etc. Un gestionnaire de packages "universel" (indépendant de la distribution) ne serait qu'une couche supplémentaire d'interface utilisateur, qui ne fonctionnerait jamais aussi bien que le gestionnaire spécifique de chaque distribution.

Donc, en utilisant vos propres mots, c'est difficile à faire et donc pas pratique - aussi parce que presque personne n'en bénéficierait.


Les solutions de gestion des packages sont portables sur d'autres systèmes. ive vu portage sur debian. Cependant, le nom du jeu est de trouver quelque chose qui fonctionne pour l'utilisateur, par exemple. il n'est pas très logique de faire de portage la valeur par défaut sur ubuntu. Nous semblons nous débrouiller assez bien jusqu'à présent de toute façon.
Silverfire

8

Raisons historiques, principalement. Plusieurs systèmes de gestion de paquets ont été mis en place à la même époque - en particulier .rpm et .deb. Chacun a ses adhérents et chacun est assez bon pour qu'aucun gestionnaire de paquets unique n'ait un avantage convaincant. Les distributeurs ne verront certainement pas l'intérêt d'une refonte complète de leur système pour implémenter un gestionnaire de packages différent.

Cela nécessiterait également que chaque paquet du système (10 000 dans le cas de Debian) soit reconstruit. Cela nécessiterait également la mise en place d'un système de migration fluide afin que les utilisateurs du système puissent passer de l'ancien au nouveau gestionnaire de packages. L'effort de migration serait incroyablement important et exponentiellement plus important pour tester la migration, vous obtiendriez donc certainement de nombreuses ruptures. Cela générerait de nombreux parieurs furieux.

Chaque distribution conserve son propre ensemble de dépendances en fonction de ce qui a été créé pour cette version. Un référentiel de packages universel sera trop difficile à coordonner entre les distributions car des conflits de dépendance sont presque certains de se produire. Par conséquent, l'avantage réel d'un système de gestion unifiée des packages (packages universels) sera de toute façon impossible à réaliser dans la pratique.

Enfin, qui peut choisir le gestionnaire de paquets standard universel? La bande dessinée XKCD référencée dans les commentaires sur l'OP résume le mode de défaillance habituel dans ce type d'exercice. La normalisation de ce genre de chose serait très politique et entraînerait probablement quelque chose d'inutilisable, ou si profondément défectueux qu'elle engendrerait une nouvelle série d'écriture manuscrite sur les normes - si les parties pouvaient parvenir à un accord.

Donc, fondamentalement, cela se résume à: trop politique, trop dur, trop risqué et aucun avantage à réaliser en le faisant.


8

Ce que vous avez décrit,

qui agit comme une interface entre l'utilisateur final et le gestionnaire de packages bas de gamme sous-jacent

sonne un peu comme PackageKit pour moi, c'est-à- dire

PackageKit est un système conçu pour faciliter l'installation et la mise à jour de logiciels sur votre ordinateur. L'objectif principal de la conception est d'unifier tous les outils graphiques logiciels utilisés dans différentes distributions et d'utiliser certaines des dernières technologies comme PolicyKit pour rendre le processus moins efficace.

Modifier: Voir ici pour une liste des backends pris en charge. Edit2: Suppression de la remarque inutile.


6

Tout d'abord, comprenez que «Linux» n'est pas un système d'exploitation. C'est un noyau. Un gestionnaire de packages est un concept au niveau du système d'exploitation, et non au niveau du noyau. Par conséquent, demander un gestionnaire de paquets unifié pour Linux n'est pas vraiment sensé.

Cependant, si vous demandez pourquoi les différents systèmes d'exploitation qui utilisent le noyau Linux n'ont pas de gestionnaires de paquets compatibles, vous pouvez aussi bien vous demander pourquoi Windows et Mac n'ont pas de gestionnaires de paquets compatibles. Ou deux autres systèmes d'exploitation.

Différents systèmes d'exploitation répondent aux besoins des différents utilisateurs, et le gestionnaire de packages en fait partie. Pourquoi toutes les distributions Linux n'ont-elles pas le même gestionnaire de fenêtres? Ou venez-vous avec le même logiciel préinstallé?

Réponse: Différents traits pour différentes personnes.


1
+1 pour '"Linux" n'est pas un système d'exploitation'
Silverfire
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.