navigation Navigation


apt


Das apt Werkzeugt ist ein Paketverwaltungsprogramm, das auf den Debian-basierten Linux-Distributionen (wie Ubuntu, Linux Mint usw.) verwendet wird. Es bietet eine einfache und einheitliche Schnittstelle zum Verwalten von Softwarepaketen, einschließlich Installation, Aktualisierung und Entfernung von Paketen.

apt = Advanced Package Tool

Es arbeitet im Hintergrund mit dpkg zusammen, das die eigentliche Installation und Verwaltung von .deb Paketen übernimmt.

Syntax

apt 
    [-h]
    [-o=config_string]
    [-c=config_file]
    [-t=target_release]
    [-a=architecture] 
    {list |
        search |
        show | 
        update | 
        install pkg [{=pkg_version_number | /target_release}]...  |
        remove pkg...  |
        upgrade |
        full-upgrade |
        edit-sources |
        {-v | --version} |
        {-h | --help}
    }
Parameter
update

Wird verwendet, um Paketinformationen von allen konfigurierten Quellen herunterzuladen. Dies aktualisiert die lokale Paketliste, damit andere Befehle wie upgrade oder install mit den neuesten Informationen arbeiten können.


upgrade

Installiert verfügbare Aktualisierungen für alle derzeit installierten Pakete. Wenn für eine Aktualisierung die Entfernung eines anderen Pakets erforderlich ist, wird die Aktualisierung nicht durchgeführt.


full-upgrade

Führt wie upgrade Aktualisierungen durch, aber es entfernt auch Pakete, falls dies notwendig ist, um die Systemaktualisierung vollständig durchzuführen.


install

Installiert das angegebene Paket.


reinstall

Installiert ein bereits installiertes Paket neu.


remove

Entfernt ein Paket, lässt jedoch Konfigurationsdateien zurück.


purge

Entfernt ein Paket zusammen mit allen zugehörigen Konfigurationsdateien.


autoremove

Entfernt automatisch installierte Pakete, die nicht mehr benötigt werden, da die Abhängigkeiten, für die sie installiert wurden, nicht mehr vorhanden sind.


satisfy

Erfüllt Abhängigkeitsanforderungen, ähnlich wie sie in Build-Depends definiert sind. Es kann auch Konflikte lösen, indem Argumente mit “Conflicts: “ vorangestellt werden.


search

Durchsucht die Liste der verfügbaren Pakete nach einem bestimmten Suchbegriff (Regex). Dies ist nützlich, wenn du nach Paketen mit einer bestimmten Funktionalität suchst.


show

Zeigt detaillierte Informationen über ein angegebenes Paket an, einschließlich Abhängigkeiten, Installationsgröße und anderen relevanten Daten.


list

Listet Pakete auf, die bestimmten Kriterien entsprechen, z. B. installierte Pakete, aktualisierbare Pakete oder alle verfügbaren Versionen.


edit-sources

Ermöglicht das Bearbeiten der sources.list Dateien in einem bevorzugten Texteditor und führt grundlegende Überprüfungen durch, um sicherzustellen, dass keine Fehler vorliegen.


Grundlegende Konzepte und Komponenten

Paketquellen (Respositories)

Software für Debian-basierte Systeme wird nicht einzeln von verschiedenen Websites heruntergeladen, sondern zentral in sogenannten Repositories bereitgestellt.

Repository: Ein Repository ist im Grunde ein Server (oder ein Satz von Servern), der eine strukturierte Sammlung von Softwarepaketen und deren Metadaten (Versionen, Abhängigkeiten etc.) hostet. Debian und Ubuntu organisieren ihre Repositories oft in Komponenten, um die Software nach Lizenz und Supportstatus zu kategorisieren.

  • main: Offiziell unterstützte, freie Software.
  • contrib: Freie Software, die von nicht-freier Software abhängt.
  • non-free: Software, die nicht den Debian Free Software Guidelines entspricht.
  • universe (Ubunut): Von der Community gepflegte, freie Software (kein offizieller Ubuntu-Support).
  • restricted (Ubuntu): Proprietäre Treiber für Geräte.
  • multiverse (Ubuntu): Software mit rechtlichen oder Lizenz-Einschränkungen.

