DNF package management, version locking, local repositories, and module streams on RHEL 10.
# Search for a package
dnf search nginx
# Install a package
sudo dnf install -y nginx
# Remove a package
sudo dnf remove -y nginx
# Update all packages
sudo dnf update -y
# List installed packages
dnf list installed
# Check package info
dnf info nginx
# What package provides a file?
dnf provides */ssh# Note: versionlock is built into DNF5 on RHEL 10
# Lock a package at current version
sudo dnf versionlock add nginx
# View locked packages
sudo dnf versionlock list
# Unlock a package
sudo dnf versionlock delete nginx
# Lock all currently installed packages
sudo dnf versionlock add \*
# Unlock everything
sudo dnf versionlock delete \*# List configured repos
dnf repolist
# List all repos (including disabled)
dnf repolist all
# Enable a repo
sudo dnf config-manager --set-enabled rhel-10-for-x86_64-appstream-rpms
# Disable a repo
sudo dnf config-manager --set-disabled rhel-10-for-x86_64-baseos-rpms
# Add a local repo
sudo tee /etc/yum.repos.d/local.repo <<'EOF'
[local]
name=Local Repository
baseurl=file:///path/to/repo
enabled=1
gpgcheck=0
EOF
# Add remote repo
sudo dnf config-manager --add-repo https://example.com/repo.repoRHEL 10 AppStream provides multiple versions of applications via module streams.
# List available module streams
dnf module list
# Enable and install a specific stream
sudo dnf module enable -y nodejs:20
sudo dnf install -y nodejs
# Switch streams (may require reset)
sudo dnf module reset -y nodejs
sudo dnf module enable -y nodejs:18
# Show module profile
dnf module info nodejs
# Install with specific profile
sudo dnf module install -y nodejs:20/common# View transaction history
dnf history
# View details of a transaction
dnf history info 5
# Undo a transaction
sudo dnf history undo 5
# Redo a transaction
sudo dnf history redo 5
# Download packages without installing
sudo dnf download --downloadonly nginx
# Install from local RPM
sudo dnf install /path/to/package.rpm# List available groups
dnf group list
# Install a group
sudo dnf group install -y "Server with GUI"
# Remove a group
sudo dnf group remove -y "Development Tools"
# Common groups:
# Server with GUI
# Minimal Install
# Base
# Core
# Development Tools
# System Management Tools