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

Wenn die Paketverwaltung auf Debian-Systemen kommandozeilenbasiert durchgeführt werden sollte, dann galt bis Debian 3.0 (Woody) als offizielle Empfehlung, das Programm "APT" mit den Befehlen "apt-get" und "apt-cache" zu benutzen.

Seit Debian 3.1 (Sarge) wird stattdessen die Benutzung von Aptitude mit dem Befehl "aptitude" empfohlen.

Nun spricht sich eine solche "offizielle Empfehlung" leider nicht so schnell herum, weil ja jeder Experte jahrelang mit APT gearbeitet hat. Als ich von dieser "Empfehlung" erfuhr, wollte ich, wie bei so etwas üblich, zunächst die Quellen wissen, und die Gründe, warum Aptitude (ausgerechnet das Programm, dessen Textgrafik-Modus so schlecht ist, dass ich mich weigere, damit zu arbeiten) nun besser als APT sein soll.

Hier ging dann der Spaß los:

  • Die Quellen, die eine solche Empfehlung belegen, fand ich auch nach mehreren Stunden Google-Nutzung nicht.
  • Auf der Suche nach Gründen fand ich entweder Pro-Aptitude-Argumente, die so unbedeutend sind, dass sie einen aufwändigen Wechsel weg von APT hin zu Aptitude in keinster Weise rechtfertigen, oder ich fand Glaubenskriege und Diskussionen, nach deren Lektüre mir als Leser am Ende nicht klar wurde, warum ein aufwändiger Wechsel von APT nach Aptitude sinnvoll sein soll.

Die Quellen fand ich ein paar Monate später dann doch. Was die echten Gründe für den Vorzug von Aptitude gegenüber APT betrifft, so gibt es derzeit für mich derzeit nur einen einzigen.

3. Mischen von APT und Aptitude

Das Thema APT versus Aptitude ist deshalb so wichtig, weil ein Debian-Anwender sich für eine der beiden Alternativen entscheiden muss. Es gilt die Devise: Entweder Sie nutzen APT (und dessen Befehle im Backend) oder Sie nutzen das Frontend von APT, also die Befehle, die Aptitude bereitstellt.

Das Mischen ist verboten!

Das jedenfalls spricht sich unter Debian-Anwendern herum und ist bei einigen Internet-Quellen (die Sie weiter unten finden können) nachzulesen.

Wer dennoch auf seinem Debian-System APT und Aptitude mischt, muss damit rechnen, dass danach sowohl APT als auch Aptitude die Abhängigkeiten zwischen Software-Paketen nicht mehr sauber verwalten können, und dass das Paketmanagement irgendwann gar nicht mehr funktioniert. Die Ursache soll sein, dass APT und Aptitude beim Auflösen von Abhängigkeiten unterschiedliche Wege gehen und nicht miteinander kompatibel sind.

Weil das Mischen von APT und Aptitude zu Problemen führen kann, ist es sehr wichtig, dass ein Debian-Anwender pro System eine klare Entscheidung trifft, welches der beiden Programme er ein Systemleben lang benutzen wird, und welches er entsprechend zu meiden hat.

4. Die Gründe, die für Aptitude und gegen APT sprechen

Kommen wir nun zu den Gründen, warum ein Umstieg von APT auf Aptitude sinnvoll ist.

Der Grund, warum ich empfehle, langfristig von APT auf Aptitude umzusteigen ist, weil das Debian-Team offiziell empfiehlt, von APT auf Aptitude umzusteigen.

Für mich hat der Umstieg von APT auf Aptitude folgende Vorteile:

  • Wenn ich Debian-Systeme pflege, die gleichzeitig auch von anderen Administratoren gepflegt werden, dann kann ich davon ausgehen, dass auf diesen Systemen mit hoher Wahrscheinlichkeit Aptitude verwendet wird. Es ist zwar sinnvoll, vorher bei den anderen Administratoren nachzufragen, welche der beiden Varianten zum Einsatz kommt, aber allein schon die Angewohnheit, welcher der beiden Befehle ("aptitude" oder "apt-get") schneller aus den Fingern in die Tastatur sprudelt, kann darüber entscheiden, wie hoch die Wahrscheinlichkeit ist, dass aus Versehen jemand den falschen Befehl auf einem System nutzt.
  • Meine Debian-Anleitungen und sonstigen Tutorials sollen einen großen Leserkreis erreichen. Und wenn ein Großteil der Leser sich ebenfalls für Aptitude entschieden hat, weil Debian das so empfiehlt, dann ist es praktisch, wenn sie meine Kommandozeilen-Befehle unverändert übernehmen können, ohne erst umständlich vor jedem Eintippen die Befehle von "apt-get" nach "aptitude" umwandeln zu müssen.