APT muss über die Paketquellen-Konfiguration wissen, wo es nach Paketen suchen soll. Diese Information steht in folgenden Dateien/Ordnern.

  • /etc/apt/sources.list: Die Hauptkonfigurationsdatei, die die URLs der Repositories auflistet.
  • /etc/apt/sources.list.d/: Ein Verzeichnis, das zusätzliche .list-Dateien enthalten kann, oft für Software von Drittanbietern. Dies hält die Hauptdatei übersichtlich.

Sicherheit (GPG-Schlüssel)

Jedes Repository ist normalerweise mit einem GPG-Schlüssel signiert. APT überprüft die Signaturen der heruntergeladenen Paketinformationen, um sicherzustellen, dass sie authentisch sind und nicht manipuliert wurden. Die öffentlichen Schlüssel der vertrauenswürdigen Repositories werden im System gespeichert (typischerweise unter /etc/apt/trusted.gpg.d/).

Pakete

Paket (.deb-Datei): Ein Softwarepaket in Debian-basierten Systemen ist eine Archivdatei (mit der Endung .deb), die alle notwendigen Dateien eines Programms (ausführbare Dateien, Bibliotheken, Konfigurationsdateien, Dokumentation) sowie Metadaten enthält.

Metadaten beschreiben das Paket. Z.B. können folgende Inhalte sein.

  • Name und Version
  • Architektur (amd64, i386, armhf etc.)
  • Beschreibung
  • Maintainer (Person/Team verantwortlich für das Paket)
  • Abhängigkeiten: Andere Pakete, die zwingend benötigt werden, damit dieses Paket funktioniert.
  • Empfehlungen (Recommends): Pakete, die nicht zwingend notwendig sind, aber normalerweise zusammen mit diesem Paket installiert werden sollten. APT installiert diese standardmäßig mit.
  • Vorschläge (Suggests): Pakete, die die Funktionalität erweitern könnten, aber optional sind.
  • Konflikte (Conflicts): Pakete, die nicht gleichzeitig mit diesem Paket installiert sein können.

APT ist dafür verantwortlich, diese Abhängigkeiten zu analysieren und sicherzustellen, dass alle benötigten Pakete in den richtigen Versionen installiert werden.

Grundlegende APT-Befehle

Die meisten apt-Befehle müssen mit administrativen Rechten ausgeführt werden, daher wird sudo vorangestellt.

Paketlisten aktualisieren

sudo apt update

Dieser Befehl lädt die neuesten Paketinformationen (Listen von verfügbaren Paketen, deren Versionen und Abhängigkeiten) von allen in sources.list und sources.list.d/ konfigurierten Repositories herunter. Er speichert diese Informationen lokale (typischerweise in /var/lib/apt/lists).

Dies ist fast immer der erste Schritt, bevor Pakete installiert oder aktualisiert werden. Ohne apt update weiß das System nichts von neuen Versionen oder Paketen, die seit dem letzten Update in den Repositories verfügbar gemacht wurden.


Pakete installieren

Syntax: Ein Paket
sudo apt install <paketname>

Oder mehrere Pakete gleichzeitig (in einem Schritt installieren).

Syntax: Mehrere Pakete
sudo apt install <paket1> <paket2> <paket3>

Dieser Befehl installiert ein oder mehrere neue Pakete auf dem System. APT berechnet automatisch alle notwendigen Abhängigkeiten und fragt, ob diese ebenfalls installiert werden sollen.

Standardmäßig wird die neueste verfügbare Version aus den konfigurierten Quellen installiert, die die Abhängigkeitsanforderungen erfüllt.

Beispiel
sudo apt update
sudo apt install nginx wget

Das obere Beispiel installiert den Webserver Nginx und das Kommandozeilen-Download-Tool wget.

Mit der Option -y kann die Bestätigungsfrage überpringen. Diese Option sollte mit Vorsicht verwendet werden.

Beispiel: -y Option
sudo apt install -y vim

Pakete entfernen

Es gibt zwei Hauptbefehle zum Entfernen von Paketen: remove und purge.

Option: remove

Der nachfolgende Befehl deinstalliert das angegebene Paket, belässt aber dessen systemweite Konfigurationsdateien (oft in /etc). Dies kann nützlich sein, wenn man plant, das Paket später neu zu installieren und die alte Konfiguration wiederverwenden möchte.

Syntax: remove
sudo apt remove <paketname>

