A .deb file is a Debian binary package—vendor apps like Google Chrome and Valve Steam distribute them when software is not in Debian’s main archives. Installing one is not the same as running apt install packagename from a mirror: you point apt or dpkg at a file on disk and let the package manager pull dependencies from your existing sources.
This guide covers install a deb file on Debian for Debian 11 (Bullseye), 12 (Bookworm), and 13 (Trixie): the recommended apt install ./file.deb path, dpkg -i with apt install -f, gdebi, GUI installers, inspection with dpkg-deb, verification, uninstall, and the errors that drive most forum threads (wrong directory, missing ./, dependency failures, conflicts, wrong architecture). I ran the commands on Debian 13 with a real curl package downloaded via apt download.
Tested on: Debian 13 (trixie); kernel 6.12.94+deb13-amd64; amd64.
.deb files only from vendors you trust. Random “Chrome”, “Zoom”, or “driver” downloads from third-party mirrors are a common malware path—prefer official sites (dl.google.com, repo.steampowered.com, etc.).
Choose an install method
| Method | Best for | Resolves dependencies? |
|---|---|---|
sudo apt install ./file.deb |
Default for everyone (recommended) | Yes—automatically |
sudo dpkg -i + sudo apt install -f |
Minimal systems, automation, legacy scripts | After -f |
gdebi |
Desktop users who want a GUI or gdebi CLI |
Yes |
| File manager / Software | One-off GUI install on GNOME or KDE | Usually yes (via apt backend) |
| Inspect only | Audit before install | N/A |
Use sudo apt install ./package.deb unless you have a reason to call dpkg directly.
Prerequisites
- Debian 11, 12, or 13 matching the architecture printed on the
.deb(amd64,arm64, etc.). - sudo or root—installing packages changes system files under
/usrand/etc. - Working apt mirrors in
/etc/apt/sources.listorsources.list.d/so dependencies can download. - The
.debfile on disk—download with curl or wget, or copy from another machine.
Check your architecture:
. /etc/os-release && echo "$PRETTY_NAME"
dpkg --print-architectureDebian GNU/Linux 13 (trixie)
amd64Inspect the deb before installing
Read control metadata without installing:
cd /tmp
apt download curl
dpkg-deb -f curl_*.deb Package Version Architecture MaintainerGet:1 http://deb.debian.org/debian trixie/main amd64 curl amd64 8.14.1-2+deb13u3 [270 kB]
Fetched 270 kB in 0s (549 kB/s)
Package: curl
Version: 8.14.1-2+deb13u3
Architecture: amd64
Maintainer: Debian Curl Maintainers <[email protected]>Full control file:
dpkg-deb -I curl_8.14.1-2+deb13u3_amd64.deb | head -20Package: curl
Version: 8.14.1-2+deb13u3
Architecture: amd64
Depends: libc6 (>= 2.34), libcurl4t64 (= 8.14.1-2+deb13u3), zlib1g (>= 1:1.1.4)
Description: command line tool for transferring data with URL syntaxList files the package will place on disk:
dpkg-deb -c curl_8.14.1-2+deb13u3_amd64.deb | head -8drwxr-xr-x root/root 0 ./usr/
drwxr-xr-x root/root 0 ./usr/bin/
-rwxr-xr-x root/root 321880 ./usr/bin/curl
-rwxr-xr-x root/root 11241 ./usr/bin/wcurlFor a large vendor package:
dpkg-deb -f google-chrome-stable_current_amd64.deb Package Version ArchitecturePackage: google-chrome-stable
Version: 149.0.7827.200-1
Architecture: amd64If Architecture does not match dpkg --print-architecture, do not force-install the .deb.
Install with apt (recommended)
APT treats a local file like a package source when you prefix the filename with ./:
cd /tmp
sudo apt install ./curl_8.14.1-2+deb13u3_amd64.debapt installs curl and pulls libcurl4t64 and other Depends from Debian mirrors automatically.
Verify:
curl --version | head -1
dpkg -l curlcurl 8.14.1 (x86_64-pc-linux-gnu) libcurl/8.14.1 OpenSSL/3.5.6 ...
ii curl 8.14.1-2+deb13u3 amd64 command line tool for transferring data with URL syntaxThe ./ prefix matters
Without ./, apt searches repositories for a package name:
apt install curl_8.14.1-2+deb13u3_amd64.debError: Unable to locate package curl_8.14.1-2+deb13u3_amd64.debUse sudo apt install ./filename.deb, not sudo apt install filename.deb. The same mistake appears when tutorials say apt-get install GP6.deb without ./—dpkg or apt install ./ is correct.
Use an absolute path from any directory
sudo apt install /tmp/curl_8.14.1-2+deb13u3_amd64.debThat avoids the classic cannot access archive error from running dpkg -i package.deb in the wrong folder.
Install with dpkg, then fix dependencies
Low-level install—unpack first, resolve dependencies second:
cd /tmp
sudo dpkg -i curl_8.14.1-2+deb13u3_amd64.debIf dependencies were already satisfied, setup completes immediately:
Selecting previously unselected package curl.
Preparing to unpack curl_8.14.1-2+deb13u3_amd64.deb ...
Unpacking curl (8.14.1-2+deb13u3) ...
Setting up curl (8.14.1-2+deb13u3) ...When dpkg -i stops with unmet dependencies, finish with:
sudo apt install -fThe -f flag tells apt to fix broken dependency state by installing missing packages from your configured mirrors (Debian FAQ — package tools).
Wrong path errors look like:
sudo dpkg -i ~/Downloads/fake.debdpkg: error: cannot access archive '/root/Downloads/fake.deb': No such file or directoryRun find ~ -name '*.deb' or ls ~/Downloads/ to confirm the filename, then cd to that directory or pass the full path.
Install with gdebi (GUI or CLI)
gdebi installs a local .deb and resolves dependencies through apt—similar to apt install ./ with a dedicated front-end:
sudo apt install -y gdebiGUI: open the .deb in the file manager → Open With → GDebi Package Installer.
CLI (non-interactive):
sudo gdebi -n /path/to/package.debOn minimal servers without a desktop, apt install ./file.deb is simpler and does not require extra packages.
Install from the desktop (GNOME / KDE)
On desktop Debian:
- Download the
.deb(for example into~/Downloads). - Double-click the file, or right-click → Open With → Software Install / Discover.
- Authenticate when prompted and confirm Install.
Some GNOME Software versions reject certain third-party .deb files with “file type not supported”—use gdebi or the apt install ./ terminal method instead.
Real-world examples on Debian
| Software | .deb source |
Install command |
|---|---|---|
| Google Chrome | dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb |
sudo apt install ./google-chrome-stable_current_amd64.deb |
| Steam (Valve) | repo.steampowered.com/steam/archive/steam_latest.deb |
sudo apt install ./steam_latest.deb |
| Debian package offline | apt download packagename |
sudo apt install ./packagename_*.deb |
Many vendor .deb files also drop /etc/apt/sources.list.d/*.list or *.sources so future updates use sudo apt upgrade—check with list installed packages on Debian after install.
Upgrade, reinstall, or downgrade
Reinstall the same version:
sudo apt install --reinstall ./curl_8.14.1-2+deb13u3_amd64.debUpgrade when a newer .deb replaces an older one:
sudo apt install ./newer-version.debDowngrading usually requires explicit version pinning—avoid unless you understand apt pinning.
Uninstall a package installed from a deb
Find the package name:
dpkg-deb -f package.deb PackageAfter install:
sudo apt purge packagenameExample:
sudo apt purge google-chrome-stableRemove vendor repository files if you no longer want apt to track that source:
sudo rm -f /etc/apt/sources.list.d/google-chrome.sources
sudo apt updateTroubleshooting
| Symptom | Likely cause | Fix |
|---|---|---|
cannot access archive '…deb': No such file or directory |
Wrong working directory or typo | ls the folder; use full path or cd first |
Unable to locate package foo.deb |
Missing ./ with apt |
sudo apt install ./foo.deb |
E: Invalid operation / treating .deb as apt subcommand |
Wrong syntax | Use apt install, not apt foo.deb alone |
dependency problems prevent configuration |
dpkg -i without deps |
sudo apt install -f |
package architecture (arm64) does not match system (amd64) |
Wrong .deb arch |
Download the build for dpkg --print-architecture |
conflicts with / Breaks: |
Incompatible with installed package | Remove conflicting package or pick a .deb built for your suite |
held broken packages |
Mixed suites or pinned versions | apt-mark showhold; align sources to one Debian release |
Could not get lock /var/lib/dpkg/lock |
Another apt/dpkg running | Wait; close other installers; never delete lock files casually |
dpkg-deb: error: 'file.deb' is not a Debian format archive |
Corrupt download or wrong file | Re-download; verify with file package.deb |
Permission denied on /var/lib/dpkg |
Missing sudo | Prefix with sudo |
| Installed but command not found | Wrong package or PATH | dpkg -L packagename; check command -v |
| Vendor apt update GPG errors after install | Missing or rotated signing key | Reinstall vendor .deb or import documented key (Chrome guide) |
References
- Debian FAQ — Package management tools
- Debian FAQ — dpkg
- manpages.debian.org — dpkg(1)
- manpages.debian.org — dpkg-deb(1)
- manpages.debian.org — apt(8)
- On-site: install Google Chrome on Debian, install Steam on Debian, apt command, dpkg command, list installed packages on Debian
Summary
Install a deb file on Debian with sudo apt install ./package.deb—the ./ tells apt to use the local file and install dependencies from your mirrors. For the dpkg -i workflow, run sudo apt install -f when unmet dependency errors appear. Inspect packages first with dpkg-deb -I and dpkg-deb -f, match architecture to your system, and purge with sudo apt purge packagename when you remove vendor software.

