ubuntuusers.de » Wiki » aptitude

aptitude

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

Dieser Artikel ist größtenteils für alle Ubuntu-Versionen gültig.

Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:

aptitude ist eine Erweiterung der Paketverwaltung mittels APT (Advanced Packaging Tool), welches auf allen Debian-basierten Systemen und damit auch Ubuntu zum Einsatz kommt.

aptitude kann sowohl per Kommandozeile bedient werden als auch über eine grafische Oberfläche, welche auf ncurses basiert und somit Desktop-übergreifend eingesetzt werden kann. Weiterhin kann die Oberfläche auch auf Systemen ohne Grafik (z.B. Server) eingesetzt werden.

Im Gegensatz zu apt-get führt aptitude über Änderungen der installierten Pakete "genauer" Buch, so dass nicht mehr benötigte Pakete automatisch erkannt und deinstalliert werden, die Installationsgeschichte in ein Log geschrieben wird, angezeigt werden kann, warum ein Paket installiert ist (oder nicht installiert werden kann) etc.

Mit dem Erscheinen von Debian Etch 4.0 im April 2007 ist aptitude die "bevorzugte" Paketverwaltung und tritt damit die Nachfolge von dselect und apt an.

Hinweis:

Obwohl aptitude und apt selbst nur auf die Paketverwaltung zurückgreifen, sollte man beide Programme nicht mischen. Entweder man benutzt aptitude oder die Frontends für apt Synaptic, Adept bzw. apt-get. Das liegt daran, dass die Programme je eine unterschiedliche Datenbank haben, um die Abhängigkeiten zu kontrollieren, installiert man z.B. ein Paket über apt-get, so weiß aptitude zwar, dass das Paket installiert wurde, kennt jedoch die mit dem Paket installierten Abhängigkeiten nicht. Um aptitude auf den Stand von apt-get zu bringen, gibt es bei aptitude die Funktion keep-all oder für einzelne Pakete mit markauto. Die apt-get-Datenbank kann man nicht mit der aptitude-Datenbank synchronisieren.

In seltenen Fällen ist es bei längerer paralleler Nutzung beider Programme dazu gekommen, dass keines der Programme mehr auf die Datenbank zugreifen konnte. Deswegen sollte man sich für eines der beiden Programme entscheiden.

Installation

aptitude ist in der Standardinstallation von allen *buntus enthalten, kann ansonsten aber über das Paket [1]

  • aptitude

installiert werden.

Des Weiteren kann man noch das (englische) Handbuch zu aptitude mit installieren, dies ist über das Paket

  • aptitude-doc-en

verfügbar.

Bedienung

Wie oben bereits erwähnt kann man aptitude entweder über die Kommandozeile oder die grafische Oberfläche bedienen. Die allgemeine Syntax lautet

aptitude BEFEHL PAKET 

Ruft man das Programm ohne Befehl und Paket auf, erscheint automatisch die grafische Version.

Wie bei der Paketverwaltung üblich werden Root-Rechte benötigt. Die grafische Version startet zwar auch ohne Root-Rechte, allerdings kann man dann nur suchen bzw. die Liste der installierten Pakete anschauen, man kann aber keine Pakete entfernen, installieren etc.

Grafische Oberfläche

aptitude.png

Die Pakete werden vorsortiert und hierarchisch in Form einer aufklappbaren Ordnerstruktur dargestellt.

In der grafischen Oberfläche werden die Pakete je nach "Zustand" verschiedenfarbig dargestellt:

  • schwarz : Paket wird nicht verändert

  • rot : Paket ist kaputt oder kann nicht installiert werden

  • blau : Paket wird aktualisiert

  • weiß : Paketversion bleibt erhalten, kann aber aktualisiert werden

  • grün : Paket wird installiert

  • magenta : Paket wird gelöscht

aptitude kann komplett über die Tastatur gesteuert werden. Alle Funktionen sind aber auch über die entsprechenden Pull-Down Menüs erreichbar, zu denen man mittels Strg + T gelangt. Im Folgenden sind einige Tasten erklärt:

