Da mehrere Responder gesagt, es ist nicht so sehr , dass ein bestimmtes Paket - Format deutlich überlegen ist. Technisch können sie mehr oder weniger vergleichbar sein. Aus meiner Sicht haben viele der Unterschiede, und warum Menschen einander vorziehen, damit zu tun:
- Die Philosophie des Originalverpackungsdesigns und der Zielgruppe
- Die Community-Größe und damit auch die Qualität und der Reichtum der Repositorys
Philosophie:
In der Welt von Ubuntu / Debian / Mint / ... erwarten Benutzer, dass das installierte Paket "nur funktioniert", wenn es installiert ist. Dies bedeutet, dass die Pakete während der Installation alles erledigen müssen, damit sie auch tatsächlich funktionieren, einschließlich, aber nicht beschränkt auf:
- benötigte oder optionale Cronjobs einrichten
- Einrichten von Alternativen / Aliasen
- Einrichten von Start / Shutdown-Skripten
- Einschließlich aller erforderlichen Konfigurationsdateien mit sinnvollen Standardeinstellungen
- Beibehaltung alter Versionen von Bibliotheken und Hinzufügen der richtigen versionierten Symlinks zu Bibliotheken (.so) aus Gründen der Abwärtskompatibilität
- saubere Unterstützung für Multi-Arch-Binärdateien (32 und 64 Bit) auf demselben Computer und so weiter.
In der RPM-Welt - zugegebenermaßen war dies vor einigen Jahren der Fall und es hat sich seitdem möglicherweise verbessert - musste ich zusätzliche Schritte ausführen (z. B. chkconfig, das Aktivieren von Cron-Jobs), damit Pakete tatsächlich funktionieren. Dies mag für Sysadmins oder Leute, die sich mit Unix auskennen, in Ordnung sein, aber Anfänger leiden darunter. Beachten Sie, dass dies nicht durch das RPM-Paketformat selbst verhindert wird, sondern dass viele Pakete aus der Sicht eines Neulings de facto nicht "vollständig" erstellt wurden .
Community-Größe, Beteiligung und Reichtum an Repositories:
Da die ubuntu / debian / mint / ... - Community größer ist, sind mehr Menschen in das Packen und Testen von Software involviert. Ich fand den Reichtum und die Qualität der Repositories überlegen. In Ubuntu muss ich selten, wenn überhaupt, den Quellcode herunterladen und daraus erstellen. Als ich zu Hause von Red Hat auf Ubuntu umgestiegen bin, enthielt das typische RHEL-Repo ~ 3000 Pakete, während Ubuntu + Universum + Multiversum, alle direkt von einem Canonical-Spiegel verfügbar, ~ 30.000 Pakete enthielt (ungefähr 10x). Die meisten Pakete, die ich im RPM-Format suchte, waren nicht über eine einfache Suche und einen Klick im Paketmanager verfügbar. Sie mussten zu alternativen Repositories wechseln, die rpmfind-Service-Website durchsuchen usw. Dies löste in den meisten Fällen das Problem, anstatt es zu lösen. hat meine Installation abgebrochen, weil ich nicht eingeschränkt habe, welche Abhängigkeiten korrekt aktualisiert werden können oder nicht. Ich bin auf das Phänomen der "Abhängigkeitshölle" gestoßen, wie oben von Shawn J. Goff beschrieben.
Im Gegensatz dazu stellte ich in Ubuntu / Debian fest, dass ich fast nie aus dem Quellcode bauen muss. Auch wegen:
- Der Ubuntu Fast (6 Monate) Release-Zyklus
- Die Existenz voll kompatibler PPAs, die sofort einsatzbereit sind
- Die Single-Source-Repositories (alle von Canonical gehostet) müssen nicht nach alternativen / komplementären Repositories suchen
- Nahtlose Benutzererfahrung von Klick zu Klick
Ich musste nie Kompromisse bei älteren Versionen von Paketen eingehen, die mir wichtig waren, auch wenn sie nicht von offiziellen (Canonical) Entwicklern gepflegt wurden. Ich musste meinen bevorzugten freundlichen GUI-Paketmanager nie verlassen, um eine bequeme Suche nach Schlüsselwörtern durchzuführen und jedes gewünschte Paket zu finden und zu installieren. Außerdem habe ich einige Male debian (nicht Canonical) -Pakete auf Ubuntu installiert und sie funktionierten einwandfrei, obwohl diese Kompatibilität nicht offiziell garantiert wurde.
Beachten Sie, dass dies nicht dazu gedacht ist, einen Flammenkrieg auszulösen, sondern lediglich meine Erfahrung zu teilen, beide Welten mehrere Jahre lang parallel genutzt zu haben (Arbeit gegen Zuhause).
debian
existiert das Verzeichnis in dem Verzeichnis, in das die Upstream-Quelle extrahiert wurde, und Debian schätzt das Konzept eines unberührten Upstream-Quell-Tarballs sehr. Wenn ein Quellpaket erstellt wird, gibt es drei (zwei für native Pakete) Dateien, die zusammen als Quellpaket bezeichnet werden: Das Upstream-Tarball (vorzugsweise makellos, für Debian-Richtlinien müssen einige Projekte neu gepackt werden), ein Tarball des Debian-Verzeichnisses für das neues 3.0-Format (ein Unterschied zum alten 1.0-Format) und eine .dsc-Datei.