Most people know that Fedora is the upstream for major releases of Red Hat Enterprise Linux (RHEL). You might also notice that Red Hat ships a smaller package set for RHEL than you'll find with Fedora, for a number of reasons. What if you're a Fedora user who also wants ImageMagick or Chromium on your RHEL workstation? You may want to take a look at EPEL.

What is EPEL, and how do I use it with RHEL?

RHEL ships with only a subset of packages that you'll find in Fedora Linux. This makes sense, because there's a lot of software in Fedora that isn't needed in an enterprise environment or falls outside the scope of RHEL. Red Hat maintains and supports the packages in RHEL far longer than the lifespan of a Fedora release, and we select the software we feel is necessary for our customers to be successful in deploying and using RHEL to run their workloads.

But Fedora users sometimes find that they miss this or that application that's available in Fedora but not through RHEL. So, EPEL was formed. Extra Packages for Enterprise Linux (EPEL) is a special interest group (SIG) from the Fedora Project that provides a set of additional packages for RHEL (and CentOS, and others) from the Fedora sources.

To get a package into EPEL, it has to be in Fedora first. EPEL follows the Fedora Packaging Guidelines to ensure successful integration, and only includes free and open source software that isn't patent encumbered. So you won't find any proprietary software in EPEL or things like multimedia codecs that are restricted by patents, even if software enabling them is under an open source license.

Is EPEL supported?

Before we get into the "how" we should probably address the question of support. EPEL is supported in the finest open source community tradition. ("If it breaks, you get to keep both pieces.") That is to say, EPEL isn't supported in the sense that RHEL is supported. Like most open source projects (as opposed to enterprise open source), it's a "we do what we can" arrangement that provides a lot of benefits for users but without the assurance of production readiness or support.

Red Hat doesn't support the packages in EPEL or offer any SLAs around bugfixes or patches for CVEs. It's possible, too, that packages in EPEL will "come and go" (to use the project language) over the course of a single RHEL release. It's possible that updates will require administrator intervention. The EPEL project recommends that users of EPEL subscribe to the epel-announce mailing list to be aware of upcoming issues and to have time to test before the update have any impact.

That doesn't mean EPEL doesn't have a place in your environment, just that you should consider where and how you deploy packages from EPEL.

What's included with EPEL?

EPEL is a selection of packages from Fedora, but only packages that are not in RHEL or its layered products to avoid conflicts. (So, for example, you won't find a newer version of something in EPEL that already ships with RHEL.) My back-of-napkin math shows about 3,166 packages in EPEL 8, whereas Fedora has nearly 19,000 packages for x86_64 (not counting "noarch" packages).

The package list for EPEL varies by release and architecture. Packages that are available for, say, EPEL 7 on x86_64 may not be available for EPEL 8 on Power or ARM. You can find links to the package sets on the Fedora Wiki. Packages are not automatically branched from release to release as various maintainers do not want to add their packages until they are ready to do so. This means that packages may take time to enter into a new release like EPEL 8.

Currently EPEL has packages for RHEL 6, RHEL 7, and RHEL 8. The packages in EPEL include things like modules for Python, Perl, Ruby gems, and other extras for other programming languages. You'll find also utilities like etckeeper , ImageMagick and GraphicsMagick, and the Chromium browser builds. (Not a complete list, of course.)

I want the EPEL. Show me how!

If you are ready to give EPEL a spin, here's how you can get started. Instructions are on the Fedora Wiki for each release. I'm going to give the commands to get EPEL running on RHEL 8, but if you're on RHEL 6 or RHEL 7 you can find those instructions on the wiki.

First, the EPEL folks require enabling the CodeReady Linux Builder repo for RHEL 8. This is a repo with some tools you might need to build applications for RHEL (among other things).

# ARCH=$( /bin/arch ) # subscription-manager repos --enable "codeready-builder-for-rhel-8-${ARCH}-rpms"

This, of course, assumes you have a RHEL 8 machine that is subscribed. After you've added these repos, go ahead and install the EPEL RPM:

# yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm

Now you can check to see which packages are available from EPEL:

# yum --disablerepo="*" --enablerepo="epel" list available

If you want one of the packages, just install it normally using yum . So, for example, if you want to install Chromium browser on your RHEL workstation:

# yum install -y chromium

That will grab the appropriate packages from EPEL and install them. The -y just tells yum to go ahead and run the operation without having to confirm, if you want to see all the packages that will be installed to get Chromium before installing, omit that from the command.

EPEL is not an official part of the RHEL subscription or an official offering from Red Hat. But it can come in handy for admins and developers who work with RHEL and need a few utilities packaged for RHEL from a source they can feel good about.