Ubuntu-Paketverwaltung: APT- und dpkg-Cheatsheet

Wichtige APT- & dpkg-Befehle für Ubuntu-Pakete

Das Paketverwaltungssystem von Ubuntu ist das Rückgrat der Softwareinstallation und -wartung und damit essenzielles Wissen für jeden Linux-Nutzer oder Systemadministrator.

tetris Dieses Bild wurde von AI-Modell Flux 1 dev generiert.

Was ist APT-Paketverwaltung?

APT (Advanced Package Tool) ist das primäre Paketverwaltungssystem von Ubuntu, geerbt von Debian. Es ist ein leistungsfähiges Command-Line-Tool zum Installieren, Aktualisieren und Entfernen von Softwarepaketen. APT übernimmt die automatische Abhängigkeitsauflösung, verbindet sich mit den offiziellen Ubuntu-Repositories und ist die traditionelle Methode zur Verwaltung von Systempaketen auf Ubuntu und Debian-basierten Distributionen. Wenn Sie neu bei Ubuntu sind, werfen Sie einen Blick auf unsere Anleitung zum Installieren von Ubuntu 24.04 und nützliche Tools, um mit einem richtig konfigurierten System zu beginnen.

Wichtige Merkmale:

  • Nativer Bestandteil von Ubuntu/Debian: Integriert, keine zusätzliche Installation erforderlich
  • Geteilte Bibliotheken: Effiziente Festplattennutzung durch geteilte Systemabhängigkeiten
  • Manuelle Updates: Sie kontrollieren, wann Pakete aktualisiert werden
  • Keine Sandboxing: Pakete haben vollen Systemzugriff (geeignet für Systemtools)
  • Leichtgewichtig: Kein Hintergrund-Daemon, läuft nur bei Aufruf
  • Ausgereiftes Ökosystem: Jahrzehnte der Entwicklung, extrem stabil

Vergleich der Paketmanager

Ubuntu unterstützt mehrere Paketverwaltungssysteme. Hier ein Vergleich der Hauptoperationen:

Operation APT Snap Flatpak
Suche apt search keyword snap find keyword flatpak search keyword
Installation sudo apt install package sudo snap install package flatpak install flathub app.id
Installierte Liste apt list --installed snap list flatpak list --app
Info anzeigen apt show package snap info package flatpak info app.id
Alles aktualisieren sudo apt update && sudo apt upgrade sudo snap refresh flatpak update
Einzelnes Paket aktualisieren sudo apt install --only-upgrade pkg sudo snap refresh package flatpak update app.id
Entfernen sudo apt remove package sudo snap remove package flatpak uninstall app.id
Aufräumen sudo apt autoremove snap remove --revision=N flatpak uninstall --unused
Repository /etc/apt/sources.list Snap Store (integriert) Hinzufügen mit flatpak remote-add

Schnellvergleich der Funktionen

Funktion APT Snap Flatpak
Automatische Updates Nein Ja Nein
Sandboxing Nein Ja Ja
Abhängigkeiten Systembibliotheken Mitgeliefert Geteilte Laufzeitumgebungen
Paketgröße Klein (5-50MB) Groß (50-500MB) Mittel (20-200MB)
Root-Berechtigung erforderlich Ja Ja Nein (Benutzerinstallation)
Startgeschwindigkeit Schnell Langsamer Schnell
Beste Verwendung Systempakete Universelle Anwendungen Desktop-Anwendungen

Über diese Anleitung

Diese Anleitung konzentriert sich auf APT (apt/apt-get/dpkg) - das traditionelle Paketverwaltungssystem von Ubuntu. APT ist essenziell für die Verwaltung von Systempaketen, Bibliotheken und Diensten auf Ubuntu und Debian-basierten Systemen.

Für andere Paketmanager:

Jeder Paketmanager hat seine Stärken. Verwenden Sie APT für Systempakete und Abhängigkeiten, Snap für plattformübergreifende Kompatibilität und automatische Updates sowie Flatpak für Desktop-Anwendungen mit fein abgestuften Berechtigungen.


