Zunächst einmal gibt es. Das Problem ist nicht, dass es keinen einheitlichen Paketmanager gibt, das Problem ist, dass es zehn davon gibt – im Ernst.
Nehmen wir meinen Favoriten:poldek
. Es ist ein Benutzer-Frontend für die Paketverwaltung, das auf mehreren verschiedenen Distributionen ausgeführt werden kann und entweder rpm
verwaltet oder deb
Pakete. Poldek macht nicht das, was rpm tut (es überlässt das rpm) und sendet einfach die richtigen Befehle, ohne dass der Benutzer all dieses Durcheinander herausfinden muss.
Aber die Probleme hören hier nicht auf. Jeder hat eine andere Vorstellung davon, wie ein Benutzer-Frontend aussehen und funktionieren und welche Möglichkeiten es bieten soll. Also haben andere Leute ihre eigenen geschrieben. Tatsächlich sind viele der Paket-Frontend-Manager, die heute in gängigen Distributionen verwendet werden, in der Lage, mehr als ein Backend zu verwalten.
Letztendlich ist das Problem (oder der Vorteil) jedoch, dass Menschen es mögen, wenn die Dinge genau so funktionieren, wie sie es wollen, und nicht auf eine Meta-Mode, die versucht, alle zufrieden zu stellen, nur um es nicht zu schaffen, irgendjemanden wirklich glücklich zu machen. Das ist der Grund, warum wir überhaupt zig Millionen Distributionen haben. Das ist der Grund, warum wir so viele verschiedene Desktop-Umgebungen und Fenstermanager haben (und die Tatsache, dass das eigentlich überhaupt verschiedene Arten von Dingen sind).
Es gibt immer noch ausstehende Vorschläge, universelle Pakete zu schreiben oder einen Manager zu haben, der sie alle versteht, oder eine API zu haben, um das eine in das andere umzuwandeln ... aber am Ende ist Unix am besten, wenn es gemäß seiner Philosophie verwendet wird ... . Jedes Tool macht eine Sache und macht es gut .
Jedes Mal, wenn Sie ein Tool haben, das versucht, mehr als eine Sache zu tun, ist es am Ende bei einer davon nicht so gut. Beispiel:poldek
ist scheiße im Umgang mit Deb-Paketabhängigkeiten.
Kurz gesagt:Weil jede Distribution einen anderen Ansatz für die Paketverwaltung verwendet. Sie sind einfach nicht kompatibel. Die Verwaltungsstrategie, die für Ubuntu am besten funktioniert, hat auf Arch usw. wenig Sinn. Ein "universeller" (distributionsunabhängiger) Paketmanager wäre nur eine zusätzliche Ebene der Benutzeroberfläche, die niemals so gut funktionieren würde wie der spezifische Manager jeder Distribution. P>
Mit Ihren eigenen Worten ist es also schwierig und daher nicht praktikabel - auch weil kaum jemand davon profitieren würde.
Vor allem aus historischen Gründen. Etwa zur gleichen Zeit etablierten sich mehrere Paketverwaltungssysteme - insbesondere .rpm und .deb. Jeder hat seine Anhänger und jeder ist gut genug, dass kein einzelner Paketmanager einen überzeugenden Vorteil hat. Die Distributoren werden sicherlich keinen Sinn darin sehen, ihr System von Grund auf neu aufzubauen, um einen anderen Paketmanager zu implementieren.
Dies würde auch erfordern, dass jedes Paket innerhalb des Systems (10.000 im Fall von Debian) neu erstellt wird. Es würde auch die Implementierung eines reibungslosen Migrationssystems erfordern, damit Benutzer des Systems vom alten zum neuen Paketmanager wechseln könnten. Der Aufwand für die Migration wäre undurchführbar groß und exponentiell größer, um die Migration zu testen, sodass Sie mit ziemlicher Sicherheit viele Brüche bekommen würden. Dies würde viele wütende Spieler hervorrufen.
Jede Distribution behält ihren eigenen Satz von Abhängigkeiten bei, basierend auf dem, was für diese Version erstellt wurde. Ein universelles Paket-Repository wird zu schwer zwischen den Distributionen zu koordinieren sein, da Abhängigkeitskonflikte fast sicher auftreten werden. Daher wird der eigentliche Nutzen einer einheitlichen Paketverwaltung (universelle Pakete) in der Praxis ohnehin nicht realisierbar sein.
Wer darf schließlich den universellen Standard-Paketmanager wählen? Der XKCD-Comic, auf den in den Kommentaren zum OP verwiesen wird, fasst den üblichen Fehlermodus bei dieser Art von Übung zusammen. Das Standardisieren dieser Art von Dingen wäre sehr politisch und würde wahrscheinlich zu etwas führen, das nicht verwendbar ist oder so tiefgreifend fehlerhaft ist, dass es eine weitere Runde des Händeringens über Standards hervorbringt - wenn die Parteien überhaupt zu einer Einigung kommen können.
Im Grunde läuft es also darauf hinaus:zu politisch, zu hart, zu riskant und kein Nutzen, um es zu realisieren.