CIQ

Tracking Rocky Linux Growth Using Fedora’s EPEL Project

Tracking Rocky Linux Growth Using Fedora’s EPEL Project
Brian ClemensOctober 31, 2022

Rocky Linux is among the most frequently adopted Linux distributions now that CentOS 8 has been end-of-lifed. According to the latest metrics gathered by the Fedora infrastructure and presented by the Extra Packages for Enterprise Linux (EPEL) Special Interest Group (SIG), Rocky Linux adoption is outpacing all other Enterprise Linux variants.

How do we track Rocky’s quick uptake as an Enterprise Linux replacement for CentOS? One way is to look at the data from the EPEL registry.

The EPEL repository

The EPEL repository is maintained by the Fedora Project that provides additional packages for Enterprise Linux-flavored Linux distributions, e.g., Red Hat Enterprise Linux (RHEL), Rocky Linux, CentOS, Oracle Linux, Alma Linux, etc. The EPEL repository is used by a significant portion of Enterprise Linux users. The data they share are unbiased, and it is reasonable to assume approximately equal proportions of users of each Enterprise Linux distribution use the EPEL repository. Therefore EPEL is a useful—probably the best—proxy for comparing the adoption rates of Enterprise Linux distributions.

A Bit About CentOS

Before we dig into the data, here’s a bit about why Rocky Linux exists. CentOS—a free, enterprise-class, community-supported computing platform functionally compatible with RHEL—was an extremely popular Linux distribution until the announcement was made in December 2020 that CentOS 8 would be end-of-lifed in December 2021. End-of-life for CentOS left users looking for an alternative RHEL clone distribution that was free, reliable, secure, and well-supported for the long-term, safe from the dictates of a single corporate entity. Gregory Kurtzer, the original creator of CentOS, decided to build another community-based free RHEL alternative, and the result was Rocky Linux. Rocky Linux was designed to deliver the value of CentOS, but with a governance structure that intentionally makes it virtually impossible for one company to take over the project. 

The community has worked hard to help former CentOS users overcome the hassle they’ve experienced and emerge with a rock-solid Linux distro they can count on for the long run.

Data Collection

The Fedora Project collects information from instances accessing the EPEL repository by using the DNF “countme”1 feature. Details on the process are available here, and summarized as follows:

  • DNF’s countme feature appends query parameters (repo, arch, countme) to a connection to each repository with countme enabled.

  • This is done randomly, hard-coded to 25%, a maximum of once a week.

  • This is done to a normal DNF operation. The countme feature does not proactively initiate a connection by itself; rather a system that does not connect in a certain week will not be recorded.

  • Countme is a DNF-only feature. Yum does not support it, therefore Enterprise Linux versions 7 (EL7) and older are not accurately represented in the statistics.

  • The appended countme parameter is a value indicating the “age” of the system, counted in full weeks since the system was first installed; the values are:

    • One week or less (0-1 weeks)

    • Up to one month (2-4 weeks)

    • Up to six months (5-24 weeks)

    • More than six months (25+ weeks)

The Fedora Project processes the web server access log of mirrors.fedoraproject.org (where EPEL repository yum / DNF configurations direct to) with countme-update-rawdb.sh to extract requests with the “countme” query. The query parameters, in addition to parameters derived from the User-Agent header (importantly the distribution name, version, variant, and architecture) are added to an SQlite database. The database is then processed with countme-update-totals.sh to generate a totals.csv file, which is released publicly.

Note that many large sites (large enterprises, supercomputer clusters, etc.) are not represented in these statistics. Large sites often maintain their own mirrors of the repositories they use, including EPEL. Because Rocky Linux is seeing fast adoption in HPC / massive deployments (telco, etc) and RHEL is already used widely in large installations, Rocky Linux and RHEL are likely underrepresented in the statistics.

Charting

The data can be charted easily with numpy, pandas, and matplotlib. The Jupyter Notebook used to generate these charts in this article are available here.

The “Enterprise Linux Instances by Distribution (System Age > 1 Week)” chart shows Rocky Linux tops the list of maintained distributions. Legacy CentOS tops the list overall if it is included, but it is dropping as users convert to maintained distributions. In the “Potentially Ephemeral Enterprise Linux Instances by Distribution” and “Enterprise Linux Instances by System Age and Distribution” charts, Rocky Linux shows a much higher lead in new / ephemeral systems, indicating that the majority of new installations, migrations, and testing environments  are now running Rocky Linux. This trend will increasingly be represented in the older categories as those instances age.

Thank you, Fedora

The EPEL repository contains many useful packages like neovim and kdecommunity. These and many others can be installed on Rocky Linux with a simple ‘dnf install epel-release’ command. Thanks Fedora for maintaining EPEL!

1  DNF, or “dandified yum, is a “software package manager for RPM-based Linux distributions that installs, updates, and removes packages. It was first introduced in Fedora 18 in a testable state (i.e., tech preview), but it’s been Fedora’s default package manager since Fedora 22”. See this article for more information.

Related posts

2023 Holiday Gift Guide for Rocky Linux Users

2023 Holiday Gift Guide for Rocky Linux Users

Dec 19, 2023

Rocky Linux

4 Easy Steps to Secure SSH on Rocky Linux

4 Easy Steps to Secure SSH on Rocky Linux

Jun 21, 2023

Rocky Linux

Why Rocky Linux Is a Rock-Solid Choice in an Economic Downturn

Why Rocky Linux Is a Rock-Solid Choice in an Economic Downturn

Jan 18, 2023

Rocky Linux

123
35
>>>