APT-Paketverwaltung - Detaillierte Anleitung

APT vs apt-get verstehen

APT (apt) - Moderne Wahl

Eingeführt in Ubuntu 14.04, kombiniert apt Funktionen von apt-get und apt-cache mit einer verbesserten Benutzererfahrung:

Vorteile:

  • Fortschrittsbalken und farbige Ausgabe
  • Intuitivere Befehle
  • Übersichtlichere Ausgabe für menschliche Lesbarkeit
  • Kombination mehrerer Tool-Funktionen

Wann verwenden: Tägliche interaktive Command-Line-Operationen

apt-get - Traditionelle Wahl

Das ursprüngliche Paketverwaltungstool, das weiterhin weit verbreitet ist:

Vorteile:

  • Stabilere API (besser für Skripte)
  • Abwärtskompatibilität
  • Vorhersehbares Ausgabeformat
  • Feinere Kontrolle

Wann verwenden: Shell-Skripte, Automatisierung, Legacy-Systeme

Tipp: Für schnellere Terminal-Navigation und effizientere Arbeitsabläufe werfen Sie einen Blick auf unseren Ubuntu-Tastaturkürzel-Cheatsheet, um Ihre Produktivität bei der Paketverwaltung zu steigern.

Wesentliche Paketverwaltungsbefehle

Aktualisierung der Paketlisten

Aktualisieren Sie immer die Paketlisten vor der Installation oder dem Upgrade:

# Paketindex aktualisieren
sudo apt update

# Oder mit apt-get
sudo apt-get update

Dieser Befehl aktualisiert die lokale Datenbank mit Informationen über verfügbare Pakete und deren Versionen aus den konfigurierten Repositorys.

Installation von Paketen

Grundlegende Installation:

# Einzelnes Paket installieren
sudo apt install paketname

# Mehrere Pakete installieren
sudo apt install paket1 paket2 paket3

# Spezifische Version installieren
sudo apt install paketname=versionsnummer

Beispiele:

# Nginx-Webserver installieren
sudo apt install nginx

# Python und pip installieren
sudo apt install python3 python3-pip

# Build-Essentials installieren
sudo apt install build-essential

# Systemüberwachungstools installieren
sudo apt install htop

Für spezielle Überwachungsanforderungen, wie die Verfolgung der GPU-Leistung auf Systemen mit NVIDIA-Karten, sehen Sie sich unsere Anleitung zu GPU-Überwachungsanwendungen in Linux/Ubuntu an.

Installation ohne Abfragen (nützlich für Skripte):

sudo apt install -y paketname

# Oder
sudo DEBIAN_FRONTEND=noninteractive apt install -y paketname

Installation aus einer .deb-Datei:

# Methode 1: Mit apt (empfohlen, verwaltet Abhängigkeiten)
sudo apt install ./paket.deb

# Methode 2: Mit dpkg
sudo dpkg -i paket.deb
sudo apt install -f  # Fehlende Abhängigkeiten beheben

Hinweis: Wenn Sie mit heruntergeladenen .deb-Dateien arbeiten, möchten Sie möglicherweise einen Dateimanager mit einem guten Kontextmenü verwenden. Sehen Sie sich unseren Vergleich der Dateimanager für Ubuntu 24.04 (Nautilus vs Nemo vs Dolphin vs Caja) an, um einen zu finden, der zu Ihrem Workflow passt.

Upgrade von Paketen

Upgrade installierter Pakete:

# Alle Pakete aktualisieren (sicher, entfernt keine Pakete)
sudo apt upgrade

# Spezifisches Paket aktualisieren
sudo apt install --only-upgrade paketname

# Vollständiges Upgrade (kann Pakete entfernen, um Abhängigkeiten zu lösen)
sudo apt full-upgrade

# Distributions-Upgrade (für Major-Version-Updates)
sudo apt dist-upgrade

Vollständige Update-Sequenz:

# Empfohlenes Update-Verfahren
sudo apt update
sudo apt upgrade -y
sudo apt autoremove
sudo apt autoclean

