Linux Deutsch

APT: Paketverwaltung unter Debian und Ubuntu

Lernen Sie APT, dpkg, Paketquellen und wichtige Befehle für Installation, Updates, Entfernung, Abhängigkeiten und sichere Paketverwaltung unter Debian und Ubuntu kennen.

APT ist die zentrale Paketverwaltung vieler Debian-basierter Linux-Systeme, darunter Debian, Ubuntu und verwandte Distributionen. Mit APT finden, installieren, aktualisieren und entfernen Sie Software kontrolliert. Gleichzeitig prüft APT Abhängigkeiten, Paketversionen und Paketquellen.

Diese Anleitung setzt grundlegende Terminalbedienung, Dateipfade und den Umgang mit sudo voraus. Eine Einführung in Linux finden Sie in Einführung in Linux; Grundlagen zu Berechtigungen erklärt der Beitrag Arten von Zugriffsrechten.

Was ist Paketverwaltung?

Eine Paketverwaltung organisiert Software als installierbare Einheiten. Sie hilft dabei, Programme zu finden, ihre Dateien korrekt abzulegen, notwendige Zusatzpakete zu installieren und installierte Software auf einem konsistenten Stand zu halten.

Ein Paket ist eine installierbare Softwareeinheit. Ein Debian-Paket enthält typischerweise:

  • Programmdateien und Bibliotheken,
  • Konfigurationsdateien oder Vorlagen,
  • Metadaten wie Name, Version, Beschreibung und Lizenz,
  • Informationen über erforderliche, empfohlene oder inkompatible Pakete,
  • Skripte, die beispielsweise Dienste einrichten oder nach einer Installation aufräumen.

Eine Abhängigkeit ist ein zusätzlich benötigtes Paket oder eine erforderliche Versionsbedingung. Installieren Sie beispielsweise ein Programm, das eine bestimmte Bibliothek benötigt, sorgt APT normalerweise dafür, dass diese Bibliothek ebenfalls installiert wird.

APT, dpkg und die Paketquellen

dpkg ist das grundlegende Low-Level-Werkzeug der Debian-Paketverwaltung. Es kann lokale Paketdateien im Debian-Format installieren, Dateien entfernen und den Installationsstatus verwalten. dpkg löst jedoch Paketabhängigkeiten nicht selbstständig über ein Repository auf.

APT steht für Advanced Packaging Tool. APT ist keine einzelne Anwendung, sondern eine Verwaltungsschicht aus Bibliotheken und Programmen. Sie nutzt dpkg für die eigentliche Installation auf Systemebene, übernimmt aber zusätzlich die Auswahl von Versionen, den Abruf aus Quellen und die Auflösung von Abhängigkeiten.

Vereinfacht sieht der Ablauf so aus:

  1. Der Benutzer startet ein APT-Frontend wie apt, apt-get oder Synaptic.
  2. APT liest lokale Paketlisten und die Konfiguration der Paketquellen.
  3. APT berechnet eine passende Lösung für Abhängigkeiten, Versionen und Konflikte.
  4. APT lädt benötigte Paketdateien aus einem Repository.
  5. dpkg entpackt und konfiguriert die Pakete auf dem System.
  6. APT aktualisiert den Paketstatus und meldet das Ergebnis.

Ein Repository oder eine Paketquelle ist ein Server beziehungsweise ein Verzeichnis mit Paketdateien und signierten Paketmetadaten. Die Quellen werden unter anderem in /etc/apt/sources.list und in Dateien unter /etc/apt/sources.list.d/ festgelegt.

APT speichert lokal einen Index der aus diesen Quellen verfügbaren Pakete. Dieser Index enthält beispielsweise Namen, Versionen, Beschreibungen und Abhängigkeitsinformationen. Die lokalen Listen sind nicht automatisch immer aktuell. Deshalb muss vor einer Suche oder Installation häufig apt update ausgeführt werden.

Diese drei Zustände sollten Sie unterscheiden:

  • Installierte Pakete: Sie befinden sich bereits auf dem System.
  • Verfügbare Pakete: Sie sind in den lokalen Paketlisten aus konfigurierten Quellen bekannt, aber nicht zwingend installiert.
  • Aktualisierbare Pakete: Eine neuere passende Version ist verfügbar als die derzeit installierte Version.

