2.3. Softwarestapel und Ebenen

2.3.1. Ebenen

Die Paketverwaltung kann man leicht in zwei Ebenen aufteilen. Dabei wird jede Ebene durch eine Reihe von Programmen und Bibliotheken repräsentiert (siehe Abbildung 2.1, „Schichtenmodell zur deb-basierten Paketverwaltung“).

Abbildung 2.1. Schichtenmodell zur deb-basierten Paketverwaltung

konzepte/software-in-paketen-organisieren/werkzeugebenen-2.png

2.3.2. Untere Ebene

Die Basis bildet dpkg. Dessen Aufgabe ist es a) ein bereits lokal vorliegendes deb-Paket auszupacken und auf dem System einzuspielen und b) die Inhalte eines bereits installierten deb-Pakets wieder aus dem System zu entfernen. Ersteres entspricht dabei dem Kommandozeilenaufruf dpkg -i Paketdatei, das zweite hingegen dpkg -r Paketdatei (siehe Abschnitt 8.38, „Pakete installieren“ und Abschnitt 8.43, „Pakete deinstallieren“).

Für Statusabfragen zu einem einzelnen Paket stützt sich dpkg auf die beiden Hilfsprogramme dpkg-deb und dpkg-query. Dazu gehören bspw. die Schalter -c und -L zum Anzeigen des Inhalts eines Pakets (siehe Abschnitt 8.26, „Paketinhalte anzeigen“) sowie -l zur Auflistung der installierten Pakete (siehe Abschnitt 8.5, „Liste der installierten Pakete anzeigen und deuten“), -s zum Erfragen des Paketstatus (siehe Abschnitt 8.4, „Paketstatus erfragen“) und -S, um das Paket zu finden, in dem eine bestimmte Datei vorkommt (siehe Abschnitt 8.24, „Paket zu Datei finden“).

Mit dpkg können Sie Ihre Pakete verwalten und das System vollständig pflegen. Jedoch müssen Sie sich dann aber selbst um alle Komfortfunktionen kümmern. dpkg prüft nur, ob alle Abhängigkeiten zu anderen Paketen erfüllt sind und beendet im Fehlerfall die Aktion. Es nimmt Ihnen weder die automatische Auflösung von Paketabhängigkeiten, noch die richtige Reihenfolge bei der Installation der Pakete ab. Diese Mühe erleichtern Ihnen die Werkzeuge der oberen Ebene.

Paketverwaltung bei anderen Linux-Distributionen

Das Analogon zu dpkg bei rpm-basierten Distributionen ist rpm, bei Arch Linux ist es Pacman und bei Gentoo erreichen Sie die Funktionalität durch die beiden Programme emerge und equery. Eine komplette Übersicht zu den verschiedenen Programmen finden Sie einerseits in der Pacman-Rosetta (siehe Abschnitt 9.7, „Pacman Rosetta“) sowie in unserer Übersicht im Anhang des Buches (siehe Kapitel 51, Kommandos zur Paketverwaltung im Vergleich).

2.3.3. Obere Ebene

Bei deb-basierten Distributionen besteht die obere Ebene typischerweise aus dem Werkzeug APT (siehe Abschnitt 6.2.2, „APT“). Häufig ist mindestens eines der weiteren Programme wie aptitude (siehe Abschnitt 6.3.2, „aptitude), Synaptic (siehe Abschnitt 6.4.1, „Synaptic“), Muon (siehe Abschnitt 6.4.2, „Muon“) oder auch PackageKit (siehe Abschnitt 6.4.4, „PackageKit“) installiert. Die Auswahl variiert und hängt von der von Ihnen gewählten Linux-Distribution und ihren Vorlieben ab.

Alle diese Programme übernehmen die Aufgabe, Ihnen die Installation und die Aktualisierung der einzelnen Programmpakete auf Ihrem System zu vereinfachen und unter möglichst einer Benutzeroberfläche zusammenzufassen. Konkret gehört dazu die Aktualisierung der Liste von Paketen aus den Paketquellen, der Auflösung der Paketabhängigkeiten und die Berechnung der Installationsreihenfolge der von Ihnen ausgewählten Pakete.

Bei der Erfüllung ihrer Aufgaben stützen sich die Programme einerseits auf die beiden Bibliotheken libapt-inst und libapt-pkg (siehe Kapitel 5, APT und Bibliotheken) und andererseits auf die Werkzeuge aus der unteren Ebene, d.h. vor allem auf dpkg. Es übernimmt die eigentliche Installation, Entfernung oder Aktualisierung (siehe untere Ebene). Sichtbar wird dies insbesondere, wenn Sie ein Paket mit apt-get oder aptitude installieren. Einen Teil der Ausgaben auf dem Terminal steuern dpkg und die o.g. Bibliotheken bei.

2.3.4. Paketformate und -werkzeuge anderer Distributionen

Bei rpm-basierten Distributionen RedHat, Fedora und CentOS heißen die Werkzeuge Yellowdog Updater Modified (YUM) [YUM], bei SuSE und openSUSE Zypper [Zypper] und Yet another Setup Tool (YaST). Mageia Linux und Rosa Linux nutzen hingegen urpmi [Mageia-urpmi]. rpmdrake [rpmdrake] setzt auf urpmi auf und ist das Pendant zum graphischen Werkzeug Synaptic. Aufgrund der einfachen Benutzbarkeit wird es häufig Einsteigern empfohlen.

2.3.5. Werkzeuge, die verschiedene Paketformate unterstützen

Darüber hinaus gibt es Programme, die mit mehreren unterschiedlichen Paketformaten umgehen können. Dazu zählen Muon (siehe Abschnitt 6.4.2, „Muon“), der Smart Package Manager (SmartPM) (siehe Abschnitt 6.4.3, „Smart Package Management (SmartPM)“) und PackageKit (siehe Abschnitt 6.4.4, „PackageKit“). Muon und SmartPM können die Paketformate deb, rpm und tar.gz (Slackware) verarbeiten sowie die bereits oben genannten Verwaltungen APT, YUM und urpmi ansprechen. Weitere Informationen dazu finden Sie unter „Frontends für das Paketmanagement“ in Abschnitt 6.1, „Frontends für das Paketmanagement“.