Upgrade der Ubuntu-Version:

# Für LTS zu nächster LTS
sudo do-release-upgrade

# Für jedes Release-Upgrade
sudo do-release-upgrade -d

Auflistung von Paketen

Liste installierter Pakete:

# Alle installierten Pakete
apt list --installed

# Mit grep-Filter
apt list --installed | grep paketname

# Anzahl installierter Pakete
apt list --installed | wc -l

# Mit dpkg
dpkg -l
dpkg --list
dpkg -l | grep paketname

Liste aktualisierbarer Pakete:

# Pakete mit verfügbaren Updates anzeigen
apt list --upgradable

# Detaillierte Upgrade-Simulation
apt list --upgradable -a

Liste aller verfügbaren Pakete:

# Alle Pakete in Repositorys
apt list

# Liste aus einem bestimmten Repository
apt list | grep "quellenname"

Suche nach Paketen

Suche nach Paketnamen und Beschreibungen:

# Suche mit apt
apt search keyword

# Groß-/Kleinschreibung ignorierende Suche
apt search -i keyword

# Nur Paketnamen anzeigen
apt-cache search keyword

# Nur Paketnamen suchen (schneller)
apt-cache search --names-only keyword

Beispiele:

# Suche nach Editor
apt search text editor

# Suche nach Datenbank
apt search database

# Suche nach Python-Paketen
apt search python | grep python3

Anzeige von Paketinformationen

Detaillierte Paketinformationen:

# Paketdetails anzeigen
apt show paketname

# Mit apt-cache
apt-cache show paketname

# Paketabhängigkeiten anzeigen
apt-cache depends paketname

# Umgekehrte Abhängigkeiten anzeigen
apt-cache rdepends paketname

# Paketrichtlinie und Versionen prüfen
apt-cache policy paketname

# Paketstatistiken anzeigen
apt-cache stats

Prüfen, ob ein Paket installiert ist:

# Methode 1
dpkg -s paketname

# Methode 2
dpkg -l paketname

# Methode 3
apt list --installed paketname

# Methode 4 (Exit-Code 0, wenn installiert)
dpkg-query -W paketname

Entfernen von Paketen

Pakete entfernen:

# Paket entfernen (Konfigurationsdateien behalten)
sudo apt remove paketname

# Paket und Konfigurationsdateien entfernen (löschen)
sudo apt purge paketname

# Mit Abhängigkeiten entfernen
sudo apt autoremove paketname

# Paket und Konfigurationen vollständig entfernen
sudo apt purge paketname && sudo apt autoremove

System bereinigen:

# Nicht verwendete Abhängigkeiten entfernen
sudo apt autoremove

# Mit Löschen
sudo apt autoremove --purge

# Heruntergeladene Paketdateien löschen
sudo apt clean

# Alte Versionen von Paketen löschen
sudo apt autoclean

Plattenspeicher prüfen:

# Cache-Größe prüfen
du -sh /var/cache/apt/archives

# Gesamtpaketgröße prüfen
dpkg-query -Wf '${Installed-Size}\t${Package}\n' | sort -n

Paket-Holds (Upgrades verhindern)

Pakete halten:

# Paket auf aktueller Version halten
sudo apt-mark hold paketname

# Paket freigeben
sudo apt-mark unhold paketname

# Gehaltene Pakete anzeigen
apt-mark showhold

# Mehrere Pakete halten
sudo apt-mark hold paket1 paket2 paket3

Anwendungsfall: Verhindern Sie, dass bestimmte Softwareversionen automatisch aktualisiert werden.

Verwendung von dpkg - Low-Level-Paket-Tool

dpkg ist das zugrunde liegende Paketverwaltungstool, das APT verwendet:

Grundlegende dpkg-Befehle:

# Paket installieren
sudo dpkg -i paket.deb

# Paket entfernen
sudo dpkg -r paketname

# Paket löschen
sudo dpkg -P paketname

# Installierte Pakete auflisten
dpkg -l

# Dateien im Paket auflisten
dpkg -L paketname