Mehr zum grundlegenden Werkzeug finden Sie unter Paketverwaltung mit dpkg.

Die wichtigsten APT-Werkzeuge

Für interaktive Arbeiten ist heute meist apt die übersichtliche Wahl. apt-get und apt-cache bleiben wichtige, verbreitete Werkzeuge. Sie sind besonders in Skripten, dokumentierten Administrationsabläufen und älteren Anleitungen anzutreffen.

WerkzeugHauptzweckTypische VerwendungZielgruppe
aptGebündelte interaktive BedienungSuchen, Installieren, Aktualisieren, EntfernenBenutzer und Administratoren
apt-getInstallations- und VerwaltungsaktionenSkripte, reproduzierbare Abläufe, AdministrationAdministratoren und Skriptautoren
apt-cacheAbfragen der lokalen PaketdatenbankSuche und Anzeige von PaketmetadatenBenutzer und Administratoren
dpkgLow-Level-Verwaltung lokaler Debian-PaketeStatus prüfen, Pakete konfigurierenFortgeschrittene Benutzer
aptitudeKonsolenorientiertes APT-FrontendInteraktive Paketverwaltung im TerminalBenutzer, die eine textbasierte Oberfläche bevorzugen
SynapticGrafische PaketverwaltungPaketlisten durchsuchen und Aktionen markierenBenutzer mit grafischer Oberfläche

Bei Skripten ist apt-get häufig geeigneter, weil es für administrative Kommandozeilenabläufe ausgelegt ist. Für manuelle Eingaben bietet apt meist verständlichere Ausgaben und bündelt häufig benötigte Funktionen. Eine ausführliche Befehlsübersicht bietet apt-get; die Recherche mit apt-cache wird dort separat behandelt.

Paketlisten aktualisieren und Pakete suchen

Der Befehl apt update aktualisiert nicht die installierten Programme. Er lädt die Paketinformationen aus allen konfigurierten Quellen neu:

sudo apt update

sudo führt den Befehl mit administrativen Rechten aus. Geben Sie Ihr Passwort nur in der echten Passwortabfrage Ihres Systems ein. Ein Passwort wird im Terminal normalerweise nicht durch Sternchen angezeigt.

Nach der Aktualisierung können Sie nach einem Namen oder einem Begriff in Namen und Beschreibungen suchen:

apt search editor
apt-cache search bildbearbeitung

Der Suchbegriff ist nicht dasselbe wie ein exakter Paketname. apt search editor kann viele Treffer liefern, weil APT auch Beschreibungen durchsucht. Für die Installation verwenden Sie anschließend den konkreten Namen, etwa:

sudo apt install nano

Details zu einem bekannten Paket zeigt apt show:

apt show nano

Die Ausgabe kann unter anderem Version, Architektur, Quelle, Beschreibung, Abhängigkeiten, Empfehlungen und Installationsstatus enthalten. Die klassische Variante lautet:

apt-cache show nano

Wenn Sie wissen möchten, welche installierten Pakete aktualisiert werden können, verwenden Sie:

apt list --upgradable

Eine leere Liste bedeutet nicht zwingend, dass ein Paketname falsch ist. Möglicherweise sind alle installierten Pakete aktuell oder die Paketlisten wurden noch nicht aktualisiert.

Pakete installieren

Ein einzelnes Paket installieren Sie mit:

sudo apt install nano

Mehrere Pakete können Sie in einem Aufruf angeben:

sudo apt install git curl vim

APT berechnet vor der Änderung, welche zusätzlichen Pakete benötigt werden. Es kann sich dabei um Abhängigkeiten handeln, die für die Funktion des gewünschten Programms erforderlich sind. Lesen Sie die Zusammenfassung und bestätigen Sie erst danach.

Vor einer Installation können Sie den geplanten Vorgang simulieren. Die genaue Ausgabe hängt von der Distribution und der APT-Version ab:

apt install --simulate paketname

Eine bestimmte Version lässt sich installieren, wenn diese Version in den konfigurierten Quellen verfügbar ist:

apt policy paketname
sudo apt install paketname=versionsnummer