Übersicht Tasten
Taste Funktion
+ Auswahlbalken bewegen
Verzeichnis auf- und zuklappen
/ Suchen
N Weitersuchen
L Suchen, alle Pakete, auf die das Suchkriterium nicht zutrifft werden aber ausgeblendet
I Paketinformationen anzeigen
D Abhängigkeiten anzeigen
U Paketquellen updaten
+ U alle verfügbaren Updates installieren
+ Paket zur Installation vormerken
- Paket zum Löschen vormerken
= Paketversion halten
G Start der Installation/Deinstallation
? Hilfe anzeigen, d.h. alle verfügbaren Tasten und deren Funktion
+ Q Aptitude beenden

Die Suche von aptitude kennt auch weiterführende Suchfunktionen wie Verknüpfungen, Suche in der Beschreibung. Dazu ein paar Beispiele:

  • ?name(linux) - sucht nach allen Paketen, die Linux im Namen haben

  • ?description(python) - sucht nach allen Paketen, die Python in der Beschreibung haben

  • ?and(?name(linux),?description(python) - sucht nach allen Paketen, die Linux im Namen und Python in der Beschreibung haben

  • ?installed - sucht nach allen installierten Paketen

  • ?installed(?not(?automatic)) - sucht nach allen installierten Paketen ohne markauto Tag

Eine komplette Übersicht bietet das aptitude-Handbuch.

Konsole

Ruft man aptitude mit einer Option bzw. Paketnamen auf, so wird die Aktion ohne Start der grafischen Oberfläche direkt ausgeführt. Die allgemeine Syntax lautet

sudo aptitude BEFEHL OPTION PAKETNAME(N) 

Wichtig ist, dass der Befehl vor dem/den Paketnamen steht. Eine Option ist in vielen Fällen nicht notwendig. Wird mehr als ein Paketname angegeben, wird die entsprechende Version auf alle genannten Pakete angewendet.

Im Folgenden sind einige gängige Befehle aufgeführt. Teilweise sind diese identisch mit denen von apt-get und haben i.d.R. auch den gleichen Effekt.

Übersicht Befehle Kommandozeile
Befehl Funktion
install installiert das Paket, die Abhängigkeiten werden direkt mit aufgelöst
remove löscht das Paket, die Konfigurationsdateien bleiben aber erhalten
purge löscht das Paket inklusive aller Konfigurationsdateien
hold erzwingt, dass das Paket in der aktuell installierten Version gehalten wird, d.h. es werden keine Updates dafür installiert
forbid-version verbietet die Installation einer bestimmten Paketversion, diese muss hinter dem Paketnamen mittels = angehängt werden, also z.B. xserver-xorg=1.2.3.broken-4
safe-upgrade Es wird ein Update der Pakete durchgeführt, die aktuallisiert werden können, ohne dass andere Pakete hinzugefügt oder entfernt werden müssen. Dies ist der "normale" Befehl, um innerhalb eines Releases ein Update durchzuführen
full-upgrade aktualisiert alle Pakete, installiert neue und entfernt ggf. nicht mehr benötigte; dies ist der Befehl für ein Upgrade zwischen zwei Ubuntu-Versionen (entspricht bei apt-get dem dist-upgrade)
show zeigt Informationen zum Paket an
why zeigt an, welche Pakete von diesem abhängen
why-not zeigt an, warum ein Paket nicht installiert werden kann, also welche Konflikte existieren
clean leert den Paketcache, kann u.U. sehr viel Festplattenplatz frei machen
autoclean leert den Paketcache für alle Pakete aus den eingetragenen Quellen, kann u.U. sehr viel Festplattenplatz frei machen
build-dep installiert die nötigen Quellpakete um das spezifizierte Paket kompilieren zu können (verfügbar seit Ubuntu 8.10)

Eine Option, die hier für install erwähnt werden soll ist -R. Dadurch werden nur die direkten Abhängigkeiten mit installiert und nicht auch die Empfehlung, was unter Ubuntu per Voreinstellung passiert.

Pakete suchen

Pakete können mit dem folgenden Befehl gesucht werden:

aptitude search Suchbegriff1 [Suchbegriff2] ... 

Wird bei einem Installationsbefehl ein nicht existierender Paketname angegeben, werden Alternativen aufgelistet. Die Eingabe von Paketnamen lässt sich außerdem durch Aktivierung der erweiterten [Bash-Vervollständigung] wesentlich erleichtern.

Es kann auch nach bestimmten Eigenschaften gesucht werden. Alle Suchmöglichkeiten werden in /usr/share/doc/aptitude/README gelistet. So sucht

aptitude search ~Ddepends:gtk~dscanner'!~dvirus' 

zum Beispiel nach Paketen, die von gtk abhängen und in deren Beschreibung "scanner", aber nicht "virus" vorkommt. Es können also auch Reguläre Ausdrücke zur Suche genutzt werden.

Defekte Pakete reparieren

Wenn ein Paket, das nicht zur separaten Installation gedacht ist, eigentlich weitere Pakete benötigt oder in anderer Weise nicht in die bestehende Installation passt, werden bei der nächsten Verwendung von apt-get "kaputte Pakete" gemeldet. Diese muss man reparieren lassen. Der Befehl

sudo aptitude -f install 

führt entweder zur Installation weiterer Pakete oder zur Entfernung des installierten Pakets. aptitude macht dabei Vorschläge zur Lösung des Problems, die man akzeptieren oder ablehnen kann.

Achtung!

Auch wenn aptitude eine gewisse Intelligenz hat, so ist die erste vorgeschlagene Lösung nicht immer die beste. D.h. man sollte die Vorschläge immer sorgsam lesen und dann entscheiden, ob diese sinnvoll sind oder nicht!

Konfigurationsdaten nachträglich löschen

sudo aptitude purge '~c' 

löscht die Konfigurationsdaten von bereits deinstallierten Paketen.

Tags vergeben

Tags sind zusätzliche Eigenschaften für lokal installierte Pakete. Man kennt das, z.B. zum Kompilieren eines Programms werden viele "-dev"-Pakete benötigt und weil man häufig nicht ganz genau weiß welche, kommen da so einige zusammen. Viele sind anschließend als manuell installiert markiert, so dass sie nicht automatisch wieder entfernt werden und nach erfolgreicher Kompilierung eigentlich unnötig sind. Wenn man den Installationszeitraum noch weiß, kann der Blick ins Log helfen, aber das ist nicht sehr praktisch. Vergibt man aber schon bei der Installation beispielsweise das Tag "<programmname>kompilierung" an die betreffenden Pakete, so sieht man auch im Nachhinein leicht, warum ein bestimmtes Paket installiert wurde, und kann gegebenenfalls alle Pakete mit dem Tag entfernen. Beispiel:

sudo aptitude install --add-user-tag freeorionkompilierung graphviz-dev libalut-dev libboost1.35-dev libdevil-dev liblog4cpp5-dev libsdl-mixer1.2-dev libsdl1.2-dev python2.5-dev 
sudo aptitude remove-user-tag '?user-tag(freeorionkompilierung)' 

Paketzustand speichern oder wiederherstellen

Will man den Zustand aller installierten Pakete zu einem Zeitpunkt speichern oder wiederherstellen, bieten sich die Befehle aptitude-create-state-bundle <Dateiname> bzw. sudo aptitude-run-state-bundle <Dateiname> an.

System auf überflüssige Pakete untersuchen

Aptitude entfernt nicht benötigte Pakete automatisch. Wenn aber nicht nur aptitude zur Paketinstallation verwendet wurde, helfen die Pakete debfoster {de} und deborphan {de}, deren Gebrauch im Debian Anwenderhandbuch {de} beschrieben ist. Das Paket deborphan enthält eine Benutzerschnittstelle (orphaner), die die Bedienung vereinfacht.

Eine Anleitung, wie man ohne eines dieser Programme auskommt, findet sich im Forum {de} .

Automatische Sicherheitsupdates ohne Interaktion

Hier empfiehlt es sich, mit einem Editor [3] folgende neue Textdatei anzulegen:

#! /bin/sh
date >> /var/log/aptitude-security-updates
aptitude update >> /var/log/aptitude-security-updates
aptitude upgrade -y -t jaunty-security >> /var/log/aptitude-security-updates

und diese unter dem Namen aptitude-security-updates im Verzeichnis /etc/cron.daily abzuspeichern. Danach muss man die Ausführrechte mit

chmod 775 aptitude-security-updates 

im Terminal [2] setzen. Zukünftig wird dadurch täglich automatisch auf Sicherheitsupdates überprüft und - falls vorhanden - diese ohne Nachfrage installiert. Protokolliert wird dies in der Datei /var/log/aptitude-security-updates.

Diese Revision wurde am 16. Januar 2010 um 05:13 Uhr von narr erstellt.
Dieser Seite wurden folgende Begriffe zugeordnet: Paketverwaltung, Shell

Passwort vergessen?