Kiet Nguyen logo
NotesNotesResumeResume
© 2026 Kiet Nguyen
← All categories

14

Package Management

  • Install / remove / search package
  • Show package files / versions
  • Debian/apt primary; RHEL/dnf notes
aptapt-getdpkgdnfyumrpm

Must-know cold

Debian/Ubuntu:

  • sudo apt update · sudo apt install PKG · apt search KEY · apt show PKG
  • dpkg -l · dpkg -L PKG · which / command -v after install

RHEL/Fedora/CentOS:

  • sudo dnf install PKG · dnf search KEY · rpm -ql PKG

Always update the index before install on apt systems.

Debian / Ubuntu

apt

Definition: Debian/Ubuntu high-level package manager (install, update, search). Preferred interactively.

Option / verbArgumentMeaningExample
update—Refresh package index from repossudo apt update
upgrade—Upgrade installed packages; may install new deps; never removessudo apt upgrade
full-upgrade—Like upgrade but may remove packages (same idea as apt-get dist-upgrade)sudo apt full-upgrade
installPKG...Install package(s)sudo apt install nginx
installPKG=VERExact Debian version string (1.2.3-1ubuntu2, not just 1.2.3)sudo apt install pkg=1.2.3-1
removePKGRemove package; keep dpkg conffiles (usually /etc)sudo apt remove nginx
purgePKGRemove package and those conffiles — not /var data or logssudo apt purge nginx
autoremove—Remove unused dependenciessudo apt autoremove
searchKEYSearch package names/descriptionsapt search nginx
showPKGDetails of the candidate in the cache (not always the installed version)apt show nginx
list--installedList installedapt list --installed
list--upgradablePending upgradesapt list --upgradable
policyPKGCandidate versions / prioritiesapt policy nginx
edit-sources—Open sources list (careful)sudo apt edit-sources
-y—Assume yes on promptssudo apt install -y htop
--no-install-recommends—Leaner installsudo apt install --no-install-recommends pkg
clean—Clear downloaded .deb cachesudo apt clean
autoclean—Remove obsolete cache debssudo apt autoclean

Flag combos

ComboMeaningExample
sudo apt update && sudo apt install -y PKGRefresh then installStandard
apt show PKG | grep -i versionQuick version

apt-get

Definition: Classic Debian package tool; common in scripts and CI.

Option / verbArgumentMeaningExample
update—Refresh indexsudo apt-get update
installPKGInstallsudo apt-get install -y pkg
remove / purgePKGRemove / purgesudo apt-get purge pkg
upgrade—Upgrade without installing new packages or removalssudo apt-get upgrade
dist-upgrade—Smart upgrade (can add and remove); same class as apt full-upgradesudo apt-get dist-upgrade
downloadPKGDownload .deb onlyapt-get download pkg
-y—Non-interactive yesCI
-qq—QuieterScripts

Flag combos

ComboMeaningExample
DEBIAN_FRONTEND=noninteractive apt-get install -y pkgCI noninteractiveContainers

dpkg

Definition: Install/query .deb packages at a low level (no dependency resolver).

OptionArgumentMeaningExample
-iFILE.debInstall local debsudo dpkg -i pkg.deb
-rPKGRemovesudo dpkg -r pkg
-PPKGPurgesudo dpkg -P pkg
-l—List dpkg records (ii installed, rc removed-but-config)dpkg -l | grep nginx
-lPKGStatus glob (any output ≠ installed — look for ii)dpkg -l nginx
-LPKGList files owned by PKGdpkg -L nginx
-SPATHWhich package owns PATHdpkg -S /usr/bin/nginx
-cFILE.debList contents of debdpkg -c pkg.deb
-IFILE.debDeb package infodpkg -I pkg.deb
--configure-aConfigure unpacked packagessudo dpkg --configure -a
--get-selections—Selection statesBackup-ish

Flag combos

ComboMeaningExample
dpkg -i deb; sudo apt-get install -fFix deps after local deb
dpkg -L pkg | headWhere files landed