Mit apt policy sehen Sie installierte und verfügbare Versionen sowie deren Quellen. Eine Versionsangabe aus einer beliebigen Anleitung darf nicht blind übernommen werden: Sie muss zu Distribution, Version und Architektur passen.

Pakete aktualisieren

Eine kontrollierte Systemaktualisierung besteht grundsätzlich aus zwei Schritten:

sudo apt update
apt list --upgradable
sudo apt upgrade

Der erste Befehl aktualisiert die Paketlisten. Der zweite zeigt die möglichen Updates. Der dritte installiert verfügbare Aktualisierungen.

apt upgrade aktualisiert Pakete, führt dabei aber keine erforderlichen Paketentfernungen durch. Pakete können deshalb zurückgehalten werden, wenn ihre Aktualisierung eine Änderung des Paketbestands erfordern würde.

apt full-upgrade darf für die Auflösung komplexerer Abhängigkeiten neue Pakete installieren oder vorhandene Pakete entfernen. Das kann bei größeren Aktualisierungen notwendig sein, erhöht aber die Bedeutung einer sorgfältigen Kontrolle:

sudo apt full-upgrade

Vor größeren Aktualisierungen sollten Sie freie Speicherkapazität, wichtige Sicherungen und die Herkunft Ihrer Paketquellen prüfen. Auf produktiven Systemen empfiehlt sich ein Testlauf oder ein Wartungsfenster. Achten Sie besonders darauf, ob Kernpakete, Desktop-Komponenten oder wichtige Dienste entfernt werden sollen.

Pakete entfernen und bereinigen

Mit remove entfernen Sie die Programmdateien eines Pakets. Systemweite Konfigurationsdateien bleiben normalerweise erhalten:

sudo apt remove paketname

Mit purge entfernen Sie zusätzlich die vom Paket verwalteten systemweiten Konfigurationsdateien:

sudo apt purge paketname

Benutzerspezifische Einstellungen in Ihrem persönlichen Home-Verzeichnis werden durch remove oder purge nicht automatisch vollständig gelöscht. Prüfen Sie daher die Dokumentation der jeweiligen Anwendung, wenn auch persönliche Daten entfernt werden sollen.

Pakete, die APT automatisch als Abhängigkeiten installiert hat und die inzwischen nicht mehr benötigt werden, können mit autoremove bereinigt werden:

sudo apt autoremove

Lesen Sie vor der Bestätigung die vollständige Liste. Wenn ein wichtiges Programm oder eine zentrale Desktop-Komponente entfernt werden soll, brechen Sie ab und untersuchen Sie den Grund. Ein benötigtes Paket können Sie gegebenenfalls ausdrücklich als manuell installiert markieren:

sudo apt-mark manual paketname
AktionProgrammpaket entferntKonfiguration entferntAbhängigkeiten betroffenTypischer Einsatzfall
removeJaNormalerweise neinDirekt angegebene Abhängigkeiten bleiben meist erhaltenProgramm entfernen, Einstellungen zunächst behalten
purgeJaJa, soweit vom Paket verwaltetKeine automatische Komplettbereinigung aller AbhängigkeitenProgramm und systemweite Paketkonfiguration entfernen
autoremoveJa, für ausgewählte PaketeJe nach Paketstatus möglichEntfernt automatisch installierte, nicht mehr benötigte AbhängigkeitenVerwaiste Abhängigkeiten bereinigen

Abhängigkeiten, Empfehlungen, Konflikte und Paketstatus

Eine Abhängigkeit ist eine technische Voraussetzung. Eine Empfehlung ist ein zusätzliches Paket, das die Funktion oder den Komfort verbessern kann, aber nicht immer zwingend erforderlich ist. Ein Konflikt beschreibt Pakete oder Versionen, die nicht gemeinsam installiert werden können.

Ein virtuelles Paket ist kein einzelnes Paket mit eigenen Dateien, sondern ein bereitgestellter Paketname oder eine Schnittstelle. Mehrere reale Pakete können dieselbe Funktion bereitstellen. APT kann dann ein passendes Paket auswählen.

Konflikte entstehen beispielsweise durch inkompatible Versionen, gemischte Quellen oder unterschiedliche Paketstände. Eine Paketquelle für eine andere Distribution oder Version kann Abhängigkeiten liefern, die nicht zu Ihrem System passen. Auch Fremdquellen können Aktualisierungen blockieren oder unerwartete Paketversionen bevorzugen.

