===== dpkg (Debian Package Manager) =====
dpkg ist das Low-Level-Paketverwaltungstool für Debian-basierte Distributionen (Debian, Ubuntu, Linux Mint).
==== Grundlagen ====
* Arbeitet direkt mit .deb-Paketen
* Führt keine automatische Abhängigkeitsauflösung durch
* Paketdatenbank in `/var/lib/dpkg/`
* Wird von höheren Tools wie APT genutzt
==== Wichtige Befehle ====
# Installation und Entfernung
sudo dpkg -i .deb # Paket installieren (install)
sudo dpkg -r # Paket entfernen (remove)
sudo dpkg -P # Paket vollständig entfernen inkl. Konfiguration (purge)
# Installation reparieren (nach fehlgeschlagener Installation)
sudo apt-get install -f # Abhängigkeiten nachinstallieren
sudo dpkg --configure -a # Nicht konfigurierte Pakete konfigurieren
# Installation ohne Abhängigkeitsprüfung (Vorsicht!)
sudo dpkg -i --force-depends .deb
==== Paketinformationen abfragen ====
# Installierte Pakete
dpkg -l # Alle installierten Pakete auflisten (list)
dpkg -l | grep # Nach installiertem Paket suchen
dpkg -l # Status eines Pakets anzeigen
dpkg -s # Detaillierte Paketinformationen (status)
dpkg -L # Dateien eines installierten Pakets auflisten (List files)
dpkg -p # Paketinformationen anzeigen (print-avail)
# Paketdateien (.deb) abfragen
dpkg -I .deb # Info aus DEB-Datei (Info)
dpkg -c .deb # Dateien in DEB-Datei auflisten (contents)
dpkg --info .deb # Ausführliche Informationen
# Dateien und Pakete
dpkg -S # Welches Paket enthält diese Datei (Search)
dpkg -S # Mit vollständigem Pfad
dpkg -S $(which ) # Paket zu einem Befehl finden
==== Paketstatus und -konfiguration ====
# Paketstatus
dpkg --get-selections # Alle Pakete mit Status auflisten
dpkg --get-selections | grep
dpkg-query -W -f='${Status}\n' # Status eines bestimmten Pakets
# Paket-Holds (vor Updates schützen)
echo " hold" | sudo dpkg --set-selections # Paket halten
echo " install" | sudo dpkg --set-selections # Hold aufheben
dpkg --get-selections | grep hold # Gehaltene Pakete anzeigen
# Konfiguration
sudo dpkg-reconfigure # Paket neu konfigurieren
==== Verifizierung und Prüfung ====
# Paket-Integrität prüfen
dpkg -V # Paket verifizieren (verify)
debsums # Checksummen prüfen (debsums muss installiert sein)
debsums -c # Nur geänderte Dateien anzeigen
# Paket-Architektur
dpkg --print-architecture # System-Architektur anzeigen
dpkg --print-foreign-architectures # Fremd-Architekturen (z.B. i386 auf amd64)
==== Erweiterte Verwaltung ====
# Paketinhalt extrahieren
dpkg-deb -x .deb # Dateien extrahieren
dpkg-deb -e .deb # Kontroll-Informationen extrahieren
ar x .deb # DEB-Archiv entpacken
# Paketdatenbank
ls -l /var/lib/dpkg/ # Datenbank-Verzeichnis
cat /var/lib/dpkg/status # Installierte Pakete (Datenbank)
ls /var/lib/dpkg/info/ # Paketinformationen
# Verfügbare Pakete durchsuchen
dpkg-query -l '**' # Pakete nach Muster suchen
==== Paketabhängigkeiten ====
# Abhängigkeiten anzeigen
dpkg -s | grep Depends # Abhängigkeiten eines installierten Pakets
dpkg -I .deb | grep Depends # Abhängigkeiten einer DEB-Datei
# Reverse Dependencies (welche Pakete brauchen dieses)
apt-cache rdepends # APT verwenden für reverse dependencies
==== DEB-Pakete erstellen ====
# Paket bauen
dpkg-deb --build # DEB-Paket aus Verzeichnis erstellen
dpkg-deb -b .deb
# Paket-Informationen prüfen
dpkg-deb --info .deb
dpkg-deb --contents .deb
lintian .deb # Paket auf Fehler prüfen (lintian muss installiert sein)
==== Multiarch-Unterstützung ====
# Fremd-Architekturen verwalten
sudo dpkg --add-architecture i386 # i386-Pakete auf 64-Bit-System ermöglichen
sudo dpkg --remove-architecture i386 # i386-Unterstützung entfernen
dpkg --print-foreign-architectures # Konfigurierte Fremd-Architekturen
==== Weitere Informationen ====
man dpkg
man dpkg-deb
man dpkg-query
man dpkg-reconfigure
dpkg --help
==== Siehe auch ====
* [[sammlung:apt|APT]] (High-Level Paketmanager für Debian/Ubuntu)
* [[sammlung:rpm|RPM]] (Red Hat-Äquivalent)
* [[sammlung:paketverwaltung|Paketverwaltung Übersicht]]
----
{{tag>cli package management deb basics, advanced}}
----