Start   Impressum   Lizenz         online lesen   Download         Online-Shop   Jumping Blue Turtle

Debian für Unternehmer - Debian-Know-how

0185: APT versus Aptitude

1. Einblick in die Zusammenhänge der Paketverwaltung auf Debian-Systemen

Ebene 1: "dpkg"

Der Kern der Paketverwaltung auf Debian-Systemen ist "dpkg". Es gibt zu "dpkg" folgende Wikipedia-Artikel:

Wenn Sie auf Internet-losen Rechnern Software nachinstallieren wollen, und sich die gewünschte Software weder auf vorhandenen Installationsmedien (CD, DVD, Blu-ray) noch in lokalen Debian-Repositorys befindet, dann ist "dpkg" das einzige verfügbare Mittel, um Software (z.B. Adobe Reader, XV, Java, Opera, Google Chrome, LaTeX2HTML, VirtualBox OSE) nachinstallieren zu können.

Ebene 2a: "APT"

Debian ist deshalb ein empfehlenswertes Betriebssystem, weil es eine riesige Auswahl an Software auf den Installationsmedien (CD, DVD, Blu-ray) enthält. Zwar ist diese Software-Sammlung nicht vollständig, aber im Wesentlichen lässt sich damit ganz gut arbeiten.

Software, die sich auf den Installationsmedien oder auf lokalen Debian-Repositorys befindet, können Sie prinzipiell zwar auch mit "dpkg" nachinstallieren, aber empfehlenswert ist das nicht, weil "dpkg" sich nicht um die Auflösung der Abhängigkeiten kümmert, die zwischen den einzelnen Software-Paketen existieren. Sie müssten also selbst genau wissen, welche Pakete Sie sonst noch installieren müssten, damit das frisch per "dpkg" installierte Paket "XYZ" tatsächlich läuft.

Es gibt das "Advanced Packaging Tool" (die Abkürzung lautet "APT"), das Ihnen die Installation von Software ermöglicht und dabei gleichzeitig selbst das Auflösen von Abhängigkeiten zwischen Software-Paketen durchführt.

"APT" ist ein Paketverwaltungssystem, das auf dpgk aufsetzt. Es nutzt also selbst "dpkg" als "Backend" und ist aus der Sicht von "dpkg" somit ein "Frontend".

"APT" stellt dem Anwender als Kommandozeilen-Schnittstelle die Befehle "apt-get" und "apt-cache" zur Verfügung.

Mehr Informationen zu "APT" gibt es hier:

Ebene 2b: Andere "dpkg"-Frontends

Andere "dpkg"-Frontends sind laut deutscher Wikipedia die folgenden zu APT alternativen Programme:

Ebene 3: APT-Frontends

Die APT-Kommandos (unter anderem "apt-get" und "apt-cache") sind an sich zwar ganz praktisch, aber einige Zeitgenossen empfanden sie offenbar als zu spartanisch. So entstanden im Laufe der Zeit verschiedene Programme, die ihrerseits ein Frontend darstellen und als Backend "APT" nutzen.

Es gibt eine recht lange Liste an Fontends für APT. Eine Auswahl davon sind die folgenden Programme:

Synaptic ist ein grafisches Frontend. Das Programm nutzt dabei echte Pixelgrafik, und es benötigt daher einen X-Server, damit es läuft. Als ich es entdeckte, machte es einen sehr guten Eindruck auf mich. Ich hatte es allerdings sehr spät entdeckt. Was mich davon abhält, "Synaptic" zu benutzen, ist die Tatsache, dass grafische Anwendungen an sich ziemlich umständlich in der Handhabung sind, wenn es darum geht, die Nachinstallation von Software in Shell-Skripten zu automatisieren oder in Anleitungen zu erklären.

Der Kommandozeilen-Modus mit den Befehlen "apt-cache" und "apt-get" hat den unschlagbaren Vorteil, dass man damit alle Installationsschritte diverser Software einfach dokumentieren kann (weil es Kommandozeilenbefehle sind, die sich einfach per Copy-and-Paste reproduzieren lassen), was dazu führt, dass mehrere Installationen (nach ein und derselben Anleitung) immer die gleichen Resultate liefern.

Es ist recht umständlich zu schreiben, "Klicken Sie da, dann da, dann da, suchen Sie in dieser Liste nach XYZ, dann in der nächsten Liste nach ABC und klicken Sie dann auf 'Installieren'", oder ob ich einfach schreibe "apt-get install ABC". In der täglichen Praxis ist die letztgenannte Alternative der grafischen Alternative haushoch überlegen. Synaptic ist deshalb ein schickes Werkzeug, das in der Praxis eher für Anfänger geeignet ist, aber nicht für Profis.

