A package manager is a command-line or graphical tool that allows you to easily search, install, update, and remove software packages on a Linux system. The software package is a collection of different files bundled together for simple distribution and installation.
When installing any software package, the package manager automatically fetches its latest version, downloads it, places the necessary files in the target destinations, and if the package requires additional dependencies, the package manager handles it itself.
Graphical package managers are typically front-end applications that use a command-line tool in the backend to handle software packages. This effort is made for users who find the command-line inconvenient. Examples include Synaptic (uses APT) and Warehouse (uses Flatpak).
What Can a Package Manager Do?
While most package managers only handle the basic management of packages from repositories, some advanced ones extend their capabilities and can do a lot more. The following is a list of common to advanced tasks a modern package manager can do.
- Installation: If the specified package is present in the local cache, it will be used; otherwise, the desired package will be fetched from the repositories and installed on your system.
- Searching: Search for the designated package in the package database on your system.
- Updating: A package manager handles three types of updates: the package database, the packages themselves, and updating all system packages at once. Each of these updates has a different command that can be used according to the requirement.
- Removing: You can easily remove a single or multiple packages, dependencies, or libraries by specifying them in the package manager’s removal command.
- Information: Prior to installation, you can check the package-related details, such as its name, size, release date, required dependencies, etc., from the cache or package database.
- Listing: The package manager keeps a record of packages during installation, allowing you to print the list of all installed packages on your system.
- Downgrading: This feature is only found on certain package managers like DNF, that allows you to quickly revert to a previous package version in the event of bugs, security concerns, missing features, and more.
- Add Repository: Popular Linux distributions like Ubuntu include official repositories containing free and open-source packages, but users can enable/activate proprietary repositories to access closed-source applications like Nvidia drivers. Additionally, software such as Node.js, Python, and Chrome provide their own repositories for simple installation of the latest versions, as versions in the distribution’s official repository are often outdated.
- List Repository: On Ubuntu, the default package manager does not provide an added repository list option, but you can use the “Software & Updates” program to check the enabled repository list. While DNF for Red Hat and Fedora offer the option to list repositories.
- Remove Repository: If any of your added repositories are inactive/obsolete, or if you wish to temporarily remove them, you can do so by following the instructions tailored to your package manager.
These are some of the most common tasks a modern package manager can perform, but depending on the package manager, the list of options could vary. Therefore, be sure to check the manual or help page of your package manager.
Package Managers for Various Linux Distributions
Linux is divided into various branches, with Debian, Ubuntu, Red Hat, Fedora, and Arch at the forefront, alongside NixOS, Alpine Linux, Gentoo Linux, Void Linux, Clear Linux, and a few more, which are slightly more complex for beginners.
Each of these mentioned distributions, along with other Linux distributions based on them, uses different or correlated package managers because of their uniqueness. The following is a list of common package managers and the Linux distributions that use them.
Package Manager | Linux Distribution |
---|---|
APT | Ubuntu, Debian, Kali Linux, Linux Mint, Zorin OS, Pop!_OS, Elementary OS, KDE Neon, Linux Lite, Deepin, Peppermint OS, MX Linux, Bodhi Linux, Devuan, Parrot OS, Raspberry Pi OS, etc. |
YUM | CentOS, Fedora, RHEL, AlmaLinux, Rocky Linux, Oracle Linux, ClearOS, Yellow Dog Linux, OpenMandriva, ROSA Linux, ALT Linux, Vine Linux, etc. |
DNF | Red Hat, Fedora, CentOS Stream, Rocky Linux, openSUSE, AlmaLinux, Oracle Linux, ClearOS, EuroLinux, Qubes OS, PCLinuxOS, NethServer, Springdale Linux, Ultramarine Linux, RisiOS, Chapeau, etc. |
Pacman | Arch Linux, Manjaro Linux, EndeavourOS, Garuda Linux, Chakra Linux, ArchBang, Artix Linux, RebornOS, BlackArch Linux, Bluestar Linux, Salient OS, etc. |
Yay | Same as above. |
Zypper | openSUSE Leap, openSUSE Tumbleweed, LEAP Micro, GeckoLinux, and a few more. |
Emerge | Gentoo Linux, Chromium OS, Calculate Linux, Pentoo, and a few more. |
Nix-env | NixOS |
Apk | Alpine and postmarketOS. |
XBPS-* | Void Linux, VX-Linux, gabeeOSLinux, AgarimOS, and a few more. |
swupd | Clear Linux |
Additional Package Managers for Linux Distributions
There are a few more package managers that are managed by third parties; they can be used across different Linux distributions and, in certain scenarios, across different platforms like macOS or Windows. The following is a list of additional package managers that one can use to enhance their experiences.
Package Manager | Supported Linux Distribution |
---|---|
Homebrew | All Linux distributions |
Snap | All Linux distributions |
Flatpak | All Linux distributions |
Cargo (Rust package manager) | Linux, Windows, and macOS |
NPM, NPX (Node.js package manager) | Linux, Windows, and macOS |
Pip, Pipx, uv (Python package manager) | Linux, Windows, and macOS |
Final Word
All the package managers discussed in this article are quite popular and common, but remember that packages can also be installed differently; for example, some developers ask you to pull and run a shell script using either the wget or curl command for their package installation, which is not recommended unless you trust the source.
Besides this, AppImage is a popular package container technology that allows users to use their favorite applications in a portable format. Therefore, there are many more ways to use packages, and if any information is skipped from this article, do let me know in the comment section.
Till then, peace!
Join The Conversation
Users are always welcome to leave comments about the articles, whether they are questions, comments, constructive criticism, old information, or notices of typos. Please keep in mind that all comments are moderated according to our comment policy.