Der folgende Text stammt aus dem »Debian GNU/Linux Guide« von John Goerzen und Ossama Othman. Ins Deutsche übersetzt von Michael »grisu« Bramer. Der Text steht unter der GNU General Public License.
APT (»Advanced Package Tool«)
Eine Beschreibung der einfachen Kommandozeilenprogramme apt-cache und apt-get.
apt-cache
Mit apt-cache kann man die APT-Datenbank abfragen und zum Beispiel nach Paketen suchen oder die verfügbaren Versionen eines Paketes anzeigen lassen.
Da der Befehl apt-cache verschiedenste Sachen machen kann, muss nach diesem Befehl angegeben werden, welche Aktion durchgeführt werden soll. Hinter dieser Aktion kommen dann oft noch weitere Angaben, wie Paketnamen oder Suchbegriffe.
Im Folgenden werden die wichtigsten Aktionen für einen normalen Benutzer von apt-cache vorgestellt.
search
Mit dem Befehl search werden alle Pakete gesucht, in denen die Begriffe, die hinter search stehen, enthalten sind. Dabei durchsucht apt-cache die Paketnamen und die Paketbeschreibungen.
konsolero@nitidelo ~ $ apt-cache search samba
Gibt zum Beispiel eine Liste aller Pakete inklusive Kurzbeschreibung aus, die das Wort »samba« im Namen oder in der Beschreibung enhalten. Mit der Option --names-only werden nur die Paketnamen durchsucht und die Option --full gibt nicht nur die Kurzbeschreibung, sondern alle Informationen zu den Paketen aus.
Du siehst schon, man kann mit diesem Befehl ideal nach Paketen suchen.
show
Der Befehl show zeigt alle Informationen zu den Paketen, die nach dem Wort show angegeben wurden. Neben der Beschreibung sieht man auch die anderen Informationen wie die Abhängigkeiten, den Paket-Maintainer, die Priority des Pakets usw.
policy
Oft gibt es von einem Paket mehrere Versionen in den Debian-Archiven. Vor allem wenn man neben »stable« noch andere Distributionen in der Datei /etc/apt/sources.list eingetragen hat.
Durch den Befehl policy erhält man eine einfache Übersicht aller verfügbaren Versionen eines Pakets, die installierte Version und die Version, die bei einem apt-get install installiert würde.
apt-get
apt-get ist ein sehr einfaches Frontend zu APT. Dabei wird, neben möglichen Optionen, ein Kommando hinter dem Befehl apt-get angegeben. Dieses Kommando sagt, so wie auch bei apt-cache, was genau apt-get machen soll.
Ein enfaches apt-get-Kommando ist install, mit dem Pakete installiert werden können:
root # apt-get install less
Hiermit wird apt-get aufgefordert, das Paket less zu installieren. apt-get besorgt dabei die erforderlichen Pakete mithilfe von APT von den in /etc/apt/sources.list angegebenen Quellen und installiert diese dann.
Die weiteren Kommandos von apt-get zeigt die folgende Übersicht:
update
Der Befehl update lädt die Beschreibungen der verfügbaren Pakete (die Packages.gz-Files) in das System. Dadurch stehen diese Pakete anschließend allen APT-Frontends zur Verfügung.
Diesen Befehl solltest du immer ausführen, bevor du neue Pakete mit apt-get installierst. Natürlich ist dieser Befehl nur dann erforderlich, wenn du die Quellen (in sources.list) geändert hast oder vermutest, dass sich die Pakete und Paketlisten geändert haben. Wenn du Pakete aus der »testing«-Distribution oder gar aus der aktuellen Entwicklerversion »unstable« benutzen möchtest, ändern sich die Paketlisten täglich.
Unterschätze bitte die Länge dieser Dateien nicht. Auch wenn sie gepackt sind, haben sie doch einen Umfang von über 2 MB. Über ISDN dauert das Update dieser Paketlisten daher schon einige Zeit.
upgrade
Mit upgrade werden alle Pakete, die momentan installiert sind, aktualisiert. Dabei werden aber auf keinen Fall Pakete gelöscht, die bislang installiert waren. Es werden auch nur die Pakete zusätzlich installiert, die tatsächlich erforderlich sind.
Wenn es Pakete gibt, die nicht aktualisiert werden können, ohne den Status eines anderen Pakets zu ändern (löschen oder neu installieren), dann werden diese Pakete von der Aktualisierung ausgeschlossen.
Mit der Option -s kann man anzeigen lassen, was apt-get machen würde. Auch kann man mit der Option -d nur die Debian-Pakete herunterladen, ohne sie sofort zu installieren.
install
Mit install werden einzelne Pakete neu installiert. Gib als zusätzliche Argumente einfach die Namen der gewünschten Pakete an:
root # apt-get install mutt xplanet pingus
Die benötigten Pakete werden anschließend geladen und installiert. Dabei wird nicht nur das angegebene Paket installiert, sondern zusätzlich alle weiteren, mit denen es zusammenhängt und die gebraucht werden.
Dabei auftretende Konflikte werden »intelligent« gelöst. Wenn Sie ein »-« (Minus) an den Namen eines Paket anhängen, wird dieses Paket aus dem System gelöscht. Auf diese Weise kannst du den Algorithmus zur Konfliktlösung von apt-get steuern.
Neben »-« kann man auch noch weitere Angaben hinter den Paketnamen anfügen. Damit kann man zum Beispiel vorgeben, aus welcher Debian-Distribution das Paket kommen soll oder welche Version des Pakets installiert werden soll.
Wenn man Konflikte selber nicht auflösen kann und man immer Fehlermeldungen bekommt, kann man mit der Option -f das Problem von apt-get lösen lassen (»fix«). Durch die Option --reinstall kann man ein Paket auch nochmals installieren, wenn dieses schon installiert wurde. Das kann auch sinnvoll sein, wenn man mal aus Versehen eine Datei aus einem Paket gelöscht hat.
Mit der Option -s kann man anzeigen lassen, was apt-get machen würde. Außerdem kann man mit der Option -d nur die Debian-Pakete herunterladen, ohne sie auch sofort zu installieren.
remove
Wie bei install können mit diesem Komando einzelne Pakete gelöscht werden. Pakete, die vom zu löschenden Paket abhängen, werden natürlich auch entfernt. Achte daher bitte auf die Ausgaben von apt-get.
Mit der Option --purge werden (analog zum Befehl dpkg) auch die Konfigurationsdateien der Pakete vom System entfernt.
check
check überprüft die Installation auf defekte Pakete.
dist-upgrade
dist-upgrade funktioniert ähnlich wie upgrade. Alle Pakete, die momentan installiert sind, werden auf den neuesten Stand gebracht. Zusätzlich werden wechselnde Abhängigkeiten »intelligent« gehandhabt. Bei Konflikten versucht apt-get, die wichtigsten Pakete auf Kosten weniger wichtiger Pakete zu aktualisieren.
Auch hier sind die Option -s und -d möglich.
dselect-upgrade
Das Kommando dselect-upgrade wird vom traditionellen »Frondend« dselect benutzt. Es beobachtet die Änderungen, die dselect durchgeführt hat, und installiert oder löscht die gewünschten Pakte.
Damit kann man auch über dpkg --set-selection den Status von einzelnen Paketen vorgeben beziehungsweise ändern und diesen danach per apt-get dselect-upgrade durchführen lassen.
clean
Dieser Befehl löscht die auf der Festplatte zwischengespeicherten Pakete. Alle Pakete, die mit apt-get installiert wurden, sind vorher auf das lokale System geladen und im Verzeichnis /var/cache/apt/archives gespeichert worden. Das kann unter Umständen ziemlich viel Platz verschlingen. Daher ist es empfehlenswert, nach größeren Installationsvorgängen
konsolero@nitidelo ~ $ apt-get clean
aufzurufen. Wenn dselect mit der apt-Methode aufgerufen wird, ist dies nicht erforderlich. Siehe auch den Befehl autoclean.
autoclean
Wie clean löscht auch autoclean den lokalen Festplattencache. Dieses apt-get-Kommando löscht nur Pakete, die nicht mehr auf den Debian-Quellen verfügbar sind.
Dadurch kann man den Cache über einen längeren Zeitraum beibehalten, ohne dass er unkontrolliert wächst.
source
Mit dem Kommando source kann man mit apt-get die Quellen einzelner Pakete installieren.
Mit der Option -b kann man diese Quellen auch sofort auf dem lokalen System übersetzen lassen. Das ist vor allem dann sinnvoll, wenn man ein Paket aus der Debian-Entwicklerdistribution haben möchte, dieses aber neuere Libraries benötigt, als auf Ihrem System vorhanden sind. Statt jetzt alle Ihre Libraries inklusive aller Pakete zu aktualisieren, können Sie oft das neue Paket einfach mit Ihren älteren Dateien neu übersetzen.
build-dep
Wenn du ein Paket auf deinem System neu übersetzen willst (zum Beispiel mit der -b-Option bei source), brauchst du für diese Übersetzung häufig bestimmte Pakete, damit die Übersetzung überhaupt möglich ist.
Seit längerer Zeit wird bei Debian vor dem Bau eines Pakets überprüft, ob alle diese »Build Dependencies« erfüllt sind. Mit apt-get build-dep werden alle diese Abhängigkeiten von den angegebenen Paketen installiert. Danach sollte die Übersetzung des Pakets kein Problem sein.
Als kleine versteckte Option haben die Entwickler auch noch ein sogenanntes »Easter-Egg« eingebaut:
konsolero@nitidelo ~ $ apt-get moo
