CentOS Stream
CentOS Stream is a continuously delivered Linux distribution developed by Red Hat Enterprise Linux (RHEL) engineers as part of the RHEL development process, positioned as a midstream platform between Fedora Linux and RHEL to enable early collaboration and innovation in the enterprise Linux ecosystem.[1][2] It serves as a preview of upcoming RHEL minor releases, allowing the community to test and contribute to features before they are integrated into stable RHEL versions, while maintaining compatibility with RHEL's API and ABI stability promises.[2][1] Originally announced in December 2020 as the future direction of the CentOS Project, CentOS Stream replaced the traditional CentOS Linux—a point-in-time rebuild of RHEL—with a rolling-release model to foster greater upstream influence from the open-source community on RHEL's evolution.[3][4] New major versions of CentOS Stream are released approximately every three years with a support lifecycle of about five years; the latest, CentOS Stream 10, was introduced on December 12, 2024, based on technologies including Linux kernel 6.12, Python 3.12, and GNOME 47, and is maintained until approximately 2030 in alignment with RHEL 10's full support phase.[5][6] CentOS Stream supports production deployments, development environments, and special interest groups (SIGs) building derivative projects, with development occurring in phases from bootstrap to release, drawing from Fedora's Enterprise Linux Next (ELN) as its upstream base.[2][7]Overview and Background
Definition and Purpose
CentOS Stream is a community-driven, free Linux distribution that serves as a continuous-update alternative to Red Hat Enterprise Linux (RHEL), providing a stable platform for developers and users seeking enterprise-grade software without proprietary costs.[2][8] Developed in collaboration with RHEL engineers, it functions as the primary upstream branch for RHEL, incorporating ongoing enhancements and serving as a preview of upcoming RHEL features.[4] The core purpose of CentOS Stream is to act as a testing and development ground where community members, partners, and ecosystem developers can contribute to and influence future RHEL versions, shortening feedback loops and fostering innovation within the enterprise Linux ecosystem.[8][2] By enabling early access to fixes, features, and security updates, it allows contributors to shape RHEL's evolution while maintaining a focus on stability and reliability for production-like environments.[4] Key characteristics of CentOS Stream include its rolling release model, which delivers continuous updates rather than fixed point releases, ensuring users receive the latest improvements in a timely manner.[2] It upholds binary compatibility with RHEL through adherence to API and ABI stability promises, making it suitable as a preview platform for applications intended for enterprise deployment.[8][2] In historical context, CentOS Stream emerged in 2020-2021 as the successor to the traditional CentOS Linux, which relied on point-release rebuilds of RHEL; this shift redirected the CentOS Project's focus toward a more dynamic, development-oriented model to better align with modern enterprise Linux needs.[8][4]Relationship to Red Hat Products
CentOS Stream functions as a midstream distribution in the Red Hat ecosystem, positioned between Fedora Linux as the upstream source of innovations and Red Hat Enterprise Linux (RHEL) as the downstream production platform. It receives packages and updates from Fedora, allowing community and enterprise developers to test and refine changes before they are incorporated into RHEL. This model enables Red Hat to integrate feedback from independent software vendors (ISVs) and hardware vendors (IHVs) into the RHEL development process.[9] Red Hat plays a central role in CentOS Stream through sponsorship, funding, and direct development contributions, having shifted its investment fully to the project in 2020 as the primary platform for RHEL source code evolution. Since then, Red Hat has utilized CentOS Stream for beta testing of upcoming RHEL minor releases, providing early access to source code that directly informs stable enterprise deployments. This involvement ensures that CentOS Stream tracks just ahead of RHEL, serving as a collaborative space where open source contributors work alongside Red Hat engineers.[9][10][1] CentOS Stream maintains binary compatibility with RHEL by building packages from the identical source code used for RHEL, which facilitates seamless migrations between the two using tools like Convert2RHEL—though such conversions from CentOS Stream remain unsupported for certain versions to emphasize its developmental nature. This compatibility underscores CentOS Stream's role in validating enterprise workloads without introducing proprietary divergences.[9][11] In contrast to Fedora's focus on cutting-edge features and rapid innovation cycles, CentOS Stream adopts a more conservative approach to updates, prioritizing enterprise stability and predictability to align with RHEL's long-term support requirements. While Fedora serves as a testing ground for new technologies, CentOS Stream emphasizes reliability for production-like environments, avoiding experimental changes that could disrupt downstream RHEL stability.[9][8]Development History
Announcement and Early Development
On December 8, 2020, the CentOS Project, in coordination with Red Hat, announced a major shift in direction, declaring CentOS Stream as the future of the project while phasing out the traditional CentOS Linux point releases. This decision positioned CentOS Stream as the primary development branch, serving as an upstream platform for Red Hat Enterprise Linux (RHEL) to enable ongoing community contributions ahead of stable RHEL releases.[3] The announcement specified that CentOS Linux 8, a downstream rebuild of RHEL 8, would receive updates only until December 31, 2021, accelerating its end-of-life from the originally planned 2029 date. CentOS Stream, which had been introduced in September 2019 as a rolling preview of upcoming RHEL features, would continue indefinitely as the core offering, built directly from the RHEL 8 codebase with continuous integration of new packages and enhancements.[10] The primary motivations for this pivot were to better align the CentOS community with Red Hat's RHEL development process, allowing for earlier testing and refinement of innovations in enterprise Linux. By focusing resources on CentOS Stream, the project aimed to streamline collaboration, reduce duplication of effort between downstream rebuilds and upstream development, and accelerate the delivery of stable, enterprise-grade features through faster iteration cycles.[3] Early development efforts post-announcement centered on expanding CentOS Stream 8's ecosystem, incorporating ongoing RHEL 8-derived updates and preparing for the launch of CentOS Stream 9 in the second quarter of 2021. This phase involved enhancing build pipelines, documentation, and community tools to support the rolling model, ensuring seamless integration of feedback into RHEL's roadmap.[10] Initial reactions from the Linux community were mixed, with enthusiasm from developers interested in upstream contributions tempered by widespread concerns among system administrators about the shift from predictable point releases to a continuous stream that might introduce instability in production settings.[12]Transition from CentOS Linux
The transition from CentOS Linux to CentOS Stream marked a significant shift in the project's direction, prompted by the end of support for CentOS Linux releases. CentOS Linux 8 reached its end-of-life on December 31, 2021, after which no further updates, security patches, or errata were provided.[13] Similarly, CentOS Linux 7 concluded support on June 30, 2024, aligning with the end of maintenance for its upstream Red Hat Enterprise Linux (RHEL) 7 counterpart.[14] Migration paths were outlined officially to facilitate the switch, particularly for CentOS Linux 8 users. The recommended process involved installing CentOS Stream repositories and synchronizing packages using DNF commands: first,sudo dnf swap centos-linux-repos centos-stream-repos, followed by sudo dnf distro-sync to upgrade the system.[4] For CentOS Linux 7, direct in-place upgrades to CentOS Stream were not supported; users were advised to perform a fresh installation of CentOS Stream 9 or use intermediate tools like the Leapp utility for paths to RHEL-compatible systems before transitioning. While community-developed scripts and tools, such as adaptations of the older centos-upgrade-tool for major version jumps, were sometimes employed, official documentation emphasized clean migrations to avoid compatibility issues.[15]
The announcement and implementation of this transition elicited substantial user backlash within the Linux community, primarily due to the loss of long-term, stable point releases that CentOS Linux had provided as a free RHEL clone. Many users and organizations relied on its predictability for production environments, and the move to CentOS Stream's continuous, rolling-release model was seen as introducing instability for enterprise use cases.[16] This discontent spurred the rapid emergence of community-driven alternatives, including Rocky Linux, founded by CentOS co-creator Gregory Kurtzer in early 2021, and AlmaLinux, backed by CloudLinux, both aiming to restore RHEL-compatible, stable distributions without the upstream development focus of Stream.[17]
Red Hat provided extensive official guidance through documentation, emphasizing the rationale for the shift to a continuous development model in CentOS Stream to foster greater community collaboration on future RHEL versions. This approach allows early access to innovations and bug fixes, positioning Stream as an upstream testing ground rather than a downstream stable rebuild, thereby enhancing overall ecosystem transparency and velocity.[9] Users were directed to resources like the Convert2RHEL tool for those opting to migrate directly to paid RHEL support, with warnings about potential disruptions during the repository swap process.[18]
Post-2020 Evolution and Updates
In April 2023, the CentOS Project announced the end-of-life dates for CentOS Linux 7 and CentOS Stream 8, setting June 30, 2024, as the final date for updates to CentOS Linux 7 and May 31, 2024, for archiving CentOS Stream 8, aligning these timelines with Red Hat Enterprise Linux (RHEL) maintenance phases to streamline focus on upstream development.[19] Subsequent enhancements in CentOS Stream emphasized improved update mechanisms and closer ties to upstream projects, notably through the integration of Fedora Enterprise Linux Next (ELN) for bootstrapping CentOS Stream 10, released on December 12, 2024, which enables continuous builds from Fedora Rawhide tailored to enterprise needs.[20] The Proposed Updates Special Interest Group (SIG) further supports production environments by providing faster access to critical updates slated for inclusion in CentOS Stream, bridging development and deployment gaps.[21] In 2025, CentOS Stream 10 addressed initial SecureBoot compatibility issues with a patch released on July 7, restoring full functionality for systems requiring this security feature.[6] The project's governance remained active, as evidenced by the October 2025 board meeting, where discussions covered infrastructure renewals, event planning, and policy updates like AI usage and trademarks. Post-transition, the CentOS community saw expanded activity in SIGs tailored to modern workloads, with the Cloud SIG growing to deliver free and open-source software (FOSS) tools for cloud infrastructure, including container orchestration via projects like OpenStack and Podman integrations, while the Hyperscale SIG, launched in early 2021, advanced optimizations for large-scale containerized and cloud-native deployments.[22][23][24]Technical Architecture
Core Components and Base
CentOS Stream is fundamentally derived from the source code that feeds into Red Hat Enterprise Linux (RHEL), serving as a rolling-release platform where upstream contributions from Fedora are integrated and stabilized before being incorporated into downstream RHEL releases.[3] Starting with CentOS Stream 10, the distribution adopts the x86_64-v3 architecture baseline, which optimizes performance on modern Intel and AMD processors by leveraging advanced instruction sets like AVX2 and BMI2, while dropping support for older x86_64-v1 and v2 hardware to enable these enhancements.[6][20] At its core, CentOS Stream 10 utilizes Linux kernel version 6.12, which includes a series of enterprise-oriented patches focused on enhancing stability, security, and long-term support for server environments.[6][25] These patches, drawn from ongoing RHEL development efforts, address issues such as improved driver reliability and reduced latency in high-load scenarios, ensuring the kernel aligns with the needs of production workloads ahead of RHEL 10's finalization.[20][26] Hardware support in CentOS Stream centers on the x86_64 architecture as the primary target (with a v3 baseline in version 10), alongside official support for aarch64 (ARM64), ppc64le (IBM Power), and s390x (IBM Z), providing broad compatibility with enterprise servers, desktops, and cloud instances from major vendors.[6] It complies with POSIX standards, particularly POSIX.1 for system interfaces and utilities, promoting portability of applications in enterprise settings where interoperability with Unix-like systems is essential. This compliance ensures that software developed or ported to CentOS Stream operates seamlessly in heterogeneous IT infrastructures.[27]Package Management System
CentOS Stream employs DNF (Dandified YUM) as its primary package manager for installing, updating, and removing software packages in RPM format.[28] DNF serves as the implementation of YUM version 4, providing backward compatibility through theyum command alias, which allows scripts and users familiar with older YUM syntax to function seamlessly.[28] This system supports dependency resolution, metadata caching, and plugin extensibility, enabling efficient management of software across single machines or networked environments.[28]
The repository structure in CentOS Stream is organized into distinct categories to separate core system components from application-specific content. The BaseOS repository contains the foundational operating system packages, including essential libraries and binaries required for basic functionality.[6] The AppStream repository provides user-space applications, runtime languages, and databases, with support for modular content to accommodate diverse workloads.[28] Additionally, the Extra Packages for Enterprise Linux (EPEL) repository offers community-maintained extras not included in the official BaseOS or AppStream, such as additional tools and libraries, and can be enabled via the dnf install epel-release command after activating the CodeReady Builder repository.[29]
CentOS Stream follows a continuous rolling update model, where packages receive ongoing enhancements, including security patches and new feature versions, without fixed point-release cycles that freeze development.[10] Users apply updates using commands like dnf upgrade, which pulls the latest versions from repositories, ensuring the system tracks just ahead of Red Hat Enterprise Linux development for timely integration of changes.[10] This approach contrasts with traditional stable releases by prioritizing agility over version pinning, allowing administrators to maintain current software states through regular dnf check-update and upgrade operations.[28]
Modularity in CentOS Stream is facilitated through Application Streams within the AppStream repository, enabling the coexistence and selective installation of multiple versions of the same software without conflicts.[28] For instance, administrators can enable specific streams for languages like Python (e.g., 3.11 or 3.12) or Node.js (e.g., 18 or 20) using dnf module install python:3.11 or dnf module install nodejs:18, each stream including predefined profiles such as minimal, default, or development for tailored deployments.[28] Streams are managed independently, with updates applied per stream via DNF, and no default streams are set in CentOS Stream 9 and later, requiring explicit configuration for consistency across systems.[30] This feature supports flexible application lifecycle management, particularly for development and production environments needing version-specific runtimes.[30]