Linux Package Managers
On Linux, you rarely download a .exe or .dmg installer. Instead, you use a package manager — a tool that downloads, installs, upgrades, and removes software while automatically handling all dependencies. It's like an app store, but for your entire system.
What is a Package?
A package is a compressed archive containing: the program's binary files, configuration files, documentation, and metadata (name, version, description, dependencies). Two major formats:
| Format | Extension | Used by | Low-level tool |
|---|---|---|---|
| Debian | .deb | Ubuntu, Debian, Mint | dpkg |
| RPM | .rpm | Fedora, RHEL, openSUSE | rpm |
| Pacman | .pkg.tar.zst | Arch, Manjaro | pacman |
Repositories — Where Packages Come From
archive.ubuntu.com. The list of repos your system knows about lives in /etc/apt/sources.list and /etc/apt/sources.list.d/.
APT — Debian and Ubuntu
apt update doesn't install anything — it just refreshes the local database of what versions are available. Always run it before installing.
DNF (Fedora) and Pacman (Arch)
Dependency Resolution
This is why package managers are so powerful compared to manual installs — you never end up with "DLL hell" where software can't find the libraries it needs.
Universal Formats: Snap, Flatpak, AppImage
These newer formats bundle all dependencies into one package, working across distributions:
| Format | Company | Sandboxed? | Best for |
|---|---|---|---|
| Snap | Canonical (Ubuntu) | Yes | Desktop apps, servers |
| Flatpak | Community | Yes | Desktop GUI apps |
| AppImage | Community | No | Portable, no install needed |