APT unterscheidet außerdem zwischen manuell und automatisch installierten Paketen:

  • Manuell installiert: Sie oder ein Administrator haben das Paket ausdrücklich angefordert. Es wird nicht einfach als überflüssig betrachtet, nur weil kein anderes Paket mehr davon abhängt.
  • Automatisch installiert: APT hat es als Abhängigkeit für ein anderes Paket installiert. Wird dieses Hauptpaket entfernt und gibt es keine weitere Verwendung, kann autoremove das Paket vorschlagen.

Den Status einzelner Pakete können Sie mit dpkg prüfen:

dpkg -l paketname
dpkg --audit

dpkg --audit sucht nach Paketen mit unvollständigem oder fehlerhaftem Installationsstatus. Wurde eine Installation unterbrochen, hilft häufig:

sudo dpkg --configure -a

Dieser Befehl konfiguriert bereits entpackte, aber noch nicht vollständig konfigurierte Pakete. Lesen Sie die konkrete Fehlermeldung. Erzwingen Sie keine Paketaktion, wenn dadurch weitere Kernpakete entfernt oder ein unklarer Konflikt verschärft werden könnte.

Paketquellen konfigurieren

Die zentrale Datei für Paketquellen ist häufig /etc/apt/sources.list. Zusätzliche Quellen liegen typischerweise in Dateien unter /etc/apt/sources.list.d/:

sudoedit /etc/apt/sources.list
ls /etc/apt/sources.list.d/

Eine Quellenzeile beschreibt normalerweise einen Repository-Typ, eine Quelle, eine Distributionsversion und einen oder mehrere Bereiche. Häufige Bereiche sind beispielsweise:

  • main: der zentrale, von der Distribution bereitgestellte Bereich,
  • contrib: Pakete, die zusätzliche oder nicht vollständig freie Bestandteile voraussetzen können,
  • non-free: Pakete mit Lizenzbedingungen außerhalb des vollständig freien Kernbereichs,
  • universe und multiverse: zusätzliche Ubuntu-Bereiche mit distributionsspezifischer Bedeutung.

Die genaue Einteilung und Bezeichnung ist distributionsabhängig. Quelle, Distributionsversion, Architektur und Paketbereiche müssen zusammenpassen. Eine Quelle für eine andere Ubuntu- oder Debian-Version zu verwenden, kann Abhängigkeiten und Systemaktualisierungen beschädigen.

Repository-Metadaten sollten signiert sein. APT prüft Signaturen und verwendet dafür vertrauenswürdige Schlüssel. Bei Signatur- oder Schlüsselproblemen sollten Sie die betroffene Quelle identifizieren und ihre Herkunft prüfen. Deaktivieren Sie veraltete oder nicht benötigte Fremdquellen, statt Sicherheitsprüfungen zu umgehen oder einen unbekannten Schlüssel global zu vertrauen.

Nach jeder Änderung an den Quellen prüfen Sie die Konfiguration:

sudo apt update

Lesen Sie dabei alle Warnungen und Fehler. Eine erfolgreiche Installation ist kein Beweis dafür, dass eine Quelle sicher oder langfristig kompatibel ist.

Häufige APT-Aktionen im Überblick

ZielBefehlWirkungHinweis
Paketlisten aktualisierensudo apt updateLokale Informationen aus Quellen neu ladenÄndert installierte Pakete nicht
Paket suchenapt search suchbegriffNamen und Beschreibungen durchsuchenSuchbegriff ist kein exakter Name
Paketinformationen anzeigenapt show paketnameMetadaten und Status anzeigenExakten Paketnamen verwenden
Paket installierensudo apt install paketnamePaket und erforderliche Abhängigkeiten installierenÄnderungsvorschlag vorher lesen
Updates anzeigenapt list --upgradableAktualisierbare installierte Pakete auflistenErfordert aktuelle Paketlisten
Pakete aktualisierensudo apt upgradeUpdates ohne notwendige Paketentfernungen installierenPakete können zurückgehalten werden
Umfassend aktualisierensudo apt full-upgradeAbhängigkeiten mit möglicher Änderung des Paketbestands auflösenEntfernungsliste besonders prüfen
Paket entfernensudo apt remove paketnameProgramm entfernen, Konfiguration meist behaltenPersönliche Dateien bleiben grundsätzlich unberührt
Paket vollständig entfernensudo apt purge paketnameProgramm und Paketkonfiguration entfernenBenutzerdateien nicht automatisch eingeschlossen
Nicht benötigte Abhängigkeiten entfernensudo apt autoremoveAutomatisch installierte verwaiste Pakete bereinigenVorschlag vor der Bestätigung prüfen

