Skip to content

YUM/DNF Package Manager

Comprehensive YUM and DNF commands and workflows for Red Hat, CentOS, and Fedora package management.

Installation & Updates

Basic Package Operations (DNF)

CommandDescription
sudo dnf updateUpdate all packages
sudo dnf upgradeUpgrade all packages (same as update)
sudo dnf install package_nameInstall package
sudo dnf remove package_nameRemove package
sudo dnf autoremoveRemove unused dependencies
sudo dnf reinstall package_nameReinstall package

Basic Package Operations (YUM)

CommandDescription
sudo yum updateUpdate all packages
sudo yum install package_nameInstall package
sudo yum remove package_nameRemove package
sudo yum autoremoveRemove unused dependencies
sudo yum reinstall package_nameReinstall package

Advanced Installation

CommandDescription
sudo dnf install package1 package2Install multiple packages
sudo dnf install package-versionInstall specific version
sudo dnf localinstall package.rpmInstall local RPM file
sudo dnf downgrade package_nameDowngrade package
sudo dnf install --enablerepo=repo packageInstall from specific repo

Package Information

Search and Information

CommandDescription
dnf search keywordSearch for packages
dnf info package_nameShow package information
dnf list installedList installed packages
dnf list availableList available packages
dnf list updatesList available updates
rpm -qaList all installed packages
rpm -qi package_nameShow installed package info

Package Dependencies

CommandDescription
dnf deplist package_nameShow package dependencies
dnf repoquery --requires package_nameShow package requirements
dnf repoquery --whatrequires package_nameShow what requires package
rpm -qR package_nameShow package dependencies (RPM)

Repository Management

Repository Operations

CommandDescription
dnf repolistList enabled repositories
dnf repolist allList all repositories
sudo dnf config-manager --add-repo URLAdd repository
sudo dnf config-manager --disable repo_nameDisable repository
sudo dnf config-manager --enable repo_nameEnable repository

EPEL Repository (CentOS/RHEL)

CommandDescription
sudo dnf install epel-releaseInstall EPEL repository
sudo yum install epel-releaseInstall EPEL (YUM)

System Maintenance

Cleanup Operations

CommandDescription
sudo dnf clean allClean all cache
sudo dnf clean packagesClean package cache
sudo dnf clean metadataClean metadata cache
sudo dnf autoremoveRemove orphaned packages

Package Groups

CommandDescription
dnf group listList package groups
dnf group info "Group Name"Show group information
sudo dnf group install "Development Tools"Install package group
sudo dnf group remove "Group Name"Remove package group

Configuration Files

DNF/YUM Configuration

FileDescription
/etc/dnf/dnf.confDNF main configuration
/etc/yum.confYUM main configuration
/etc/yum.repos.d/Repository configuration files
/var/log/dnf.logDNF log file
/var/log/yum.logYUM log file

Example dnf.conf

ini
[main]
gpgcheck=1
installonly_limit=3
clean_requirements_on_remove=True
best=False
skip_if_unavailable=True
fastestmirror=True
max_parallel_downloads=10

Example Repository File

ini
[example-repo]
name=Example Repository
baseurl=https://example.com/repo/
enabled=1
gpgcheck=1
gpgkey=https://example.com/RPM-GPG-KEY

Advanced Usage

History and Rollback

CommandDescription
dnf historyShow transaction history
dnf history info IDShow transaction details
sudo dnf history undo IDUndo transaction
sudo dnf history redo IDRedo transaction
sudo dnf history rollback IDRollback to transaction

Module Management (DNF)

CommandDescription
dnf module listList available modules
dnf module list --installedList installed modules
sudo dnf module install module:streamInstall module stream
sudo dnf module enable module:streamEnable module stream
sudo dnf module disable moduleDisable module

Security Updates

CommandDescription
dnf updateinfoShow update information
dnf updateinfo --securityShow security updates
sudo dnf update --securityInstall security updates only
dnf updateinfo list cvesList CVEs

Package Building

RPM Development

CommandDescription
sudo dnf install rpm-build rpmdevtoolsInstall build tools
rpmdev-setuptreeSetup RPM build tree
rpmbuild -ba package.specBuild RPM package
rpm -qp --requires package.rpmCheck RPM dependencies

Source RPMs

CommandDescription
dnf download --source package_nameDownload source RPM
rpm -ivh package.src.rpmInstall source RPM
rpmbuild --rebuild package.src.rpmRebuild from source

Troubleshooting

Common Issues

ProblemSolution
Conflicting packagessudo dnf remove conflicting_package
Broken dependenciessudo dnf check
Corrupted RPM databasesudo rpm --rebuilddb
Repository errorssudo dnf clean all && sudo dnf makecache

Lock Issues

CommandDescription
sudo rm /var/lib/rpm/.rpm.lockRemove RPM lock
sudo rm /var/run/yum.pidRemove YUM lock
ps aux | grep yumCheck for running YUM processes

Database Repair

CommandDescription
sudo rpm --rebuilddbRebuild RPM database
sudo dnf checkCheck for problems
sudo dnf distro-syncSynchronize packages

Fedora-Specific Features

Fedora Updates

CommandDescription
sudo dnf system-upgrade download --releasever=XXDownload upgrade
sudo dnf system-upgrade rebootPerform upgrade
sudo dnf install fedora-upgradeInstall upgrade tool

Flatpak Integration

CommandDescription
sudo dnf install flatpakInstall Flatpak
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepoAdd Flathub

CentOS/RHEL-Specific

Subscription Manager (RHEL)

CommandDescription
sudo subscription-manager registerRegister system
sudo subscription-manager attach --autoAuto-attach subscription
sudo subscription-manager repos --enable=repo_nameEnable repository

CentOS Stream

CommandDescription
sudo dnf install centos-release-streamInstall Stream repos
sudo dnf swap centos-linux-repos centos-stream-reposSwitch to Stream

Performance Optimization

Configuration Tuning

ini
# /etc/dnf/dnf.conf optimizations
[main]
fastestmirror=True
max_parallel_downloads=10
deltarpm=True
keepcache=True

Mirror Management

CommandDescription
sudo dnf install dnf-plugins-coreInstall DNF plugins
sudo dnf config-manager --set-enabled powertoolsEnable PowerTools (CentOS)

Best Practices

Security

  1. Regular Updates: Keep system updated with security patches
  2. Repository Verification: Only use trusted repositories
  3. GPG Verification: Ensure packages are properly signed
  4. Minimal Installation: Install only necessary packages
  5. Security Updates: Prioritize security updates

Performance

  1. Fastest Mirror: Enable fastest mirror plugin
  2. Parallel Downloads: Configure parallel downloads
  3. Delta RPMs: Enable delta RPM downloads
  4. Cache Management: Regular cache cleanup
  5. Repository Priorities: Set repository priorities

Maintenance

  1. Regular Cleanup: Clean package cache regularly
  2. History Tracking: Monitor transaction history
  3. Dependency Health: Check for broken dependencies
  4. Log Monitoring: Review system logs for issues
  5. Backup: Backup important configurations