0185: APT versus Aptitude1. Einblick in die Zusammenhänge der Paketverwaltung auf Debian-SystemenEbene 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-ModusWenn 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 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 AptitudeDas 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 sprechenKommen 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:
5. Meine EmpfehlungenIch 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 AnleitungenFür sämtliche Debian-relevanten Anleitungen, die ich produzieren und auf meiner Website veröffentlichen oder verkaufen werde, gilt folgende Regel:
Es wird Anleitungen von mir geben, die sowohl APT als auch Aptitude innerhalb eines einzigen Kontextes verwenden. Beispiele können folgende sein:
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. RecherchenFü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ähnenWo 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, behandelnHier ein paar Links dazu:
7.3. Quellen, bei denen kritisch und/oder fundiert über APT versus Aptitude diskutiert wirdHier ein paar Links dazu:
7.4. Quellen, die einen Umstieg auf bestehenden Systemen beschreibenJa, 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ürfenHier ein paar Links dazu:
7.6. Quintessenz nach der RechercheNachdem 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 AptitudeDie Syntax der Befehle unterscheidet sich nur geringfügig:
|