Der sichere Arbeitsablauf

  1. Quellen prüfen: Verwenden Sie nur zur Distribution und Version passende, vertrauenswürdige Quellen.
  2. Paketlisten aktualisieren: Führen Sie sudo apt update aus und lesen Sie Fehler.
  3. Recherchieren: Suchen Sie nach dem exakten Paketnamen und prüfen Sie apt show oder apt policy.
  4. Änderungen ansehen: Kontrollieren Sie bei Installation, Upgrade oder Entfernung die Liste der zusätzlichen, zu aktualisierenden oder zu entfernenden Pakete.
  5. Aktion ausführen: Bestätigen Sie nur einen nachvollziehbaren Vorschlag mit sudo.
  6. Ergebnis kontrollieren: Achten Sie auf Fehlermeldungen, Rückfragen, nicht konfigurierte Pakete und Dienste, die neu gestartet werden müssen.

Übernehmen Sie keine Drittanbieter-Anleitung blind. Besonders riskant sind Befehle, die fremde Quellen hinzufügen, Signaturprüfungen deaktivieren oder Paketdateien aus unbekannter Herkunft installieren. Sichern Sie wichtige Daten vor größeren Änderungen und testen Sie Aktualisierungen auf produktiven Systemen nach Möglichkeit zunächst in einer vergleichbaren Testumgebung.

Grafische und textbasierte Frontends

Ein APT-Frontend ist eine alternative Oberfläche für dieselbe Paketverwaltung. Die Bedienung kann grafisch oder textbasiert erfolgen; Quellen, Paketlisten und der zugrunde liegende Paketstatus bleiben dabei grundsätzlich dieselben.

OberflächeBedienartTechnische GrundlageBemerkung
apt und apt-getTerminalAPT-Bibliotheken und dpkgGeeignet für direkte Befehle und Administration
apt-cacheTerminalLokale APT-PaketdatenbankRecherche, keine normale Installationsoberfläche
aptitudeTextbasiert, interaktivAPT und dpkgKonsolenorientiertes Frontend mit eigener Bedienoberfläche
SynapticGrafischGTK-basierte APT-OberflächePakete markieren, Details prüfen und Aktionen gesammelt ausführen
Software-Center-AnwendungenGrafischDistributions- und desktopabhängige Backend-AnbindungUbuntu Software Center beziehungsweise moderne Software-Anwendungen können zusätzliche Paketformate einblenden
KDE-PaketverwaltungenGrafischDistributionsabhängige PaketverwaltungKPackage und vergleichbare Werkzeuge sind nicht auf jeder aktuellen Installation verfügbar

Synaptic eignet sich besonders, wenn Sie viele Paketmarkierungen, Versionen und Abhängigkeiten in einer Übersicht untersuchen möchten. Moderne Software-Anwendungen sind oft einfacher zugänglich, können aber neben APT auch Snap, Flatpak oder andere Quellen anzeigen. Prüfen Sie deshalb, welches Paketformat tatsächlich installiert wird.

Typische Fehler und sichere Lösungen

„Paket wurde nicht gefunden“

  • Aktualisieren Sie die Paketlisten mit sudo apt update.
  • Prüfen Sie den Namen mit apt search suchbegriff; Suchbegriff und exakter Paketname sind verschieden.
  • Kontrollieren Sie, ob der benötigte Paketbereich aktiviert ist.
  • Prüfen Sie, ob die Quellen zur Distribution, Version und Architektur passen.

Verwenden Sie nicht einfach eine beliebige Fremdquelle als Lösung. Eine passende und vertrauenswürdige Quelle ist wichtiger als ein schneller Treffer.

