Skip to main content

Linux Package Managers

A package manager automates installing, updating, and removing software on a Linux system. Each major distribution family uses its own tool.

apt

Used by Debian-based distributions: Ubuntu, Debian, Kali Linux, Linux Mint.

CommandDescription
apt updateRefresh the package index
apt upgradeUpgrade all installed packages
apt install <package>Install a package
apt remove <package>Remove a package (keep config files)
apt purge <package>Remove a package and its config files
apt search <term>Search for a package
apt list --installedList all installed packages

pacman

Used by Arch-based distributions: Arch Linux, Manjaro, EndeavourOS.

CommandDescription
pacman -SyuSync package database and upgrade all packages
pacman -S <package>Install a package
pacman -R <package>Remove a package
pacman -Rs <package>Remove a package and its unused dependencies
pacman -Ss <term>Search the package database
pacman -QList all installed packages

dnf

Used by Red Hat-based distributions from Fedora 22 and CentOS Stream 8 onwards.

CommandDescription
dnf check-updateCheck for available updates
dnf upgradeUpgrade all installed packages
dnf install <package>Install a package
dnf remove <package>Remove a package
dnf search <term>Search for a package
dnf list --installedList all installed packages

yum

Predecessor to dnf, used on Fedora 21, CentOS 7, and RHEL 7 and earlier. Replaced by dnf due to its slow Python-based dependency resolver and accumulated technical debt.

CommandDescription
yum check-updateCheck for available updates
yum updateUpgrade all installed packages
yum install <package>Install a package
yum remove <package>Remove a package
yum search <term>Search for a package
yum list installedList all installed packages

zypper

Used by openSUSE and SUSE Linux Enterprise.

CommandDescription
zypper refreshRefresh all repositories
zypper updateUpgrade all installed packages
zypper install <package>Install a package
zypper remove <package>Remove a package
zypper search <term>Search for a package
zypper packages --installed-onlyList all installed packages

portage

Used by Gentoo. Packages are compiled from source, making them highly configurable. The front-end tool is emerge.

CommandDescription
emerge --syncSync the portage tree
emerge -uDN @worldUpgrade all installed packages
emerge <package>Install a package
emerge --depclean <package>Remove a package and its unused dependencies
emerge --search <term>Search for a package
qlist -IList all installed packages