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
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
ELRepo
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 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