# Finden, welches Paket eine Datei besitzt
dpkg -S /pfad/zur/datei

# Paketstatus prüfen
dpkg -s paketname

# Paket neu konfigurieren
sudo dpkg-reconfigure paketname

# Paketintegrität prüfen
dpkg -V paketname

Behebung beschädigter Pakete:

# Beschädigte Pakete neu konfigurieren
sudo dpkg --configure -a

# Fehlende Abhängigkeiten beheben
sudo apt install -f

# Paket erzwingen neu installieren
sudo apt install --reinstall paketname

Repository-Verwaltung

Anzeige von Repositorys

Konfigurierte Repositorys prüfen:

# Quellenliste anzeigen
cat /etc/apt/sources.list

# Zusätzliche Quellen anzeigen
ls /etc/apt/sources.list.d/

# Alle aktivierten Repositorys anzeigen
grep -r --include '*.list' '^deb ' /etc/apt/

Hinzufügen von Repositorys

PPA (Personal Package Archive) hinzufügen:

# PPA-Repository hinzufügen
sudo add-apt-repository ppa:benutzer/ppa-name
sudo apt update

# Beispiel: Git-PPA hinzufügen
sudo add-apt-repository ppa:git-core/ppa
sudo apt update
sudo apt install git

Repository manuell hinzufügen:

# Repository zur sources.list hinzufügen
echo "deb http://repository-url distribution component" | sudo tee -a /etc/apt/sources.list.d/custom.list

# GPG-Schlüssel hinzufügen
wget -qO - https://example.com/key.gpg | sudo apt-key add -

# Paketlisten aktualisieren
sudo apt update

Moderne Schlüsselverwaltung (Ubuntu 22.04+):

# Schlüssel herunterladen und zum Keyring hinzufügen
wget -qO - https://example.com/key.gpg | sudo gpg --dearmor -o /etc/apt/keyrings/custom.gpg

# Signiertes Repository hinzufügen
echo "deb [signed-by=/etc/apt/keyrings/custom.gpg] http://repo-url dist component" | sudo tee /etc/apt/sources.list.d/custom.list

Entfernen von Repositorys

# PPA entfernen
sudo add-apt-repository --remove ppa:benutzer/ppa-name

# Oder die Listendatei löschen
sudo rm /etc/apt/sources.list.d/ppa-name.list

# Aktualisieren
sudo apt update

Alternative Paketmanager

Ubuntu unterstützt auch Snap und Flatpak für universelle Anwendungsverpackung:

  • Snap: Sehen Sie sich unsere umfassende Snap-Paketmanager-Anleitung für detaillierte Informationen zur Installation, Nutzung, Kanäle, Einschränkungen und Fehlerbehebung an.

  • Flatpak: Sehen Sie sich unsere umfassende Flatpak-Paketmanager-Anleitung für detaillierte Informationen zur Installation, Flathub, Berechtigungen, Laufzeiten und Verwaltung an.

Fortgeschrittene Paketverwaltung

Operationen simulieren (Testlauf)

# Installation simulieren
apt install -s paketname

# Upgrade simulieren
apt upgrade -s

# Anzeigen, was installiert würde
apt-cache showpkg paketname

Pakete herunterladen ohne Installation

# Nur Paket herunterladen
apt download paketname

# Mit Abhängigkeiten herunterladen
apt install --download-only paketname

# In ein bestimmtes Verzeichnis herunterladen
cd /pfad/zum/verzeichnis
apt download paketname

Paketdateien finden

# Welches Paket eine Datei bereitstellt
dpkg -S /pfad/zur/datei

# Suche nach Dateien in Paketen (einschließlich nicht installiert)
apt-file search dateiname

# apt-file zuerst installieren
sudo apt install apt-file
sudo apt-file update

Paket-Pinning

Erstellen Sie /etc/apt/preferences, um Paketversionen zu steuern:

# Paket auf eine bestimmte Version pinning
sudo nano /etc/apt/preferences

Fügen Sie hinzu:

