A quick reference for DNF โ the RHEL/Fedora/Rocky/Alma package manager. Bookmark this page.
Package Management
# Update package index and upgrade
sudo dnf check-update # Check for updates
sudo dnf upgrade # Upgrade all packages
sudo dnf upgrade --security # Security updates only
# Install
sudo dnf install nginx
sudo dnf install nginx-1.24.0 # Specific version
sudo dnf install -y nginx # Auto-confirm
sudo dnf install ./package.rpm # Local RPM
# Remove
sudo dnf remove nginx
sudo dnf autoremove # Remove unused dependencies
# Search
dnf search "web server"
dnf info nginx # Package details
dnf list installed # All installed
dnf list available # Available packages
dnf provides /usr/sbin/nginx # Which package has this fileRepository Management
# List repos
dnf repolist
dnf repolist all # Including disabled
# Enable/disable
sudo dnf config-manager --set-enabled crb
sudo dnf config-manager --set-disabled epel
# Add repo
sudo dnf config-manager --add-repo https://repo.example.com/centos/repo.repo
sudo dnf install epel-release # EPEL repository
# Clean cache
sudo dnf clean all
sudo dnf makecacheGroups and Modules
# Groups
dnf group list
sudo dnf group install "Development Tools"
sudo dnf group remove "Development Tools"
# Modules (RHEL 8+)
dnf module list
dnf module list nodejs
sudo dnf module enable nodejs:20
sudo dnf module install nodejs:20/common
sudo dnf module reset nodejsHistory and Rollback
# View history
dnf history
dnf history info 42 # Details of transaction 42
# Undo/redo
sudo dnf history undo 42 # Reverse transaction
sudo dnf history redo 42 # Repeat transaction
# Rollback to specific transaction
sudo dnf history rollback 42Version Locking
# Install versionlock plugin
sudo dnf install python3-dnf-plugin-versionlock
# Lock package
sudo dnf versionlock add nginx
sudo dnf versionlock list
sudo dnf versionlock delete nginxTips and Tricks
- Use
dnf needs-restarting -rto check if a reboot is needed after updates - Use
dnf needs-restarting -sto list services that need restart - Use
--enablerepoand--disablerepofor one-time repo changes - Use
dnf download nginxto download RPM without installing - RHEL 9: CRB repo replaces PowerTools for build dependencies