Warum gibt es einen einheitlichen Paket - Manager , die zwischen dem Endbenutzer und dem darunter liegenden Low-Level - Paket - Manager als Schnittstelle fungiert ( apt
, yast
, pacman
, etc.)?
Ist es schwierig und daher nicht praktikabel, oder gibt es ein echtes Hindernis, das dies unmöglich macht?
linux
package-management
vonPetrushev
quelle
quelle
Antworten:
Zuallererst gibt es. Das Problem ist nicht, dass es keinen einheitlichen Paketmanager gibt, das Problem ist, dass es zehn gibt - im Ernst.
Lassen Sie uns meine Lieblings nehmen:
poldek
. Es ist ein Benutzer-Frontend für die Paketverwaltung, das auf mehreren verschiedenen Distributionen ausgeführt werden kann und entweder Paketerpm
oderdeb
Pakete verwaltet. Poldek macht nicht das, was rpm macht (das überlässt es rpm) und sendet einfach die richtigen Befehle, ohne dass der Benutzer all diese Unordnung herausfinden muss.Aber die Probleme hören hier nicht auf. Jeder hat eine andere Vorstellung davon, wie ein Benutzer-Frontend aussehen soll, wie es funktionieren soll und welche Optionen es bieten soll. Also haben andere Leute ihre eigenen geschrieben. Tatsächlich können viele der Paket-Front-End-Manager, die heute in gängigen Distributionen verwendet werden, mehr als ein Back-End verwalten.
Letztendlich besteht das Problem (oder der Vorteil) jedoch darin, dass die Leute Dinge so mögen, wie sie wollen, und nicht in einer Meta-Weise, die versucht, alle zufriedenzustellen, nur um niemanden wirklich glücklich zu machen. Dies ist der Grund, warum wir in erster Linie zig Millionen Distros haben. Dies ist der Grund, warum wir so viele verschiedene Desktop-Umgebungen und Fenstermanager haben (und die Tatsache, dass dies tatsächlich überhaupt verschiedene Arten von Dingen sind).
Es gibt immer noch ausstehende Vorschläge für das Schreiben von universellen Paketen oder für die Verwendung eines Managers, der sie alle versteht, oder für die Konvertierung einer API in eine andere. Letztendlich ist Unix das Beste, 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 in einem davon nicht so gut. Zum Beispiel
poldek
nervt es, mit Deb-Paketabhängigkeiten umzugehen.quelle
Kurz gesagt: Jede Distribution verwendet einen anderen Ansatz für die Paketverwaltung. Sie sind einfach nicht kompatibel. Eine Verwaltungsstrategie, die für Ubuntu am besten funktioniert, hat für Arch usw. wenig Sinn. Ein "universeller" (verteilungsunabhä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.
Mit eigenen Worten ist es also schwierig und daher nicht praktikabel - auch weil kaum jemand davon profitieren würde.
quelle
Hauptsächlich historische Gründe. Etwa zur gleichen Zeit haben sich mehrere Paketverwaltungssysteme etabliert - 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 es sicherlich nicht für sinnvoll halten, 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. Außerdem müsste ein reibungsloses Migrationssystem implementiert werden, damit Benutzer des Systems vom alten zum neuen Paketmanager wechseln können. Der Migrationsaufwand wäre unüberschaubar und zum Testen der Migration exponentiell höher, sodass mit ziemlicher Sicherheit viele Brüche auftreten würden. Dies würde viele zornige Börsenspekulanten erzeugen.
Jede Distribution unterhält ihre eigenen Abhängigkeiten, basierend auf dem, was für diese Version erstellt wurde. Ein universelles Paket-Repository ist zu schwierig, um zwischen den Verteilungen zu koordinieren, da Abhängigkeitskonflikte mit ziemlicher Sicherheit auftreten werden. Daher ist der tatsächliche Nutzen eines einheitlichen Paketverwaltungssystems (universelle Pakete) in der Praxis ohnehin nicht realisierbar.
Wer darf sich schließlich für den universellen Standardpaket-Manager entscheiden? Der XKCD-Comic, auf den in den Kommentaren zum OP verwiesen wird, fasst den üblichen Fehlermodus für diese Art von Übung zusammen. Eine Standardisierung dieser Art von Dingen wäre sehr politisch und würde wahrscheinlich zu etwas führen, das nicht brauchbar oder so fehlerhaft ist, dass es zu einer weiteren Runde der Überarbeitung von Standards kommt - wenn die Parteien überhaupt zu einer Einigung kommen können.
Im Grunde kommt es also darauf an: zu politisch, zu hart, zu riskant und kein Nutzen, um dadurch realisiert zu werden.
quelle
Was du beschrieben hast,
klingt ein bisschen wie PackageKit für mich, das heißt ,
Bearbeiten: Hier finden Sie eine Liste der unterstützten Backends. Edit2: Nutzlose Bemerkung entfernt.
quelle
Verstehen Sie zunächst, dass "Linux" kein Betriebssystem ist. Es ist ein Kernel. Ein Paketmanager ist ein Konzept auf Betriebssystemebene, kein Konzept auf Kernelebene. Daher ist es nicht wirklich sinnvoll, nach einem einheitlichen Paketmanager für Linux zu fragen.
Wenn Sie sich jedoch fragen, warum die verschiedenen Betriebssysteme, die den Linux-Kernel verwenden, keine kompatiblen Paketmanager haben, können Sie sich auch fragen, warum Windows und Macs keine kompatiblen Paketmanager haben. Oder zwei andere Betriebssysteme.
Unterschiedliche Betriebssysteme erfüllen unterschiedliche Benutzeranforderungen, und der Paketmanager ist Teil davon. Warum haben nicht alle Linux-Distributionen den gleichen Fenstermanager? Oder mit der gleichen vorinstallierten Software kommen?
Antwort: Verschiedene Schläge für verschiedene Leute.
quelle