# Advanced Packaging Tool

Das Advanced Packaging Tool (APT) ist ein Paketverwaltungssystem, das im Bereich des Betriebssystems Debian entstanden ist und dpkg zur eigentlichen Paketverwaltung benutzt. Ziel ist es, eine einfache Möglichkeit zur Suche, Installation und Aktualisierung von Programmpaketen zur Verfügung zu stellen. APT besteht aus einer Programmbibliothek und mehreren diese Bibliothek nutzenden Kommandozeilen-Programmen, von denen apt-get und apt-cache zentral sind.
APT steht auch in OpenSolaris zur Verfügung (es wurde in die Distribution Nexenta OS aufgenommen) und wurde auch auf macOS portiert, wo es im Rahmen des Fink-Projektes zur Installation von Debian-Softwarepaketen genutzt wird.

## Interna

In der Datei /etc/apt/sources.list stehen die sogenannten Repositories, also Quellen für Pakete. Dies können entweder CDs oder DVDs, Verzeichnisse auf der Festplatte oder, öfter, Verzeichnisse auf HTTP- oder FTP-Servern sein. Befindet sich das gesuchte Paket auf einem Server (oder einem lokalen Datenträger), so wird dieses automatisch heruntergeladen und installiert.
Die Pakete liegen im Debian-Paketformat (.deb) vor, in dem auch die jeweiligen Abhängigkeiten der Programmpakete untereinander abgelegt sind. So werden automatisch für ein Programm auch eventuell erforderliche Programmbibliotheken mit heruntergeladen und installiert.
APT setzt auf dpkg auf. APT beschäftigt sich in erster Linie mit der Beschaffung von Paketen, dem Vergleich von verfügbaren Versionen der Pakete und der Verwaltung von Paket-Archiven.

## Anwendungsbeispiele

* apt-get install paketname installiert ein Paket und sämtliche Abhängigkeiten und in der Standardeinstellung zusätzlich empfohlene Pakete (engl. recommends).
* apt-get remove paketname entfernt ein vorhandenes Paket und die Pakete, die von diesem abhängen. Abhängigkeiten dieser Pakete oder Konfigurationsdateien werden jedoch nicht entfernt.
* apt-get --purge remove paketname entfernt ein Paket und die Konfigurationsdateien.
* apt-get upgrade bringt, sofern möglich, alle Pakete auf den neuesten Stand, installiert jedoch keine neuen Pakete (was evtl. nötig ist, um das System aktuell zu halten, falls sich Abhängigkeiten geändert haben)
* apt-get dist-upgrade bringt alle Pakete auf den neuesten Stand und installiert bei Bedarf neue Pakete oder entfernt Pakete, die mit den zu installierenden Paketen in Konflikt stehen.
* apt-get update holt die neuesten Informationen über Pakete vom Debian-Server.
* apt-get source paketname holt den Quelltext des Paketes vom Debian-Server in das aktuelle Verzeichnis.
* apt-cache search suchwort sucht nach Programmen.
* zum Finden von Programmen oder Dateien in noch nicht installierten Paketen kann das separate Tool apt-file oder auch dpkg -L verwendet werden
Will der Benutzer beispielsweise Gnome installieren:

## Frontends

apt-get war das erste Frontend – befehlszeilenbasiert – das innerhalb des Projekts entwickelt wurde. apt ist ein zweites Kommandozeilen-basiertes Frontend von APT, das einige Designfehler von apt-get überwindet. Daneben gibt es weitere Frontends für die Paketverwaltung, die APT verwenden. Aptitude bietet eine zeichenorientierte Benutzerschnittstelle. Synaptic ist ein GUI-Frontend für die Desktop-Umgebung. Unter KDE stehen außerdem die Programme Adept oder KPackageKit zur Verfügung. Letzteres unterstützt neben APT zusätzlich weitere Systeme wie RPM. Mit der auf der Abstraktionsschicht QApt aufbauenden Muon Package Management Suite sind daneben auch weitere GUI-Frontends in der Entwicklung.
Smart Package Manager kann ebenfalls auf Repositories zugreifen, die für APT erstellt wurden. Er nutzt dabei aber nicht APT, sondern eigene Routinen.
Mit Fink und Cydia stehen Frontends für macOS und dessen Derivate zur Verfügung.

## APT-RPM

Obwohl ursprünglich für Debian-Programmpakete geschrieben, wurde APT später auch auf RPM-Systeme portiert. Gustavo Niemeyer führte die Portierung für die Linux-Distribution Conectiva durch und pflegte diese geraume Zeit als Maintainer. Inzwischen arbeitet er aber hauptsächlich an seinem neuen Projekt Smart Package Manager, und APT-RPM wird von anderen Entwicklern gepflegt und weiterentwickelt.

## Apt-cacher und apt-proxy

Wer mehrere Rechner mit einer APT-basierten Paketverwaltung im Netz hat, kann sein Netz und die Server, die die Pakete zur Verfügung stellen, erheblich entlasten, indem er eines dieser Programme einsetzt. Im Gegensatz zu weniger spezifischen Proxyservern wie etwa Squid, die nur die in den Übertragungsprotokollen enthaltenen Informationen verwenden können, kennen und verwerten diese Proxys die Paket-Struktur und sichern die Aktualität ihrer gespeicherten Daten entsprechend. Apt-cacher kann so eingestellt werden, dass er sich in regelmäßigen Abständen automatisch aktualisiert.

## apt-offline

Mit apt-offline besteht die Möglichkeit, apt auch auf PCs ohne Internet-Anbindung zu benutzen.
Mit apt-offline können sogenannte Signatur-Dateien erstellt werden, die eine Art Liste von offline verfügbaren Paketen darstellt. Auf einem Rechner mit Internet-Anbindung werden alle neuen Pakete und Updates in einem ZIP-Archiv abgelegt. Auf dem Offline-Rechner können dann wiederum die Pakete im normalen apt-Cache eingehängt werden.