DNF Command Cheat Sheet in Linux (With Practical Examples)

DNF Command Cheat Sheet in Linux (With Practical Examples)

DNF stands for Dandified Yum. It is the default package manager for RPM-based Linux distributions such as RHEL, Rocky Linux, AlmaLinux, Oracle Linux, and Fedora. DNF replaces YUM and provides faster dependency resolution, better performance, and lower memory usage.


dnf Command - Quick Cheat Sheet

Taskdnf Command
Install a packagesudo dnf install package_name
Remove a packagesudo dnf remove package_name
Update all packagessudo dnf update
Upgrade system packagessudo dnf upgrade
Search for a packagednf search keyword
Display package informationdnf info package_name
List installed packagesdnf list installed
List available packagesdnf list available
Check for available updatesdnf check-update
Install multiple packagessudo dnf install pkg1 pkg2
Reinstall a packagesudo dnf reinstall package_name
Clean cached packagessudo dnf clean all
Show enabled repositoriesdnf repolist
Install package from repositorysudo dnf install package_name
Download package without installingdnf download package_name

This quick reference summarizes the most commonly used dnf command examples in Linux for managing software packages on Fedora, RHEL, Rocky Linux, and AlmaLinux systems.


DNF vs YUM (Detailed Comparison)

DNF and YUM are both package managers used in RPM-based Linux distributions, but DNF is the modern replacement for YUM. While most commands look similar, their internal design, performance, and reliability differ significantly.

FeatureDNFYUM
Dependency resolutionUses libsolv (C-based solver)Python-based resolver
PerformanceFaster package operationsSlower, especially on large systems
Memory usageLower and predictableHigher memory consumption
Error handlingBetter conflict detectionLess accurate dependency errors
Default package managerRHEL 8+, Fedora 22+Deprecated
Future supportActively developedMaintenance mode only

What this means in practice

  • DNF resolves dependencies faster, especially when installing large packages.
  • YUM can become slow and unreliable on systems with many repositories enabled.
  • DNF performs safer transactions, reducing the risk of broken installations.
  • On modern systems, the yum command is often just a symbolic link to DNF.

If you are using RHEL 8+, Rocky Linux, AlmaLinux, Oracle Linux, or Fedora, DNF should always be preferred over YUM.


How DNF Works

DNF is a repository-based package manager used on RPM-based Linux systems. It installs and manages software using repositories and dependency metadata.

Repositories

DNF installs packages only from configured repositories.

Repository files are stored in:

text
/etc/yum.repos.d/*.repo

Each repository defines the package source and whether it is enabled.

Configuration

DNF behavior is controlled by:

text
/etc/dnf/dnf.conf

This file manages caching, downloads, and default options.

Metadata & Dependencies

DNF caches repository metadata for faster execution and resolves all dependencies before applying changes.

To refresh metadata:

text
dnf clean all

All operations run as a single transaction, preventing partial installs and making DNF safe for production and automation.


DNF Quick Reference Cheat Sheet (Most Common Tasks)

TaskCommand
Install a packagednf install pkg
Install multiple packagesdnf install pkg1 pkg2
Remove a packagednf remove pkg
Reinstall a packagednf reinstall pkg
Download package without installingdnf install pkg --downloadonly
Update a single packagednf update pkg
Update all packagesdnf update
Upgrade system packagesdnf upgrade
Check available updatesdnf check-update
Search for a packagednf search name
List all installed packagesdnf list installed
List available packagesdnf list available
Get detailed package infodnf info pkg
Find which package owns a filednf provides /path/file
Find package using wildcarddnf provides */binary
List enabled repositoriesdnf repolist
List disabled repositoriesdnf repolist disabled
List all repositoriesdnf repolist all
Enable repo for one commanddnf install pkg --enablerepo=repo
Disable repo for one commanddnf install pkg --disablerepo=repo
List package dependenciesdnf deplist pkg
List package groupsdnf grouplist
Install a package groupdnf groupinstall "Group Name"
Remove a package groupdnf groupremove "Group Name"
View transaction historydnf history
Undo a transactiondnf history undo ID
Redo a transactiondnf history redo ID
Rollback to transactiondnf history rollback ID
Clean metadata and cachednf clean all
Clean only metadatadnf clean metadata
Open interactive DNF shelldnf shell

Package Installation & Removal

Install Packages

Install a single package:

text
dnf install package_name

Install multiple packages at once:

text
dnf install git curl vim

Remove Packages

Remove a package and any unused dependencies:

text
dnf remove package_name

Reinstall Packages

Reinstall a package to fix corrupted files or broken installs:

text
dnf reinstall package_name

Download Packages Without Installing

Download RPM packages without installing them on the system:

text
dnf install package_name --downloadonly --downloaddir=/tmp/rpms

System Update & Upgrade

Update Packages

Update a specific package:

text
dnf update package_name

Update all installed packages:

text
dnf update

Upgrade System

Upgrade packages to newer versions, including dependency changes:

text
dnf upgrade

Check Available Updates

List packages that have updates available without installing them:

text
dnf check-update

Search & Query Packages

Search Packages

Search for packages by name or description:

text
dnf search nginx

List Packages

List all available and installed packages:

text
dnf list

List only installed packages:

text
dnf list installed

Package Information

Display detailed information about a package:

text
dnf info httpd

Repository Management

List Repositories

List enabled repositories:

text
dnf repolist

List disabled repositories:

text
dnf repolist disabled

List all repositories:

text
dnf repolist all

Enable or Disable Repositories Temporarily

Enable a repository for a single command:

text
dnf install package --enablerepo=repo_name

Disable a repository for a single command:

text
dnf install package --disablerepo=repo_name

File-to-Package Mapping

These commands help identify which package provides a specific file. Very useful for troubleshooting missing binaries.

Find which package provides a file:

text
dnf provides /usr/bin/python3

Search using wildcard:

text
dnf provides */python3

Dependency Management

Use this when you want to understand package dependency relationships.

List dependencies of a package:

text
dnf deplist nmap

Group Package Management

Package groups allow installing or removing related software together.

List available groups:

text
dnf grouplist

Install a group package:

text
dnf groupinstall "Security Tools"

Remove a group package:

text
dnf groupremove "Security Tools"

Update a group package:

text
dnf groupupdate "Headless Management"

Transaction History & Rollback

DNF keeps a history of all package operations, making rollbacks possible.

View transaction history:

text
dnf history

Undo a transaction:

text
dnf history undo ID

Redo a transaction:

text
dnf history redo ID

Rollback all changes after a transaction:

text
dnf history rollback ID

Cache & Metadata Management

These commands help resolve metadata issues and improve performance.

Clean all cached metadata and packages:

text
dnf clean all

Interactive DNF Shell

Launch the interactive DNF shell for advanced package operations:

text
dnf shell

Summary

DNF is the modern package manager for RPM-based Linux distributions. It simplifies software installation, updates, removals, and dependency management using repository-based transactions.

Compared to YUM, DNF offers faster dependency resolution, better error handling, and safer transactions, making it suitable for both daily administration and automation. With built-in history and rollback support, DNF helps maintain system stability while managing packages efficiently.


Also Read


Further Reading

Rohan Timalsina

Rohan Timalsina

is a technical writer and Linux enthusiast who writes practical guides on Linux commands and system administration. He focuses on simplifying complex topics through clear explanations.