EPEL & Repositories

EPEL and other repositories extend package availability for RHEL, Rocky, and Alma.

EPEL (Extra Packages for Enterprise Linux)

What is EPEL?

  • Fedora-maintained packages for Enterprise Linux

  • High-quality, well-tested packages

  • Does not conflict with base RHEL packages

  • Free and open source

Install EPEL

RHEL 9

# Enable CRB repository first (required for some EPEL packages)
sudo subscription-manager repos --enable codeready-builder-for-rhel-9-x86_64-rpms

# Install EPEL
sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm

# Verify
dnf repolist | grep epel

Rocky/Alma 9

# Enable CRB
sudo dnf config-manager --set-enabled crb

# Install EPEL
sudo dnf install epel-release

# Verify
dnf repolist | grep epel

RHEL/Rocky/Alma 8

# RHEL 8
sudo subscription-manager repos --enable codeready-builder-for-rhel-8-x86_64-rpms
sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

# Rocky/Alma 8
sudo dnf config-manager --set-enabled powertools
sudo dnf install epel-release
# Development tools
sudo dnf install htop neofetch jq yq

# Security
sudo dnf install fail2ban

# System tools
sudo dnf install ncdu btop duf

# Editors
sudo dnf install neovim

Disable EPEL Temporarily

# Single command without EPEL
sudo dnf install package --disablerepo=epel

# Disable persistently
sudo dnf config-manager --set-disabled epel

RPM Fusion

Additional packages including proprietary codecs and drivers.

Install RPM Fusion

# Free repository
sudo dnf install https://mirrors.rpmfusion.org/free/el/rpmfusion-free-release-$(rpm -E %rhel).noarch.rpm

# Nonfree repository (includes NVIDIA drivers, etc.)
sudo dnf install https://mirrors.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-$(rpm -E %rhel).noarch.rpm

Common RPM Fusion Packages

# Multimedia codecs
sudo dnf install ffmpeg

# NVIDIA drivers (nonfree)
sudo dnf install akmod-nvidia

ELRepo

Kernel and hardware-related packages.

Install ELRepo

# Import GPG key
sudo rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

# Install ELRepo
sudo dnf install https://www.elrepo.org/elrepo-release-9.el9.elrepo.noarch.rpm

Kernel Packages

# List available kernels
dnf list available --disablerepo='*' --enablerepo=elrepo-kernel

# Install mainline kernel
sudo dnf --enablerepo=elrepo-kernel install kernel-ml

# Install long-term kernel
sudo dnf --enablerepo=elrepo-kernel install kernel-lt

Remi’s Repository

PHP and other web development packages.

Install Remi

# RHEL 9
sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-9.rpm

# Enable PHP module
sudo dnf module reset php
sudo dnf module enable php:remi-8.3
sudo dnf install php

Custom Repositories

Create Local Repository

# Install createrepo
sudo dnf install createrepo_c

# Create repository directory
sudo mkdir -p /var/repos/custom

# Copy RPMs
sudo cp *.rpm /var/repos/custom/

# Generate metadata
sudo createrepo_c /var/repos/custom/

# Create repo file
cat <<EOF | sudo tee /etc/yum.repos.d/custom.repo
[custom]
name=Custom Local Repository
baseurl=file:///var/repos/custom
enabled=1
gpgcheck=0
EOF

Serve Repository via HTTP

# Install and configure nginx
sudo dnf install nginx
sudo ln -s /var/repos /usr/share/nginx/html/repos
sudo systemctl enable --now nginx

# Create repo file pointing to HTTP
cat <<EOF | sudo tee /etc/yum.repos.d/custom.repo
[custom]
name=Custom Repository
baseurl=http://server.local/repos/custom
enabled=1
gpgcheck=0
EOF

Repository Best Practices

# Priority (lower = higher priority)
# Add to repo file:
priority=10

# Cost (lower = preferred)
cost=500

# Always verify GPG when possible
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-custom

Repository Troubleshooting

Common Issues

# Clear cache
sudo dnf clean all

# Rebuild cache
sudo dnf makecache

# Check repo status
dnf repolist -v

# Disable problematic repo temporarily
sudo dnf upgrade --disablerepo=problem-repo

GPG Key Issues

# List installed keys
rpm -qa gpg-pubkey*

# Import key
sudo rpm --import https://example.com/RPM-GPG-KEY

# Remove key
sudo rpm -e gpg-pubkey-KEYID

Metadata Sync Issues

# Force metadata refresh
sudo dnf clean metadata
sudo dnf clean expire-cache
sudo dnf makecache --refresh

Repository Summary

Repository Content Stability

EPEL

Extra packages from Fedora

High

RPM Fusion

Multimedia, drivers

Medium-High

ELRepo

Kernels, hardware drivers

High

Remi

PHP, web development

High