Debian
The universal operating system. The rock that half the Linux world is built on.
Overview
| Based on | Independent |
| Package manager | APT |
| Package format | .deb |
| Release model | Fixed releases (Stable ~2 years), plus Testing and Unstable (Sid) branches |
| Default DE | None default; GNOME offered by installer, along with KDE, XFCE, MATE, Cinnamon, LXDE, LXQt |
| Init system | systemd |
| Website | debian.org |
Why Debian?
- Legendary stability - Debian Stable is one of the most thoroughly tested releases in all of Linux, making it a top choice for servers and critical workstations
- Massive package archive - Over 59,000 packages in the official repositories, one of the largest of any distribution
- Universal - Supports more hardware architectures than any other distro (amd64, arm64, i386, ppc64el, s390x, and more)
- 100% free by default - Committed to free software principles, with non-free repos available as an opt-in
- The upstream - Ubuntu, Mint, Kali, Tails, Parrot, and dozens more are all built on Debian
- Social Contract - Governed by a democratic community with a formal constitution and social contract
Branches
- Stable - The production release. Rock-solid, security-patched, but packages can be old. Currently Debian 12 "Bookworm".
- Testing - Packages that have been in Unstable long enough without critical bugs. A rolling-ish release. Becomes the next Stable.
- Unstable (Sid) - Where new packages land first. Rolling release, generally quite usable despite the name.
- Backports - Newer versions of select packages recompiled for Stable. A good middle ground.
Package Management
Debian uses APT for package management. Unlike Ubuntu, Debian does not include Snap by default.
# Update package lists and upgrade all packages
sudo apt update && sudo apt upgrade
# Full upgrade (handles dependency changes, recommended for Testing/Unstable)
sudo apt full-upgrade
# Install packages
sudo apt install nginx git curl
# Search for a package
apt search "web server"
# Show package details
apt show nginx
# Remove a package and its config files
sudo apt purge nginx
# Clean up unused dependencies
sudo apt autoremove
# List installed packages
dpkg -l | grep nginx
Managing Sources
# Enable non-free and contrib repos (edit /etc/apt/sources.list)
# For Bookworm, add "non-free-firmware non-free contrib" to your deb lines:
# deb http://deb.debian.org/debian bookworm main non-free-firmware non-free contrib
# Enable backports
# deb http://deb.debian.org/debian bookworm-backports main
# Install a package from backports
sudo apt install -t bookworm-backports linux-image-amd64
Stable vs Testing for desktops: Debian Stable is excellent for servers but desktop users often find the packages too old. Running Testing or Unstable (Sid) gives you much newer software while still being more conservative than Arch. Many experienced users run Sid as a daily driver without issues.
Tips
- Use Stable for servers and machines that need to "just work" without surprises
- Use Testing or Sid for desktops where you want reasonably current software
- Enable non-free-firmware during installation if you need Wi-Fi or GPU drivers
- Install Flatpak (
sudo apt install flatpak) for newer desktop apps on Stable - Use
apt list --upgradableto preview updates before applying them - The Debian Wiki and Arch Wiki are both excellent resources for troubleshooting
- Consider the netinst ISO for a minimal install where you choose exactly what you need