LinuxCommandLibrary
GitHubF-DroidGoogle Play Store

Package manager

Which Package Manager?

Every distribution family ships its own package manager. Find yours in the table, then use the matching line in the sections below. Most install/remove operations need sudo.
Package managerDistribution
apt, apt-get, dpkgDebian, Ubuntu, Mint
dnf, yum, rpmFedora, RHEL, CentOS
pacmanArch, Manjaro
zypperopenSUSE
emergeGentoo
apkAlpine
pkgFreeBSD, Termux
snap, flatpakDistribution-independent app formats
apt is the friendlier front end to apt-get/apt-cache and the better choice for interactive use. On Fedora, dnf replaced yum.

Install from repository

$ apt install [packageName]
copy
$ dnf install [packageName]
copy
$ yum install [packageName]
copy
$ pacman -S [packageName]
copy
$ zypper install [packageName]
copy
$ emerge -av [packageName]
copy
$ apk add [packageName]
copy
$ pkg install [packageName]
copy
$ snap install [packageName]
copy
$ flatpak install [remote] [packageName]
copy

Install from file

$ dpkg -i [package.deb]
copy
$ apt install ./[package.deb]
copy
$ dnf install [package.rpm]
copy
$ rpm -i [package.rpm]
copy
$ pacman -U [package.pkg.tar.zst]
copy
$ flatpak install [package.flatpakref]
copy
$ pkg add [package.txz]
copy
Prefer apt install ./package.deb over dpkg -i: apt resolves and installs missing dependencies, dpkg does not.

Remove/Uninstall

$ apt remove [packageName]
copy
$ dnf remove [packageName]
copy
$ yum remove [packageName]
copy
$ pacman -Rs [packageName]
copy
$ zypper remove [packageName]
copy
$ emerge --depclean [packageName]
copy
$ apk del [packageName]
copy
$ pkg delete [packageName]
copy
$ snap remove [packageName]
copy
$ flatpak uninstall [packageName]
copy
apt purge also deletes the package's system-wide configuration files; pacman -Rs removes the package together with dependencies nothing else needs.
Clean up dependencies that are no longer needed by anything.
$ apt autoremove
copy
$ dnf autoremove
copy
$ pacman -Qdtq
copy

Find a package

$ apt search [query]
copy
$ apt-cache search [query]
copy
$ dnf search [query]
copy
$ yum search [query]
copy
$ pacman -Ss [query]
copy
$ zypper search [query]
copy
$ emerge -S [query]
copy
$ apk search [query]
copy
$ pkg search [query]
copy
$ snap find [query]
copy
$ flatpak search [query]
copy

View package info

$ apt show [packageName]
copy
$ apt-cache show [packageName]
copy
$ dpkg -s [packageName]
copy
$ dnf info [packageName]
copy
$ yum info [packageName]
copy
$ pacman -Si [packageName]
copy
$ zypper info [packageName]
copy
$ apk info [packageName]
copy
$ pkg info [packageName]
copy
$ snap info [packageName]
copy
$ pip show [packageName]
copy

Update package lists

Refresh the list of available packages and versions without installing anything.
$ apt update
copy
$ dnf check-update
copy
$ yum check-update
copy
$ zypper refresh
copy
$ emerge --sync
copy
$ apk update
copy
$ pkg update
copy

Upgrade installed packages

$ apt upgrade
copy
$ dnf upgrade
copy
$ yum update
copy
$ pacman -Syu
copy
$ zypper update
copy
$ emerge -avuDN @world
copy
$ apk upgrade
copy
$ pkg upgrade
copy
$ snap refresh
copy
$ flatpak update
copy
On Arch, always sync and upgrade together with pacman -Syu. Refreshing the database with -Sy and then installing single packages can break the system (partial upgrade).

Which package owns a file?

$ dpkg -S /usr/bin/[file]
copy
$ dnf provides /usr/bin/[file]
copy
$ rpm -qf /usr/bin/[file]
copy
$ pacman -Qo /usr/bin/[file]
copy
List the files a package installed.
$ dpkg -L [packageName]
copy
$ rpm -ql [packageName]
copy
$ pacman -Ql [packageName]
copy

Add repository source

$ add-apt-repository ppa:[userName]/[ppaName]
copy
$ dnf config-manager --add-repo [url]
copy
$ yum-config-manager --add-repo [url]
copy
$ zypper addrepo [url] [alias]
copy
$ flatpak remote-add flathub https://flathub.org/repo/flathub.flatpakrepo
copy

List installed packages

$ apt list --installed
copy
$ dpkg -l
copy
$ dnf list installed
copy
$ rpm -qa
copy
$ pacman -Q
copy
$ zypper packages --installed-only
copy
$ apk list --installed
copy
$ snap list
copy
$ flatpak list
copy
$ pip list
copy

AUR Helpers

On Arch, yay and paru install community packages from the AUR with the same flags as pacman.
$ yay -S [packageName]
copy
$ paru -S [packageName]
copy
Copied to clipboard
Kai