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:
- Der Benutzer startet ein APT-Frontend wie
apt,apt-getoder Synaptic. - APT liest lokale Paketlisten und die Konfiguration der Paketquellen.
- APT berechnet eine passende Lösung für Abhängigkeiten, Versionen und Konflikte.
- APT lädt benötigte Paketdateien aus einem Repository.
- dpkg entpackt und konfiguriert die Pakete auf dem System.
- 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.
| Werkzeug | Hauptzweck | Typische Verwendung | Zielgruppe |
|---|---|---|---|
apt | Gebündelte interaktive Bedienung | Suchen, Installieren, Aktualisieren, Entfernen | Benutzer und Administratoren |
apt-get | Installations- und Verwaltungsaktionen | Skripte, reproduzierbare Abläufe, Administration | Administratoren und Skriptautoren |
apt-cache | Abfragen der lokalen Paketdatenbank | Suche und Anzeige von Paketmetadaten | Benutzer und Administratoren |
dpkg | Low-Level-Verwaltung lokaler Debian-Pakete | Status prüfen, Pakete konfigurieren | Fortgeschrittene Benutzer |
aptitude | Konsolenorientiertes APT-Frontend | Interaktive Paketverwaltung im Terminal | Benutzer, die eine textbasierte Oberfläche bevorzugen |
| Synaptic | Grafische Paketverwaltung | Paketlisten durchsuchen und Aktionen markieren | Benutzer 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
| Aktion | Programmpaket entfernt | Konfiguration entfernt | Abhängigkeiten betroffen | Typischer Einsatzfall |
|---|---|---|---|---|
remove | Ja | Normalerweise nein | Direkt angegebene Abhängigkeiten bleiben meist erhalten | Programm entfernen, Einstellungen zunächst behalten |
purge | Ja | Ja, soweit vom Paket verwaltet | Keine automatische Komplettbereinigung aller Abhängigkeiten | Programm und systemweite Paketkonfiguration entfernen |
autoremove | Ja, für ausgewählte Pakete | Je nach Paketstatus möglich | Entfernt automatisch installierte, nicht mehr benötigte Abhängigkeiten | Verwaiste 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
autoremovedas 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
| Ziel | Befehl | Wirkung | Hinweis |
|---|---|---|---|
| Paketlisten aktualisieren | sudo apt update | Lokale Informationen aus Quellen neu laden | Ändert installierte Pakete nicht |
| Paket suchen | apt search suchbegriff | Namen und Beschreibungen durchsuchen | Suchbegriff ist kein exakter Name |
| Paketinformationen anzeigen | apt show paketname | Metadaten und Status anzeigen | Exakten Paketnamen verwenden |
| Paket installieren | sudo apt install paketname | Paket und erforderliche Abhängigkeiten installieren | Änderungsvorschlag vorher lesen |
| Updates anzeigen | apt list --upgradable | Aktualisierbare installierte Pakete auflisten | Erfordert aktuelle Paketlisten |
| Pakete aktualisieren | sudo apt upgrade | Updates ohne notwendige Paketentfernungen installieren | Pakete können zurückgehalten werden |
| Umfassend aktualisieren | sudo apt full-upgrade | Abhängigkeiten mit möglicher Änderung des Paketbestands auflösen | Entfernungsliste besonders prüfen |
| Paket entfernen | sudo apt remove paketname | Programm entfernen, Konfiguration meist behalten | Persönliche Dateien bleiben grundsätzlich unberührt |
| Paket vollständig entfernen | sudo apt purge paketname | Programm und Paketkonfiguration entfernen | Benutzerdateien nicht automatisch eingeschlossen |
| Nicht benötigte Abhängigkeiten entfernen | sudo apt autoremove | Automatisch installierte verwaiste Pakete bereinigen | Vorschlag vor der Bestätigung prüfen |
Der sichere Arbeitsablauf
- Quellen prüfen: Verwenden Sie nur zur Distribution und Version passende, vertrauenswürdige Quellen.
- Paketlisten aktualisieren: Führen Sie
sudo apt updateaus und lesen Sie Fehler. - Recherchieren: Suchen Sie nach dem exakten Paketnamen und prüfen Sie
apt showoderapt policy. - Änderungen ansehen: Kontrollieren Sie bei Installation, Upgrade oder Entfernung die Liste der zusätzlichen, zu aktualisierenden oder zu entfernenden Pakete.
- Aktion ausführen: Bestätigen Sie nur einen nachvollziehbaren Vorschlag mit
sudo. - 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äche | Bedienart | Technische Grundlage | Bemerkung |
|---|---|---|---|
apt und apt-get | Terminal | APT-Bibliotheken und dpkg | Geeignet für direkte Befehle und Administration |
apt-cache | Terminal | Lokale APT-Paketdatenbank | Recherche, keine normale Installationsoberfläche |
aptitude | Textbasiert, interaktiv | APT und dpkg | Konsolenorientiertes Frontend mit eigener Bedienoberfläche |
| Synaptic | Grafisch | GTK-basierte APT-Oberfläche | Pakete markieren, Details prüfen und Aktionen gesammelt ausführen |
| Software-Center-Anwendungen | Grafisch | Distributions- und desktopabhängige Backend-Anbindung | Ubuntu Software Center beziehungsweise moderne Software-Anwendungen können zusätzliche Paketformate einblenden |
| KDE-Paketverwaltungen | Grafisch | Distributionsabhängige Paketverwaltung | KPackage 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 updateaktualisiert. apt searchsucht nach Begriffen, währendapt showDetails zu einem konkreten Paketnamen anzeigt.apt upgradevermeidet notwendige Paketentfernungen;apt full-upgradedarf für Abhängigkeiten Pakete hinzufügen oder entfernen.removelässt Paketkonfiguration normalerweise bestehen,purgeentfernt sie, undautoremovebereinigt 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.