Nicht erfüllbare Abhängigkeiten oder zurückgehaltene Pakete

Ursachen können gemischte Quellen, eine teilweise Aktualisierung, inkompatible Versionen oder Paketkonflikte sein. Prüfen Sie zunächst den geplanten Änderungsvorschlag, die Quellen und den Paketstatus. Entfernen Sie keine Pakete und erzwingen Sie keine Installation, solange die Ursache unklar ist.

apt policy paketname
dpkg --audit

Unterbrochene dpkg-Operation

Nach einem Stromausfall, Prozessabbruch oder Fehler während der Konfiguration kann dpkg einen unvollständigen Status melden. Lesen Sie die genaue Ausgabe und führen Sie gegebenenfalls aus:

sudo dpkg --configure -a

Bewerten Sie anschließend erneut die ausstehenden APT-Aktionen. Beenden Sie laufende Paketoperationen nicht unnötig.

Signatur- oder Schlüsselprobleme

Identifizieren Sie die betroffene Quelle anhand der APT-Ausgabe. Prüfen Sie ihre Herkunft, Aktualität und Konfiguration. Deaktivieren Sie eine nicht mehr benötigte oder nicht vertrauenswürdige Quelle. Signaturprüfungen dürfen nicht durch globale Vertrauensschalter umgangen werden.

autoremove schlägt wichtige Pakete vor

Lesen Sie die komplette Liste und brechen Sie ab, wenn Kernprogramme, der Desktop oder andere benötigte Komponenten betroffen sind. Prüfen Sie, warum ein Paket als automatisch installiert markiert wurde, und setzen Sie ein weiterhin benötigtes Paket bei Bedarf mit apt-mark manual auf manuell.

Praxisabläufe

Einen Editor suchen und installieren

sudo apt update
apt search editor
apt show nano
apt install --simulate nano
sudo apt install nano

Die Suche liefert mögliche Treffer. Mit apt show prüfen Sie Beschreibung, Version und Abhängigkeiten. Die Simulation zeigt den Änderungsvorschlag, bevor die Installation tatsächlich beginnt.

Eine regelmäßige Aktualisierung durchführen

sudo apt update
apt list --upgradable
sudo apt upgrade

Wenn Pakete zurückgehalten werden oder eine größere Abhängigkeitsänderung erforderlich ist, untersuchen Sie zunächst die Ausgabe. Verwenden Sie full-upgrade erst, wenn die möglichen Installationen und Entfernungen nachvollziehbar sind.

Ein Programm vollständig entfernen

sudo apt purge paketname
sudo apt autoremove

Entscheiden Sie bewusst, ob die systemweite Konfiguration wirklich gelöscht werden soll. Prüfen Sie auch beim anschließenden autoremove jedes vorgeschlagene Paket.

Prüfungsrelevante Zusammenfassung

  • APT ist die höhere Paketverwaltungsschicht für Debian-basierte Systeme; dpkg übernimmt die Low-Level-Installation.
  • Ein Repository liefert signierte Paketlisten und Paketdateien. Die lokalen Paketlisten werden mit apt update aktualisiert.
  • apt search sucht nach Begriffen, während apt show Details zu einem konkreten Paketnamen anzeigt.
  • apt upgrade vermeidet notwendige Paketentfernungen; apt full-upgrade darf für Abhängigkeiten Pakete hinzufügen oder entfernen.
  • remove lässt Paketkonfiguration normalerweise bestehen, purge entfernt sie, und autoremove bereinigt verwaiste automatisch installierte Abhängigkeiten.
  • Vor jeder administrativen Aktion müssen Quellen, Änderungsvorschlag und Terminalausgabe geprüft werden.
  • Signaturprüfungen dürfen nicht umgangen werden. Fremdquellen müssen zur Distribution passen und vertrauenswürdig sein.

APT verbindet komfortable Paketverwaltung mit einer konsistenten Beziehung zwischen Paketquellen, lokalen Metadaten, Abhängigkeiten und dpkg. Wer zuerst die Paketlisten aktualisiert, Änderungen prüft und erst dann mit sudo bestätigt, kann die meisten alltäglichen Verwaltungsaufgaben sicher und nachvollziehbar durchführen.