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“).
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.
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).
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.
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.
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“.