5. Meine Empfehlungen

Ich empfehle nun an dieser Stelle ausdrücklich die Verwendung von Aptitude anstelle von APT, wenn Sie ein neues Debian-System aufsetzen.

Sollten Sie irgendwo noch APT benutzen, dann bleiben Sie dabei, solange bis Sie das System durch ein neues ersetzt haben.

Wofür auch immer Sie sich pro Betriebssystem entscheiden werden: Achten Sie darauf, dass Sie APT und Aptitude nicht miteinander mischen!

6. Die Verwendung von APT versus Aptitude in meinen Anleitungen

Für sämtliche Debian-relevanten Anleitungen, die ich produzieren und auf meiner Website veröffentlichen oder verkaufen werde, gilt folgende Regel:

  • Auf sämtlichen Debian-Systemen bis Debian 5.0 (Lenny) verwende ich durchgehend "apt-get".
  • Auf sämtlichen Debian-Systemen ab Debian 6.0 (Squeeze) verwende ich durchgehend "aptitude".

Es wird Anleitungen von mir geben, die sowohl APT als auch Aptitude innerhalb eines einzigen Kontextes verwenden. Beispiele können folgende sein:

  • Ich zeige Ihnen, wie Sie von einem Lenny aus ein Squeeze auf eine andere Partition installieren.
  • Ich zeige Ihnen, wie Sie von einem Lenny-Host-System aus ein Squeeze in ein virtualisiertes Gastsystem installieren.

Aptitude-Befehle auf Lenny-Systemen werden meine Anleitungen in der Regel nicht verwenden, denn dazu sind die Vorteile von Aptitude gegenüber APT einfach nicht wichtig genug.

7. Recherchen

Für mich war das Thema APT versus Aptitude vor allem ein Recherche-Problem. Wenn Sie sich selbst eine Meinung bilden wollen, Sie also genau so wenig wie ich bereit sind, vorgekaute Meinungen unreflektiert zu übernehmen, dann können die nachfolgend zusammengetragenen Links für Sie von Vorteil sein, denn es war nicht wirklich leicht, sie zu finden.

7.1. Quellen, die die offiziellen Empfehlungen belegen oder erwähnen

Wo genau steht, dass die offizielle Empfehlung lautet, Aptitude anstelle von APT zu nutzen? Hier ist die Link-Sammlung:

7.2. Quellen, die die Gründe, warum Aptitude besser als APT sein soll, behandeln

Hier ein paar Links dazu:

7.3. Quellen, bei denen kritisch und/oder fundiert über APT versus Aptitude diskutiert wird

Hier ein paar Links dazu:

7.4. Quellen, die einen Umstieg auf bestehenden Systemen beschreiben

Ja, das gibt es auch. Einige Zeitgenossen sind so von Aptitude überzeugt, dass sie unbedingt herausfinden mussten, wie sie bestehende Systeme von APT nach Aptitude bringen können. Ich finde das zwar unsinnig, aber, wer das braucht, kann das gern dort nachlesen und auf Wunsch auch selbst anwenden:

7.5. Quellen, die sich damit befassen, dass APT und Aptitude nicht gemischt werden dürfen

Hier ein paar Links dazu:

7.6. Quintessenz nach der Recherche

Nachdem ich all diese Links durchgearbeitet habe, ist meine Meinung immer noch die gleiche wie vorher: Wer nur vor hat, die Debian-Distribution "stable" zu betreiben und die Paketverwaltungswerkzeuge nur dazu benutzt, um Software nachzuinstallieren, dem kann es so ziemlich egal sein, ob ein System mit APT oder mit Aptitude betrieben wird.

Im Detail mag Aptitude besser sein als APT. Auch die Tatsache, dass nur noch ein Befehl (statt 16 wie bei APT) zu merken sind, ist ein Nice-to-have.

Weil Aptitude im Detail besser als APT ist, ist es sinnvoll, in der Zukunft mal von APT auf Aptitude umzusteigen. Es ist aber nicht superdringend. Mein Umstieg wird daher erfolgen, wenn ich von Lenny auf Squeeze wechsle.

8. 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