Every major Linux distro family has its own package manager, and while they solve the same problem, their syntax and philosophy differ enough that switching distros means relearning muscle memory.
# Debian/Ubuntu: apt sudo apt update && sudo apt upgrade sudo apt install nginx sudo apt remove nginx # Fedora/RHEL: dnf (successor to yum) sudo dnf upgrade sudo dnf install nginx # Arch: pacman sudo pacman -Syu sudo pacman -S nginx # openSUSE: zypper sudo zypper update sudo zypper install nginx
Underlying Package Formats
apt and dnf both wrap different underlying formats and dependency resolvers — apt manages .deb packages, dnf manages .rpm packages — which is why a .deb file won’t install on Fedora and vice versa, despite both being “Linux packages” conceptually.
All four modern package managers share the same core capabilities — dependency resolution, signed package verification, and clean removal — the differences are almost entirely in command syntax and the underlying package format, not in fundamental capability.