Package: paketname
Pin: version 1.2.3*
Pin-Priority: 1001

Paketsicherheitslücken prüfen

# Auf Sicherheitsupdates prüfen
sudo apt list --upgradable | grep security

# Bestimmtes Paket auf CVEs prüfen
apt-cache policy paketname

Fehlerbehebung bei häufigen Problemen

Defekte Pakete reparieren

# Methode 1: Abhängigkeiten reparieren
sudo apt install -f

# Methode 2: Pakete neu konfigurieren
sudo dpkg --configure -a

# Methode 3: Bereinigen und aktualisieren
sudo apt clean
sudo apt update
sudo apt upgrade

# Methode 4: Erzwingene Reparatur
sudo apt --fix-broken install

“Gesperrte” Datenbank reparieren

# Sperrdateien entfernen (nur wenn kein apt-Prozess läuft!)
sudo rm /var/lib/dpkg/lock-frontend
sudo rm /var/lib/dpkg/lock
sudo rm /var/cache/apt/archives/lock
sudo dpkg --configure -a

Zuerst laufende Prozesse überprüfen:

ps aux | grep -i apt
sudo lsof /var/lib/dpkg/lock-frontend

Hash-Summen-Fehler

# Cache bereinigen und erneut versuchen
sudo apt clean
sudo rm -rf /var/lib/apt/lists/*
sudo apt update

GPG/Schlüssel-Fehler

# Schlüssel erneut hinzufügen
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys KEY_ID

# Oder Schlüssel herunterladen
wget -qO - https://repo-url/key.gpg | sudo apt-key add -

# Moderne Methode (Ubuntu 22.04+)
wget -qO - https://repo-url/key.gpg | sudo gpg --dearmor -o /etc/apt/keyrings/repo.gpg

Unbefriedigte Abhängigkeiten

# aptitude versuchen (besserer Abhängigkeitslöser)
sudo apt install aptitude
sudo aptitude install package-name

# Oder manuelle Lösung
sudo apt install package-name package-dependency

Repository nicht gefunden (404)

# Auf korrektes Repository aktualisieren
sudo nano /etc/apt/sources.list

# Alten Releasename durch aktuellen ersetzen
# Oder veraltetes PPA entfernen
sudo add-apt-repository --remove ppa:name/ppa

Beste Praktiken

Regelmäßige Wartung

Wöchentliche Routine:

#!/bin/bash
# Systemaktualisierungsskript

echo "Paketlisten werden aktualisiert..."
sudo apt update

echo "Pakete werden aktualisiert..."
sudo apt upgrade -y

echo "Nicht mehr benötigte Pakete werden entfernt..."
sudo apt autoremove -y

echo "Paketcache wird bereinigt..."
sudo apt autoclean

echo "Aktualisierung abgeschlossen!"

Sicherheitsupdates

Automatische Updates für Sicherheitspatches:

# unattended-upgrades installieren
sudo apt install unattended-upgrades

# Konfigurieren
sudo dpkg-reconfigure unattended-upgrades

# Konfiguration bearbeiten
sudo nano /etc/apt/apt.conf.d/50unattended-upgrades

Serverkonfiguration: Wenn Sie einen Ubuntu-Server verwalten, ist eine ordnungsgemäße Netzwerkkonfiguration für zuverlässige Paketherunterladungen und Systemaktualisierungen unerlässlich. Erfahren Sie wie Sie eine statische IP-Adresse in Ubuntu Server ändern, um eine stabile Konnektivität für Ihre Paketverwaltungsvorgänge sicherzustellen.

Paketliste sichern

Installierte Pakete exportieren:

# Sicherung erstellen
dpkg --get-selections > ~/package-list.txt

# Oder mit explizit installierten Paketen
apt-mark showmanual > ~/manually-installed.txt

# Auf einem anderen System wiederherstellen
sudo dpkg --set-selections < ~/package-list.txt
sudo apt-get dselect-upgrade

Systemzustand überprüfen

# Auf defekte Abhängigkeiten prüfen
sudo apt check

# Alle Pakete verifizieren
sudo debsums -c

# Systemprotokolle überprüfen
journalctl -xe | grep -i apt
tail -f /var/log/apt/history.log

Leistungsoptimierung

Schnellere Paketherunterladungen

Parallelherunterladungen aktivieren:

Datei /etc/apt/apt.conf.d/99parallel bearbeiten:

echo 'Acquire::Queue-Mode "host";' | sudo tee /etc/apt/apt.conf.d/99parallel
echo 'Acquire::http::Pipeline-Depth "5";' | sudo tee -a /etc/apt/apt.conf.d/99parallel

Schnellsten Spiegel verwenden:

# apt-fast installieren
sudo add-apt-repository ppa:apt-fast/stable
sudo apt update
sudo apt install apt-fast

# apt-fast statt apt verwenden
sudo apt-fast install package-name

Cache-Größe reduzieren

# Cache auf 100MB begrenzen
echo 'APT::Archives::MaxSize "100";' | sudo tee /etc/apt/apt.conf.d/99max-cache

Nützliche Paketverwaltungsskripte

Alle Paketmanager aktualisieren

#!/bin/bash
# Alle Paketmanager aktualisieren

echo "=== APT-Aktualisierung ==="
sudo apt update && sudo apt upgrade -y

echo "=== Snap-Aktualisierung ==="
sudo snap refresh

echo "=== Flatpak-Aktualisierung ==="
flatpak update -y

echo "Alle Systeme aktualisiert!"

Große Pakete finden

# Größte installierte Pakete auflisten
dpkg-query -Wf '${Installed-Size}\t${Package}\n' | sort -nr | head -20

# Oder lesbares Format
dpkg-query -Wf '${Installed-Size}\t${Package}\n' | sort -nr | head -20 | awk '{printf "%.2f MB\t%s\n", $1/1024, $2}'

Paketaudit

#!/bin/bash
# Paketsystemaudit

echo "=== Systempaketstatistiken ==="
echo "Installierte Pakete: $(dpkg -l | grep ^ii | wc -l)"
echo "Aktualisierbare Pakete: $(apt list --upgradable 2>/dev/null | grep -c upgradable)"
echo "Gesperrte Pakete: $(apt-mark showhold | wc -l)"
echo "Automatisch entfernbar: $(apt autoremove --dry-run | grep -Po '^\d+')"
echo "Cache-Größe: $(du -sh /var/cache/apt/archives | cut -f1)"

Schnellreferenz-Cheatsheet

Wesentliche Befehle:

# Aktualisieren & Aktualisieren
sudo apt update && sudo apt upgrade -y

# Paket installieren
sudo apt install package-name

# Paket entfernen
sudo apt remove package-name

# Paket suchen
apt search keyword

# Paketinformationen anzeigen
apt show package-name

# Installierte Pakete auflisten
apt list --installed

# System bereinigen
sudo apt autoremove && sudo apt autoclean

# Defekte Pakete reparieren
sudo apt install -f && sudo dpkg --configure -a

Fazit

Die Beherrschung des Paketverwaltungssystems von Ubuntu ist für eine effiziente Systemverwaltung unerlässlich. Ob Sie den modernen apt-Befehl für interaktive Sitzungen, apt-get für Skripte oder universelle Pakete mit Snap und Flatpak verwenden, das Verständnis dieser Tools hilft Ihnen, ein sicheres, aktuelles und gut organisiertes Ubuntu-System zu erhalten.

Beginnen Sie mit den grundlegenden Befehlen, integrieren Sie nach und nach fortgeschrittene Techniken und halten Sie Ihr System immer auf dem neuesten Stand. Regelmäßige Wartung in Kombination mit bewährten Verfahren gewährleistet ein reibungsloses und zuverlässiges Ubuntu-Erlebnis.

Professioneller Tipp: Führen Sie immer sudo apt update aus, bevor Sie Pakete installieren oder aktualisieren, um sicherzustellen, dass Sie mit den neuesten Paketinformationen arbeiten!

Verwandte Artikel auf dieser Seite