Using YUM/DNF (RHEL/Fedora)
YUM and DNF are package managers for Red Hat-based distributions. DNF is the modern replacement for YUM.
YUM vs DNF
- YUM (Yellowdog Updater Modified): Older, still used on RHEL 7, CentOS 7
- DNF (Dandified YUM): Modern replacement, faster, better dependency resolution
On newer systems (Fedora, RHEL 8+, CentOS 8+), yum is often an alias for dnf.
Essential Commands
| DNF Command | YUM Equivalent | Description |
|---|---|---|
dnf check-update | yum check-update | Check for updates |
dnf upgrade | yum update | Upgrade packages |
dnf install | yum install | Install packages |
dnf remove | yum remove | Remove packages |
dnf search | yum search | Search packages |
dnf info | yum info | Package info |
Updating the System
Check for Updates
sudo dnf check-update
Update All Packages
sudo dnf upgrade
sudo dnf upgrade -y # Without prompts
Installing Packages
sudo dnf install package-name
sudo dnf install vim git curl
Install from Local File
sudo dnf install ./package.rpm
Install Group of Packages
sudo dnf groupinstall "Development Tools"
sudo dnf group list # See available groups
Removing Packages
sudo dnf remove package-name
Remove with Dependencies
sudo dnf autoremove # Remove unused dependencies
Searching for Packages
dnf search keyword
dnf search all keyword # Search name and description
Package Information
dnf info package-name
dnf list installed # All installed
dnf list available # All available
dnf provides /usr/bin/vim # What package provides file
Working with Repositories
List Repositories
dnf repolist
dnf repolist all # Include disabled
Enable/Disable Repository
sudo dnf config-manager --enable repo-name
sudo dnf config-manager --disable repo-name
Add Repository
sudo dnf config-manager --add-repo URL
Common DNF Commands
Update and Upgrade Together
sudo dnf upgrade -y
Install Development Tools
sudo dnf groupinstall "Development Tools"
Install EPEL (Extra Packages)
sudo dnf install epel-release # CentOS/RHEL
Clean Cache
sudo dnf clean all
sudo dnf makecache # Rebuild cache
DNF History
DNF keeps track of all transactions:
dnf history # List transactions
dnf history info 5 # Details of transaction 5
sudo dnf history undo 5 # Undo transaction 5
Package Groups
Groups are collections of related packages:
dnf group list
dnf group info "Development Tools"
sudo dnf groupinstall "Development Tools"
sudo dnf groupremove "Development Tools"
Practical Examples
Set Up Web Server
sudo dnf install httpd
sudo systemctl start httpd
sudo systemctl enable httpd
Install Database
sudo dnf install mariadb-server
Install Python Tools
sudo dnf install python3 python3-pip
Troubleshooting
Clear Corrupted Cache
sudo dnf clean all
sudo dnf makecache
Fix Broken Dependencies
sudo dnf distro-sync
Check for Problems
sudo dnf check
Key Takeaways
- DNF is the modern replacement for YUM
dnf upgradeupdates all packagesdnf installinstalls packagesdnf groupinstallinstalls package groupsdnf historytracks all changes for undo capability

