Kurz gesagt: Um eine .deb-Datei unter Ubuntu zu installieren, öffne ein Terminal in dem Ordner, in dem die Datei liegt, und führe sudo apt install ./name.deb aus. apt installiert das Paket und holt jede Abhängigkeit, die es auflistet, aus den Paketquellen von Ubuntu. Das ./ ist wichtig: Ohne Pfad sucht apt in seinen Paketquellen nach einem Paket, das wörtlich name.deb heißt, und bricht mit Unable to locate package ab.
cd ~/Downloads
sudo apt install ./mytool_1.4.2_amd64.debDie Ausgaben von apt und dpkg auf dieser Seite stammen von einem kleinen Testpaket, gebaut und geprüft unter Debian 12 (dpkg 1.21.23, apt 2.6.1) und in ein Wegwerf-Verzeichnis statt in ein laufendes System installiert. Ubuntu nutzt dieselben beiden Programme, die Befehle sind dort also identisch. Mit deutscher Spracheinstellung erscheinen die Meldungen von apt und dpkg auf Deutsch; LC_ALL=C vor dem Befehl zeigt die englischen Originale, nach denen sich leichter suchen lässt.
Spickzettel
| Aufgabe | Befehl |
|---|---|
| Installieren, mit Abhängigkeiten | sudo apt install ./app.deb |
| Mehrere Dateien auf einmal installieren | sudo apt install ./*.deb |
| Vorschau, was passieren würde | apt install -s ./app.deb |
| Mit dpkg installieren, dann Abhängigkeiten reparieren | sudo dpkg -i app.deb; sudo apt --fix-broken install |
| Name, Version und Abhängigkeiten anzeigen | dpkg -I app.deb |
| Die enthaltenen Dateien auflisten | dpkg -c app.deb |
| Nur den Paketnamen ausgeben | dpkg-deb -f app.deb Package |
| Installiert, und in welcher Version? | dpkg -s NAME |
| Dateien, die es installiert hat | dpkg -L NAME |
| Entfernen | sudo apt remove NAME |
| Entfernen samt Konfigurationsdateien | sudo apt purge NAME |
| Abhängigkeiten entfernen, die nichts mehr braucht | sudo apt autoremove |
sudo apt install ./datei.deb: die Methode der Wahl
Gib apt etwas, das wie ein Pfad aussieht, also einen Schrägstrich enthält, und es behandelt das Argument als Datei statt als Paketnamen: ./app.deb, ~/Downloads/app.deb und /tmp/app.deb funktionieren alle. apt liest die Abhängigkeiten aus der Datei, findet sie in deinen eingerichteten Paketquellen und installiert alles in der richtigen Reihenfolge. Mehrere Dateien auf einmal (sudo apt install ./*.deb) sind der Weg, um ein Programm zu installieren, das ein Hersteller auf mehrere voneinander abhängige Pakete aufteilt.
Erst eine Vorschau mit -s
-s simuliert den ganzen Lauf, ohne etwas zu ändern, und braucht kein sudo. Beim Testpaket, das von jq abhängt:
The following additional packages will be installed:
jq libjq1
The following NEW packages will be installed:
jq libjq1 mytool
0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.
Inst libjq1 (1.6-2.1+deb12u3 Debian-Security:12/oldstable-security [amd64])
Inst jq (1.6-2.1+deb12u3 Debian-Security:12/oldstable-security [amd64])
Inst mytool (1.4.2 local-deb [amd64])
Conf libjq1 (1.6-2.1+deb12u3 Debian-Security:12/oldstable-security [amd64])
Conf jq (1.6-2.1+deb12u3 Debian-Security:12/oldstable-security [amd64])
Conf mytool (1.4.2 local-deb [amd64])local-deb markiert die Datei, die du angegeben hast; die beiden anderen Pakete kommen aus dem Archiv der Distribution (unter Ubuntu nennen die Zeilen stattdessen das Ubuntu-Release). Der echte Lauf gibt denselben Plan aus, fragt Do you want to continue? [Y/n], wenn er zusätzliche Pakete braucht, und lädt dann herunter und installiert. Ubuntu 26.04 und Debian 13 liefern APT 3 aus, das dieselben Informationen in einem neuen Layout zeigt, unter Überschriften wie Installing: und Installing dependencies:.
Der Hinweis „Download is performed unsandboxed“
N: Download is performed unsandboxed as root as file '/root/mytool_1.4.2_amd64.deb' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied)Harmlos. apt liest Dateien normalerweise über einen Benutzer _apt ohne Root-Rechte, der ein privates Verzeichnis wie /root oder einen Home-Ordner mit engen Rechten nicht öffnen kann. Also liest apt die Datei stattdessen als root und macht weiter. Die Installation läuft trotzdem durch. Leg die Datei vor der Installation nach /tmp, und der Hinweis verschwindet.
dpkg -i: der Low-Level-Weg und wie du aufräumst, was er hinterlässt
dpkg ist das Werkzeug unter apt. Es installiert genau die Datei, die du ihm gibst, und lädt nie etwas herunter. Ein Paket mit fehlender Abhängigkeit wird deshalb entpackt, aber nicht eingerichtet:
Selecting previously unselected package mytool.
Preparing to unpack mytool_1.4.2_amd64.deb ...
Unpacking mytool (1.4.2) ...
dpkg: dependency problems prevent configuration of mytool:
mytool depends on libfoo2 (>= 2.0); however:
Package libfoo2 is not installed.
dpkg: error processing package mytool (--install):
dependency problems - leaving unconfigured
Errors were encountered while processing:
mytooldpkg -l mytool zeigt jetzt den Status iU: entpackt, nicht konfiguriert. apt verweigert jede weitere Installation, bis das geklärt ist, und nennt dir die Lösung selbst:
sudo apt --fix-broken install # dasselbe wie: sudo apt -f installapt installiert entweder die fehlenden Abhängigkeiten und schließt die Konfiguration ab, oder es bietet an, das halb installierte Paket zu entfernen, wenn es die Abhängigkeiten nirgends findet. Lies die angezeigte Liste, bevor du mit Y antwortest. Wurde dpkg selbst mittendrin unterbrochen (eine abgerissene SSH-Sitzung, ein Neustart), ist der Fehler ein anderer; Hilfe dazu gibt es unter dpkg was interrupted (engl.). Heute ist dpkg -i vor allem sinnvoll, um eine Reihe von Dateien auf einem Rechner ohne Netzwerkzugang zu installieren; überall sonst erledigt apt install ./ dieselbe Arbeit und kümmert sich um die Abhängigkeiten.
gdebi und das App Center
gdebi ist ein kleiner Installer für lokale .deb-Dateien. Wie apt löst er Abhängigkeiten aus deinen Paketquellen auf; anders als dpkg -i prüft er sie, bevor er das System anfasst, und verweigert die Installation gleich, wenn sie sich nicht erfüllen lassen, statt ein halb installiertes Paket zu hinterlassen. Seit apt lokale Dateien installieren kann, ist er vor allem eine Frage der Gewohnheit:
sudo apt install gdebi-core
sudo gdebi mytool_1.4.2_amd64.debUnter Ubuntu Desktop 24.04 öffnet das App Center seit einem Update im Juli 2024 wieder lokale .deb-Dateien: Öffne die Datei per Rechtsklick mit dem App Center, und es warnt vor der Installation, dass das Paket von einem Drittanbieter stammt. Öffnet ein Doppelklick stattdessen die Archivverwaltung, nimm den Terminal-Befehl oben.
Vor der Installation in eine .deb hineinschauen
Eine .deb ist ein Archiv aus zwei Teilen: Steuerdaten (Name, Version, Abhängigkeiten, Skripte) und die Dateien selbst. dpkg liest beides, ohne etwas zu installieren:
new Debian package, version 2.0.
size 1132 bytes: control archive=620 bytes.
320 bytes, 11 lines control
114 bytes, 2 lines md5sums
81 bytes, 4 lines * postinst #!/bin/sh
Package: mytool
Version: 1.4.2
Architecture: amd64
Maintainer: Example Vendor <packages@example.com>
Installed-Size: 12
Depends: jq (>= 1.6)
Section: utils
Priority: optional
Homepage: https://example.com/mytool
Description: example command-line tool
A small example package used to show how dpkg inspects a .deb file.- Architecture muss zu deinem System passen, das
dpkg --print-architectureausgibt:amd64auf x86-64-PCs und -Servern,arm64auf 64-Bit-ARM.allheißt, das Paket läuft überall. - Depends nennt, was apt zusätzlich installiert.
- postinst (und
preinst,prerm,postrm, falls vorhanden) sind Maintainer-Skripte. dpkg führt sie bei Installation und Entfernung als root aus.
drwxr-xr-x root/root 0 2026-10-21 12:22 ./
drwxr-xr-x root/root 0 2026-10-21 12:22 ./usr/
drwxr-xr-x root/root 0 2026-10-21 12:22 ./usr/bin/
-rwxr-xr-x root/root 30 2026-10-21 12:22 ./usr/bin/mytool
drwxr-xr-x root/root 0 2026-10-21 12:22 ./usr/share/
drwxr-xr-x root/root 0 2026-10-21 12:22 ./usr/share/doc/
drwxr-xr-x root/root 0 2026-10-21 12:22 ./usr/share/doc/mytool/
-rw-r--r-- root/root 8 2026-10-21 12:22 ./usr/share/doc/mytool/copyrightUm die Skripte zu lesen oder das Programm ohne Installation auszuprobieren, entpacke die Teile:
dpkg-deb -e mytool_1.4.2_amd64.deb control/ # Steuerdatei und Maintainer-Skripte
cat control/postinst
dpkg-deb -x mytool_1.4.2_amd64.deb files/ # die Dateien, ohne etwas zu installierenPrüfen, woher die Datei stammt
- Von der Website des Herstellers herunterladen oder von der offiziellen Release-Seite des Projekts, über HTTPS, nicht von einer Mirror-Seite oder aus einem Forenanhang.
- Die Prüfsumme vergleichen, wenn der Hersteller eine veröffentlicht:
sha256sum app.debgibt den Hash zum Vergleich mit bloßem Auge aus, und mit der Prüfsummendatei des Herstellers daneben antwortetsha256sum -c SHA256SUMS --ignore-missingmitapp.deb: OKoderFAILED. Signiert der Hersteller diese Datei auch, prüfe die Signatur mitgpg --verifygegen seinen veröffentlichten Schlüssel. - Sicherstellen, dass es überhaupt ein Paket ist.
file app.debsollteDebian binary packagemelden; ein Download-Link, der einen Browser braucht, kann dir eine HTML-Seite unter einem.deb-Namen hinterlassen.
Warum eine Paketquelle besser ist als eine heruntergeladene .deb
Ein aus einer Datei installiertes Paket hängt an keiner Quelle, apt upgrade aktualisiert es also nie. apt policy macht das sichtbar: Der einzige Ort, aus dem es das Paket kennt, ist die eigene Statusdatei von dpkg.
mytool:
Installed: 1.4.2
Candidate: 1.4.2
Version table:
*** 1.4.2 100
100 /var/lib/dpkg/statusPrüfe deshalb vor jedem Download, ob Ubuntu das Programm schon als Paket anbietet (apt policy NAME, apt search NAME) und ob der Hersteller eine APT-Paketquelle bereitstellt; mit der Paketquelle bekommst du dasselbe Programm plus seine Updates. Manche Herstellerpakete richten ihre Paketquelle bei der Installation selbst ein (das von Google Chrome tut es), sieh also danach in /etc/apt/sources.list.d/ nach: Ist dort eine neue Datei aufgetaucht, hält das nächste apt upgrade das Programm aktuell. Stimmt der Paketname, aber apt findet das Paket trotzdem nicht, liegt es an den Paketquellen; das klärt Unable to locate package (engl.). Führt eine Paketquelle das Paket ebenfalls und du willst deine von Hand installierte Version behalten, halte sie mit sudo apt-mark hold NAME fest.
Ein aus einer .deb installiertes Paket entfernen
apt und dpkg kennen das Paket unter seinem Namen, nicht unter dem Dateinamen. Lies den Namen aus der Datei aus oder durchsuche die Liste der installierten Pakete:
dpkg-deb -f mytool_1.4.2_amd64.deb Package # gibt den Namen aus: mytool
dpkg -l | grep -i mytool # oder unter den installierten Paketen suchen
sudo apt remove mytool # Programm entfernen, Konfigurationsdateien behalten
sudo apt purge mytool # samt Konfigurationsdateien entfernen
sudo apt autoremove # Abhängigkeiten entfernen, die nichts mehr brauchtDie Abhängigkeiten, die apt für das Paket mitgebracht hat (jq und libjq1 im Beispiel), sind als automatisch installiert markiert, deshalb räumt autoremove sie ab, sobald nichts anderes sie mehr braucht. dpkg -L mytool listet jede Datei, die das Paket auf das System gebracht hat, falls du vor dem Entfernen sehen willst, was alles verschwindet.
Fehler beim Installieren einer .deb und die Lösung
E: Unable to locate package app.deb
E: Unable to locate package mytool_1.4.2_amd64.deb
E: Couldn't find any package by glob 'mytool_1.4.2_amd64.deb'
E: Couldn't find any package by regex 'mytool_1.4.2_amd64.deb'Der Pfad fehlt, also hat apt nach einem Paket mit diesem Namen gesucht. Setze ./ davor oder gib den vollen Pfad an.
The following packages have unmet dependencies
The following packages have unmet dependencies:
mytool : Depends: libfoo2 (>= 2.0) but it is not installable
E: Unable to correct problems, you have held broken packages.apt kennt kein Paket, das die Abhängigkeit erfüllt. Meist wurde die Datei für ein anderes Release oder eine andere Distribution gebaut (ein neueres Ubuntu mit neueren Bibliotheken oder Debian statt Ubuntu); lade also den Build für dein Release herunter. Seinen Codenamen liefert . /etc/os-release && echo "$VERSION_CODENAME". Manchmal gibt es die Abhängigkeit, aber sie liegt in einer Komponente der Paketquellen, die du nicht aktiviert hast, etwa universe. Wie du sie einschaltest, zeigt der Abschnitt fehlende Komponente aktivieren (engl.). Die Installation mit --force-depends von dpkg zu erzwingen, verschiebt den Fehler nur auf den Moment, in dem das Programm startet.
dependency problems - leaving unconfigured
Das ist der oben gezeigte Fehler von dpkg -i. Führe sudo apt --fix-broken install aus.
package architecture (arm64) does not match system (amd64)
dpkg: error processing archive mytool_1.4.2_arm64.deb (--install):
package architecture (arm64) does not match system (amd64)Du hast den Build für einen anderen Prozessor heruntergeladen. Vergleiche die Zeile Architecture aus dpkg -I mit dpkg --print-architecture und hol dir die passende Datei. Die Ablehnung kommt erst von dpkg, wenn es die Datei entpackt; die Simulation von apt kann die Installation einer arm64-Datei trotzdem anstandslos planen, eine saubere Vorschau ist also kein Beweis.
dpkg-deb: error: 'app.deb' is not a Debian format archive
Die Datei ist kein Paket. Eine als page.deb gespeicherte HTML-Seite erzeugt genau diesen Fehler, und file page.deb antwortet mit HTML document (nachgeprüft unter Debian 12 mit dpkg 1.21.23). Kopiere den direkten Download-Link, lade die Datei mit curl -fLO oder wget neu herunter und vergleiche die Prüfsumme.
Could not get lock, oder dpkg was interrupted
Beides hat nichts mit deiner Datei zu tun. Ein anderer apt-Prozess (oft der automatische Updater) hält die Paketdatenbank, oder ein früherer Lauf ist auf halbem Weg stehen geblieben. Behebe das zuerst mit Could not get lock /var/lib/dpkg/lock-frontend (engl.) und dpkg was interrupted (engl.) und starte die Installation dann erneut.
trying to overwrite '/usr/bin/x', which is also in package y
Zwei Pakete liefern dieselbe Datei aus: oft ein älterer Build desselben Programms, der unter einem anderen Paketnamen installiert wurde, oder ein Herstellerpaket, das mit einem Paket von Ubuntu kollidiert. Entferne zuerst das andere Paket. --force-overwrite gibt es, aber dann beanspruchen zwei Pakete eine Datei, und das nächste Update eines der beiden macht sie wieder kaputt.
Eine .deb auf einem Server installieren
Auf einem VPS gibt es keinen Browser, um auf einen Download-Button zu klicken. Kopiere den direkten Link zur .deb von der Release-Seite des Herstellers und lade sie auf dem Server nach /tmp herunter; dort erscheint auch der Hinweis zu _apt nicht:
cd /tmp
curl -fLO https://example.com/downloads/mytool_1.4.2_amd64.deb
sha256sum mytool_1.4.2_amd64.deb # mit dem vom Hersteller veröffentlichten Wert vergleichen
sudo apt install ./mytool_1.4.2_amd64.deb-f lässt curl bei einem HTTP-Fehler scheitern, statt die Fehlerseite als dein Paket zu speichern, und -L folgt den Weiterleitungen, die die meisten Release-Seiten nutzen. Meldet der Server curl: command not found, musst du zuerst curl installieren (engl.). Die VPS von VMHeaven laufen auf x86-64, der amd64-Build ist also der richtige, und die Befehle sind auf einem Ubuntu-VPS und einem Debian-VPS dieselben.
Häufige Fragen
Wie installiere ich unter Ubuntu eine .deb-Datei im Terminal?
Führe sudo apt install ./datei.deb in dem Ordner aus, in dem die Datei liegt, oder gib ihren vollen Pfad an. apt installiert das Paket und lädt jede Abhängigkeit, die es auflistet, aus den Paketquellen von Ubuntu. Ohne das ./ (oder einen anderen Pfad mit Schrägstrich) sucht apt in seinen Paketquellen nach einem Paket namens datei.deb und scheitert mit Unable to locate package.
Was ist der Unterschied zwischen apt install ./datei.deb und dpkg -i?
dpkg -i installiert nur die Datei, die du angibst, und lädt nie etwas herunter; ein Paket mit fehlenden Abhängigkeiten bleibt deshalb entpackt, aber nicht konfiguriert. apt install ./datei.deb löst diese Abhängigkeiten auf und installiert sie zuerst. Nach einem gescheiterten dpkg -i bringt sudo apt --fix-broken install die Arbeit zu Ende oder bietet an, das Paket zu entfernen.
Wie deinstalliere ich ein Programm, das ich aus einer .deb-Datei installiert habe?
Über den Paketnamen, nicht den Dateinamen: dpkg-deb -f datei.deb Package gibt ihn aus. Dann entfernt sudo apt remove NAME das Programm, sudo apt purge NAME löscht zusätzlich seine Konfigurationsdateien, und sudo apt autoremove räumt die Abhängigkeiten ab, die nur dafür installiert wurden.