Package Management in Linux

Package management refers to installing, updating, configuring, and removing software packages in a Linux system. Different Linux distributions use different package managers, but they generally serve the same purpose:

  1. Installation – Adding new software.
  2. Upgrading – Keeping software up to date.
  3. Removal – Uninstalling unwanted software.
  4. Dependency Resolution – Ensuring required libraries are installed.
  5. Repository Management – Downloading packages from trusted sources.

1. Debian/Ubuntu (APT & DPKG)

apt (Advanced Package Tool)

The primary high-level package manager for Debian-based systems (Ubuntu, Mint, etc.).

Key Commands:

CommandDescription
sudo apt updateUpdates the package list (does not install updates).
sudo apt upgradeUpgrades all installed packages.
sudo apt install <package>Installs a package.
sudo apt remove <package>Removes a package (keeps config files).
sudo apt purge <package>Removes a package + config files.
sudo apt autoremoveRemoves unused dependencies.
sudo apt search <keyword>Searches for packages.
sudo apt show <package>Displays package details.

Example:

sudo apt update && sudo apt upgrade -y  # Update & upgrade all packages
sudo apt install nginx                 # Install Nginx web server
sudo apt remove nginx --purge          # Remove Nginx + configs

dpkg (Debian Package Manager)

A low-level tool for manually installing .deb files (does not handle dependencies automatically).

Key Commands:

CommandDescription
sudo dpkg -i <package.deb>Installs a .deb file.
sudo dpkg -r <package>Removes a package (keeps configs).
sudo dpkg -P <package>Purges a package + configs.
dpkg -lLists all installed packages.
dpkg -L <package>Lists files installed by a package.

Example:

sudo dpkg -i google-chrome.deb   # Install Chrome manually
sudo dpkg -r google-chrome       # Remove Chrome (keep configs)

2. RHEL/CentOS/Fedora (YUM/DNF & RPM)

yum (Yellowdog Updater Modified)

The older package manager for RHEL/CentOS 7 (replaced by dnf in newer versions).

Key Commands:

CommandDescription
sudo yum install <package>Installs a package.
sudo yum remove <package>Removes a package.
sudo yum updateUpdates all packages.
sudo yum search <keyword>Searches for packages.
sudo yum info <package>Shows package details.

Example:

sudo yum install httpd      # Install Apache web server
sudo yum remove httpd       # Remove Apache

dnf (Dandified YUM)

The modern replacement for yum (used in RHEL 8+, Fedora, CentOS Stream).

Key Commands:

CommandDescription
sudo dnf install <package>Installs a package.
sudo dnf remove <package>Removes a package.
sudo dnf upgradeUpgrades all packages.
sudo dnf search <keyword>Searches for packages.
sudo dnf info <package>Shows package details.

Example:

sudo dnf install nginx     # Install Nginx
sudo dnf remove nginx      # Remove Nginx

rpm (Red Hat Package Manager)

A low-level tool for managing .rpm files (does not resolve dependencies automatically).

Key Commands:

CommandDescription
sudo rpm -ivh <package.rpm>Installs an RPM file.
sudo rpm -e <package>Removes an installed package.
rpm -qaLists all installed RPM packages.
rpm -qi <package>Shows package info.

Example:

sudo rpm -ivh package.rpm   # Install an RPM manually
sudo rpm -e package         # Remove the package

Comparison Table

FeatureAPT (Debian/Ubuntu)YUM/DNF (RHEL/Fedora)DPKG/RPM (Low-Level)
Installapt installyum/dnf installdpkg -i / rpm -ivh
Removeapt removeyum/dnf removedpkg -r / rpm -e
Updateapt update && upgradeyum/dnf updateN/A
Searchapt searchyum/dnf searchN/A
Manual File.deb (dpkg).rpm (rpm)Direct install