Hier ein Beispiel, um Nginx-Server von einem System zu entfernen, während die Konfigurationsdateien verbleiben.

Beispiel: remove
sudo apt remove nginx

Option: purge

Deinstalliert das angegebene Paket einschließlich aller seiner systemweiten Konfigurationsdateien. Dies sorgt für eine gründlichere Entfernung. Benutzerkonfigurationen im Home-Verzeichnis bleiben normalerweise unberührt.

Syntax: purge
sudo apt purge <paketname>

Das nachfolgende Beispiel zeigt eine vollständige Entfernung von Nginx auf einem System.

Beispiel: purge
sudo apt purge nginx

Pakete aktualisieren

Option: upgrade

sudo apt upgrade

Aktualisiert alle installierten Pakete auf die neuesten Versionen, die in den (mit apt update aktualisierten) Paketlisten gefunden werden.

apt upgrade installiert keine neuen Pakete und entfernt keine bestehenden Pakete. Wenn ein Upgrade eines Pakets die Installation eines neuen Pakets oder die Entfernung eines anderen erfordern würde (aufgrund geänderter Abhängigkeiten), wird dieses spezifische Paket nicht aktualisiert. Es wird zurückgehalten.

Typischer Anwendungsfall: Regelmäßige Systemaktualisierung, um Sicherheitsupdates und kleinere Verbesserungen einzuspielen.

Option: full-upgrade

sudo apt full-upgrade

Dieser Befehl führt ebenfalls ein Upgrade aller Pakete durch, ist aber “intelligenter” bei der Handhabung von Abhängigkeitsänderungen.

Im Gegensatz zu apt upgrade kann apt full-upgrade neue Pakete installieren oder bestehende Pakete entfernen, wenn dies notwendig ist, um Abhängigkeitskonflikte aufzulösen und das System auf den neuesten Stand zu bringen.

Typische Anwendungsfälle:

  • Wenn apt upgrade Pakete zurückhält.
  • Bei größeren System-Upgrades, insbesondere beim Wechsel auf eine neue Distributionsversion (z.B. von Ubuntu 22.04 auf 24.04). Hier ist full-upgrade oft notwendig.

Informationen über ein Paket anzeigen

sudo apt show <paketname>

Zeigt detaillierte Informationen über ein Paket an, unabhängig davon, ob es installiert ist oder nicht. Die Informationen stammen aus der lokalen Paketliste (die mit apt update aktualisiert wird).

Angezeigte Informationen können sein:

  • Paketname
  • Version
  • Priorität
  • Sektion
  • Maintainer
  • Installationsgröße
  • Abhängigkeiten
  • Empfehlungen
  • Vorschläge
  • Konflikte
  • Quelle (Repository)
  • Beschreibung
  • und mehr

Nicht mehr benötigte Pakete entfernen

sudo apt autoremove

Diese Anweisung entfernt Pakete, die ursprünglich als Abhängigkeiten für andere Pakete installiert wurden, aber nach dem Entfernen dieser anderen Pakete nicht mehr benötigt werden (sogenannte “verwaiste” Pakete).

Hilft, das System sauber zu halten und Speicherplatz freizugeben. Es ist sicher, diesen Befehl regelmäßig nach dem Deinstallieren von Software auszuführen.

Beispiel-Fall: Wenn Sie programm-a installiert haben, das bibliothek-x als Abhängigkeit benötigte, und Sie später programm-a mit apt remove programm-a entfernen, wird bibliothek-x nicht automatisch entfernt. sudo apt autoremove würde bibliothek-x dann entfernen (vorausgesetzt, kein anderes installiertes Paket benötigt es ebenfalls).


Nach Paketen suchen

sudo apt search <suchbegriff>

Durchsucht die Namen und Beschreibungen aller verfügbaren Pakete (in der lokalen Paketliste) nach dem angegebenen Suchbegriff.

Wenn man den genauen Paketnamen nicht kennt oder Software für einen bestimmten Zweck sucht.

# Sucht nach Paketen, die mit Bildbearbeitung zu tun haben könnten
apt search image editor
# Sucht nach Paketen im Zusammenhang mit dem SSH-Protokoll
apt search ssh client

Installierte Pakete anzeigen

sudo apt list --installed

Zeigt alle, auf dem System, installierten Pakete an.


Aktualisierbare Pakete auflisten

sudo apt list --upgradable