Aptitude ist ein Frontend, das sowohl im Textgrafik-Modus als auch im Kommandozeilen-Modus verwendet werden kann. Der Textgrafik-Modus benutzt dabei keine echte Pixelgrafik, sondern auf ncurses basierende Textgrafik, so dass das Programm ohne X-Server läuft.

Als ich Aptitude entdeckte, fand ich genau diesen Textgrafik-Modus vor. Den Kommandozeilen-Modus kannte ich damals gar nicht. Mein Eindruck von Aptitude war schlecht. Wenn ich mich daran erinnere, was für super-intuitive Software ich zu DOS-Zeiten in Pascal im Text-Modus programmieren konnte (ich brauchte dafür keine aufwändige Pixelgrafik), und dann einen Murks wie Aptitude präsentiert bekomme, den ein Anfänger wohl kaum auf Anhieb verstehen kann, dann ist nach ein paar Stunden Beschäftigung mit dieser Software zumindest für mich klar: Finger weg davon, denn das hat keinen Sinn. Es gibt "apt-get", und das ist ausreichend.

Aptitude läuft tatsächlich aber nicht nur im Textgrafik-Modus, sondern auch im Kommandozeilen-Modus. Als Alternative zu den Befehlen

apt-cache search abcdefghij
apt-get install abcdefghij

können nun eben auch die Befehle

aptitude search abcdefghij
aptitude install abcdefghij

verwendet werden.

Trotz der Möglichkeit, Aptitude im Kommandozeilen-Modus zu verwenden, ist Aptitude immer noch ein Frontend, welches "APT" als Backend nutzt.

2. Offizielle Empfehlung für die Arbeit im Kommandozeilen-Modus

Nach einigem Hin und Her zu Lenny-Zeiten (Offline-Link / Online-Link), ist seit Debian Squeeze an dieser Front wieder Ruhe eingekehrt: Alles bleibt so, wie es ist! Die offizielle Empfehlung lautet: "apt-get"!

Lenny

Zu Lenny-Zeiten war die Debian-Dokumentation zu dem Thema sehr schwammig, und es wurde dort uneingeschraenkt "aptitude" empfohlen.

Quelle:

apt-get install debian-reference-en
apt-get install debian-reference-de
apt-get install debian-reference-common

file:///usr/share/doc/debian-reference-common/html/debian-reference.en.html#debianpackagemanagement

Zitat:

Currently, we recommend aptitude as the main front end program for the Debian
package management activity.
Squeeze

Die Squeeze-Dokumentation enthält an gleicher Stelle nun eine sehr viel genauere Empfehlung. Und diese Empfehlung lautet eindeutig "apt-get".

Quelle: http://www.debian.org/doc/manuals/debian-reference/ch02.en.html

Zitat:

Currently, we recommend the following.

* apt-get(8) for all commandline operations, including package installation and
  removal, and dist-upgrades.

* aptitude(8) for an interactive text interface to manage the installed
  packages and to search the available packages.

* update-manager(8) for keeping your system up-to-date if you're running the
  default GNOME desktop.
Meine Empfehlung

Da es grundsätzlich besser ist, auf eine unnötige Schicht zu verzichten, wenn sie keinen besonderen Mehrwert bringt, bleibt nun alles beim Alten. Ich werde, wie Debian Squeeze auch, "apt-get" empfehlen.

3. Vergleich der alltäglichen Befehle APT versus Aptitude

Die Syntax der Befehle unterscheidet sich nur geringfügig:

Aktion APT Aptitude
Aktuelle Paketinformationen aus den Installationsquellen einlesen. Das ist Voraussetzung dafür, dass die Befehle "apt-get" und "apt-cache" funktionieren.
apt-get update
aptitude update
Nach dem Paket "xyz" suchen.
apt-cache search xyz
aptitude search xyz
Die Installation des Pakets "xyz" simulieren.
apt-get install -s xyz
aptitude install -s xyz
Das Paket "xyz" tatsächlich installieren.
apt-get install xyz
aptitude install xyz
Das Paket "xyz" deinstallieren.
apt-get remove xyz
aptitude remove xyz
Das Paket "xyz" deinstallieren und dabei auch eventuelle Konfigurationsdateien vernichten.
apt-get remove xyz --purge
aptitude remove xyz --purge
Ein System-Update simulieren
apt-get -s dist-upgrade
aptitude -s dist-upgrade
Ein System-Update durchführen
apt-get dist-upgrade
aptitude dist-upgrade