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 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.

Feature DNF YUM
Dependency resolution Uses libsolv (C-based solver) Python-based resolver
Performance Faster package operations Slower, especially on large systems
Memory usage Lower and predictable Higher memory consumption
Error handling Better conflict detection Less accurate dependency errors
Default package manager RHEL 8+, Fedora 22+ Deprecated
Future support Actively developed Maintenance 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:

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

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

Configuration

DNF behavior is controlled by:

/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:

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)

Task Command
Install a package dnf install pkg
Install multiple packages dnf install pkg1 pkg2
Remove a package dnf remove pkg
Reinstall a package dnf reinstall pkg
Download package without installing dnf install pkg –downloadonly
Update a single package dnf update pkg
Update all packages dnf update
Upgrade system packages dnf upgrade
Check available updates dnf check-update
Search for a package dnf search name
List all installed packages dnf list installed
List available packages dnf list available
Get detailed package info dnf info pkg
Find which package owns a file dnf provides /path/file
Find package using wildcard dnf provides */binary
List enabled repositories dnf repolist
List disabled repositories dnf repolist disabled
List all repositories dnf repolist all
Enable repo for one command dnf install pkg –enablerepo=repo
Disable repo for one command dnf install pkg –disablerepo=repo
List package dependencies dnf deplist pkg
List package groups dnf grouplist
Install a package group dnf groupinstall “Group Name”
Remove a package group dnf groupremove “Group Name”
View transaction history dnf history
Undo a transaction dnf history undo ID
Redo a transaction dnf history redo ID
Rollback to transaction dnf history rollback ID
Clean metadata and cache dnf clean all
Clean only metadata dnf clean metadata
Open interactive DNF shell dnf shell

Package Installation & Removal

Install Packages

Install a single package:

dnf install package_name

Install multiple packages at once:

dnf install git curl vim

Remove Packages

Remove a package and any unused dependencies:

dnf remove package_name

Reinstall Packages

Reinstall a package to fix corrupted files or broken installs:

dnf reinstall package_name

Download Packages Without Installing

Download RPM packages without installing them on the system:

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

System Update & Upgrade

Update Packages

Update a specific package:

dnf update package_name

Update all installed packages:

dnf update

Upgrade System

Upgrade packages to newer versions, including dependency changes:

dnf upgrade

Check Available Updates

List packages that have updates available without installing them:

dnf check-update

Search & Query Packages

Search Packages

Search for packages by name or description:

dnf search nginx

List Packages

List all available and installed packages:

dnf list

List only installed packages:

dnf list installed

Package Information

Display detailed information about a package:

dnf info httpd

Repository Management

List Repositories

List enabled repositories:

dnf repolist

List disabled repositories:

dnf repolist disabled

List all repositories:

dnf repolist all

Enable or Disable Repositories Temporarily

Enable a repository for a single command:

dnf install package --enablerepo=repo_name

Disable a repository for a single command:

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:

dnf provides /usr/bin/python3

Search using wildcard:

dnf provides */python3

Dependency Management

Use this when you want to understand package dependency relationships.

List dependencies of a package:

dnf deplist nmap

Group Package Management

Package groups allow installing or removing related software together.

List available groups:

dnf grouplist

Install a group package:

dnf groupinstall "Security Tools"

Remove a group package:

dnf groupremove "Security Tools"

Update a group package:

dnf groupupdate "Headless Management"

Transaction History & Rollback

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

View transaction history:

dnf history

Undo a transaction:

dnf history undo ID

Redo a transaction:

dnf history redo ID

Rollback all changes after a transaction:

dnf history rollback ID

Cache & Metadata Management

These commands help resolve metadata issues and improve performance.

Clean all cached metadata and packages:

dnf clean all

Interactive DNF Shell

Launch the interactive DNF shell for advanced package operations:

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.