Salta ai contenuti

Yum & DNF

Yum (Yellowdog Updater Modified) is the package manager for RPM-based distributions. DNF (Dandified Yum) is the newer replacement for Yum.

Installation

CentOS/RHEL 7 (Yum)

# Yum is pre-installed
yum --version

# Update yum
sudo yum update yum

# Install common tools
sudo yum install epel-release

CentOS/RHEL 8+ & Fedora (DNF)

# DNF is default on newer systems
dnf --version

# Install DNF on older systems
sudo yum install dnf

# Enable PowerTools repository (RHEL/CentOS 8)
sudo dnf config-manager --set-enabled powertools

Basic Commands

CommandDescription
yum search [package]Search for package
yum info [package]Show package information
yum install [package]Install package
yum remove [package]Remove package
yum updateUpdate all packages
yum update [package]Update specific package
yum check-updateList available updates
yum list installedList installed packages
yum list availableList available packages
yum list allList all packages

Searching & Installing

Search Packages

# Search by package name
yum search nginx

# Search by description
yum search "web server"

# Search by name only
yum search --name "python*"

# Show package info
yum info nginx

# Show all versions
yum list nginx --showduplicates

# Search in specific repository
yum search --repo fedora nginx

# List recent packages
yum list recent

Installing Packages

# Install single package
sudo yum install nginx

# Install multiple packages
sudo yum install nginx mysql-server php

# Install specific version
sudo yum install nginx-1.20.0

# Install from file
sudo yum install ./package.rpm

# Install with dependencies
sudo yum install nginx

# Install with recommends
sudo yum install --setopt=install_weak_deps=True nginx

# Do not install weak dependencies
sudo yum install --setopt=install_weak_deps=False nginx

# Skip broken dependencies
sudo yum install --skip-broken nginx

Updating Packages

CommandDescription
sudo yum check-updateList available updates
sudo yum updateUpdate all packages
sudo yum update [package]Update specific package
sudo yum update --securityInstall security updates
sudo yum downgrade [package]Downgrade package
sudo yum upgradeUpgrade packages (obsoletes too)

Update Examples

# Check for available updates
yum check-update

# Update all packages
sudo yum update

# Update specific package
sudo yum update nginx

# Update security patches only
sudo yum update --security

# Update to specific version
sudo yum update nginx-1.20.0

# Downgrade package
sudo yum downgrade nginx

# Upgrade system
sudo yum upgrade

# Update without interactive prompt
sudo yum -y update

Removing Packages

# Remove package
sudo yum remove nginx

# Remove multiple packages
sudo yum remove nginx mysql-server

# Remove package and dependencies
sudo yum autoremove

# Remove orphaned packages
sudo yum remove --duplicates

# Do not remove dependencies
sudo yum remove nginx

# Confirm removal
sudo yum remove -y nginx

Repository Management

View Repositories

# List enabled repositories
yum repolist

# List disabled repositories
yum repolist disabled

# Show all repositories
yum repolist all

# Show repository details
yum repoinfo fedora

# List repo packages
yum repo-pkgs fedora list

Enable/Disable Repositories

# Enable repository
sudo yum-config-manager --enable fedora-updates

# Disable repository
sudo yum-config-manager --disable fedora

# Enable EPEL repository (Extra Packages for Enterprise Linux)
sudo yum install epel-release

# Enable PowerTools (RHEL/CentOS)
sudo yum install dnf-plugins-core
sudo yum config-manager --set-enabled powertools

# Add repository
sudo yum-config-manager --add-repo https://example.com/repo.repo

# Remove repository
sudo yum-config-manager --disable example-repo

Package Groups

# List available groups
yum grouplist

# List package groups with descriptions
yum grouplist --ids

# Show group contents
yum groupinfo "Development Tools"

# Install group
sudo yum groupinstall "Development Tools"

# Install group with optional
sudo yum groupinstall --with-optional "Development Tools"

# Remove group
sudo yum groupremove "Development Tools"

# Update group
sudo yum groupupdate "Development Tools"

# Install web server stack
sudo yum groupinstall "Web Server" "MySQL Database" "PHP Support"

Package Management

Query Installed Packages

# List installed packages
yum list installed

# List specific package
yum list installed nginx

# Show installed version
rpm -q nginx

# Show detailed package info
yum info installed nginx

# List package files
rpm -ql nginx

# List recently installed
yum list recent

# Count installed packages
rpm -qa | wc -l

# Search installed packages
yum list installed | grep nginx

Package Details

# Show package dependencies
yum deplist nginx

# Show what provides file
yum provides /etc/nginx/nginx.conf

# Show which package installed file
rpm -qf /etc/nginx/nginx.conf

# List files in package
rpm -ql nginx

# Show package changelog
rpm -q --changelog nginx

# Verify package files
rpm -V nginx

# Show package signature
rpm -qi nginx | grep -i signature

Yum Cache

# Clean all cache
sudo yum clean all

# Clean package cache
sudo yum clean packages

# Clean metadata
sudo yum clean metadata

# Clean headers
sudo yum clean headers

# Clean temporary files
sudo yum clean temp

# Remove cached packages
sudo yum clean expire-cache

# Make cache
sudo yum makecache

# Clean and update
sudo yum clean all && sudo yum makecache

System-wide Operations

# Check for problems
yum check

# Check available updates
yum check-update

# Check dependencies
yum deplist nginx

# Download without installing
yum download nginx

# Download with dependencies
yum download --resolve nginx

# Install from local repository
sudo yum localinstall package.rpm

# Install transaction
sudo yum install -y nginx mysql-server

Troubleshooting

Common Issues

# Rpmdb corruption
sudo rm -f /var/lib/rpm/__db.*
sudo rpm --rebuilddb

# Broken dependencies
sudo yum depcheck

# Stuck transactions
sudo yum clean all
sudo yum update

# Lock file issues
sudo rm /var/run/yum.pid
sudo yum clean all

# GPG key errors
sudo rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release
sudo yum clean all

Debugging

# Verbose output
yum -v install nginx

# Debug mode
yum -d install nginx

# Check repository
yum repocheck

# View transaction
yum history

# Undo transaction
sudo yum history undo [ID]

# List transaction
yum history list

# Info about transaction
yum history info [ID]

DNF Specific Features

# DNF is newer, with improved features
dnf install nginx

# Automatic dependency resolution
sudo dnf install nginx

# Better performance
dnf list available

# Plugins
dnf plugin-list

# Check-update detailed
dnf check-update --refresh

# System upgrade
sudo dnf system-upgrade download --releasever=9
sudo dnf system-upgrade reboot

Useful Aliases

# Add to .bashrc
alias yi='sudo yum install'
alias yr='sudo yum remove'
alias yu='sudo yum update'
alias ys='yum search'
alias yl='yum list installed'
alias yc='sudo yum clean all'
alias yh='yum history'

# DNF aliases
alias di='sudo dnf install'
alias dr='sudo dnf remove'
alias du='sudo dnf update'
alias ds='dnf search'

Best Practices

  • Use yum check-update before updating
  • Keep systems updated regularly
  • Use security-only updates for production
  • Test updates on non-production first
  • Keep backups before major updates
  • Monitor disk space usage
  • Use --skip-broken cautiously
  • Review dependency changes before install
  • Document custom repository additions
  • Verify GPG keys before installing

Resources


Last updated: 2026-03-30