RHEL family

dnf

Definition: Modern RPM-based package manager (install, search, upgrade). Fedora, RHEL 8+, CentOS Stream.

Option / verbArgumentMeaningExample
installPKGInstallsudo dnf install nginx
removePKGRemovesudo dnf remove nginx
upgrade / update—Refresh metadata if stale and upgrade (aliases in dnf)sudo dnf upgrade
searchKEYSearchdnf search nginx
infoPKGDetailsdnf info nginx
list installed—Installed packagesdnf list installed
providesPATH/CMDWhich repo package owns that file (installed or not). Often a globdnf provides '*/nproc'
repolist—Enabled reposdnf repolist
clean all—Clean cachesudo dnf clean all
-y—Assume yessudo dnf install -y htop
--setopt=install_weak_deps=False—Fewer weak depsLean installs

Flag combos

ComboMeaningExample
sudo dnf install -y PKGParallel to apt install

yum

Definition: Legacy RPM package manager (older RHEL/CentOS 7). Prefer dnf when available.

Same verbs mostly: yum install, yum remove, yum search, yum info, yum provides.

rpm

Definition: Low-level RPM package query/install/verify tool.

OptionArgumentMeaningExample
-ivhFILE.rpmInstall verbose hashsudo rpm -ivh p.rpm
-UvhFILE.rpmUpgrade or install. Will not downgrade (use --oldpackage)sudo rpm -Uvh p.rpm
-ePKGErasesudo rpm -e pkg
-qa—Query all installedrpm -qa | grep nginx
-qiPKGPackage inforpm -qi nginx
-qlPKGList filesrpm -ql nginx
-qfPATHOwning packagerpm -qf /usr/bin/ls
-VPKGVerify filesrpm -V nginx

Flag combos

ComboMeaningExample
rpm -ql pkg | headFile listLike dpkg -L

Cross-distro map

TaskDebian/UbuntuRHEL family
Refresh + installapt update && apt install pkgdnf install pkg
Searchapt searchdnf search
Infoapt show / dpkg -ldnf info / rpm -qi
Files in pkgdpkg -L pkgrpm -ql pkg
Who owns installed filedpkg -S pathrpm -qf path
Who provides a file (repos)apt-file search (extra)dnf provides '*/cmd'
Remove config tooapt purgeoften manual conf left

Common recipes

GoalCommand
Install tool (Debian)sudo apt update && sudo apt install -y curl jq htop
Is package installed?dpkg -s nginx (Status: install ok installed) or dpkg -l nginx and look for ii
Files of packagedpkg -L nginx | head
Who owns binarydpkg -S $(which nginx)
Fix interrupted dpkgsudo dpkg --configure -a · sudo apt -f install
Install (RHEL)sudo dnf install -y nginx
Provides commanddnf provides '*/nproc'
Clean apt cache (disk)sudo apt clean

Pitfalls

  • apt install without update can miss packages or install a stale candidate. dnf install refreshes metadata itself (subject to metadata_expire).
  • apt show / apt search read the cache (candidate). Installed version is dpkg -s / apt policy. apt-get upgrade will not pull new packages; apt upgrade may.
  • dpkg -l pkg matching a name is not proof it is installed — first column must be ii. rc = removed, config left.
  • apt purge only deletes dpkg-tracked conffiles, not /var state or logs.
  • Mixing dpkg -i with no resolver leaves “unconfigured” packages — sudo apt -f install (and dpkg --configure -a).
  • rpm -qf only sees installed files. dnf provides searches repos (globs like */nproc).
  • rpm -i/-U do not resolve dependencies — use dnf.
  • Unattended-upgrades vs manual — know who patches the host.
  • Third-party repos are a supply-chain risk. State the family from /etc/os-release (apt vs dnf; CentOS 7 is still yum).

For more details, try man <command> in your terminal.

Previous13 Users, Groups & sudoNext15 Archives & Compression