Simple Steps: How to Convert from CentOS 8 to CentOS Stream | Holhol24

CentOS Linux’s future is CentOS Stream – yes, you have heard it correctly. This is the exact announcement from Rich Brown, community manager of CentOS.

In 2021, CentOS will be shifting focus from CentOS Linux to CentOS Stream, a midstream between Fedora and RHEL. This announcement garnered a lot of negative reactions in the comments section and all over social media and blogs.

Along with this, the support for CentOS 8 will end at the end of 2021, cut short from the actual end date – 31st May 2029. This end of support forces users to switch to CentOS stream as early as possible.

If you plan to upgrade from CentOS 7 to CentOS 8, you can skip or avoid upgrading to CentOS 8 as CentOS 7 will get support until 2024.

Though you may like it or not, we have to migrate our systems from CentOS 8 to CentOS stream one day. So, follow the below procedure to migrate from CentOS 8 to CentOS stream without any struggle.

Update CentOS 8 (Optional)

Bring up your system to the latest release of CentOS 8 (v8.3.2011) and then proceed to upgrade.

dnf update -y

Reboot the system to complete the update.

reboot

Check the OS version post-reboot.

cat /etc/centos-release

Output:

CentOS Linux release 8.3.2011

Convert from CentOS 8 to CentOS Stream

Install the CentOS Stream release package on your system. This package places the CentOS Stream repository configuration in the /etc/yum.repos.d directory.

dnf install centos-release-stream -y

Output:

CentOS-8 - AppStream                                                               1.4 MB/s | 6.2 MB     00:04    
CentOS-8 - Base                                                                    489 kB/s | 2.3 MB     00:04    
CentOS-8 - Extras                                                                  2.4 kB/s | 8.1 kB     00:03    
CentOS-8 - PowerTools                                                              616 kB/s | 2.0 MB     00:03    
Google Cloud SDK                                                                   5.0 MB/s |  23 MB     00:04    
Google Compute Engine                                                              2.3 kB/s | 7.4 kB     00:03    
Dependencies resolved.
===================================================================================================================
 Package                            Arch                Version                          Repository           Size
===================================================================================================================
Installing:
 centos-release-stream              x86_64              8.1-1.1911.0.7.el8               extras               11 k
Installing dependencies:
 centos-gpg-keys                    noarch              1:8-2.el8                        BaseOS               12 k
 centos-linux-release               noarch              8.3-1.2011.el8                   BaseOS               22 k
     replacing  centos-release.x86_64 8.0-0.1905.0.9.el8
 centos-linux-repos                 noarch              8-2.el8                          BaseOS               20 k

Transaction Summary
===================================================================================================================
Install  4 Packages

Total download size: 64 k
Downloading Packages:
(1/4): centos-gpg-keys-8-2.el8.noarch.rpm                                           11 kB/s |  12 kB     00:01    
(2/4): centos-linux-repos-8-2.el8.noarch.rpm                                        18 kB/s |  20 kB     00:01    
(3/4): centos-linux-release-8.3-1.2011.el8.noarch.rpm                               20 kB/s |  22 kB     00:01    
(4/4): centos-release-stream-8.1-1.1911.0.7.el8.x86_64.rpm                         139 kB/s |  11 kB     00:00    
-------------------------------------------------------------------------------------------------------------------
Total                                                                               27 kB/s |  64 kB     00:02     
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                           1/1 
  Running scriptlet: centos-gpg-keys-1:8-2.el8.noarch                                                          1/1 
  Installing       : centos-gpg-keys-1:8-2.el8.noarch                                                          1/5 
  Installing       : centos-linux-release-8.3-1.2011.el8.noarch                                                2/5 
  Installing       : centos-linux-repos-8-2.el8.noarch                                                         3/5 
  Installing       : centos-release-stream-8.1-1.1911.0.7.el8.x86_64                                           4/5 
  Obsoleting       : centos-release-8.0-0.1905.0.9.el8.x86_64                                                  5/5 
warning: /etc/yum.repos.d/CentOS-PowerTools.repo saved as /etc/yum.repos.d/CentOS-PowerTools.repo.rpmsave

  Running scriptlet: centos-release-8.0-0.1905.0.9.el8.x86_64                                                  5/5 
  Verifying        : centos-gpg-keys-1:8-2.el8.noarch                                                          1/5 
  Verifying        : centos-linux-release-8.3-1.2011.el8.noarch                                                2/5 
  Verifying        : centos-release-8.0-0.1905.0.9.el8.x86_64                                                  3/5 
  Verifying        : centos-linux-repos-8-2.el8.noarch                                                         4/5 
  Verifying        : centos-release-stream-8.1-1.1911.0.7.el8.x86_64                                           5/5 

Installed:
  centos-release-stream-8.1-1.1911.0.7.el8.x86_64                 centos-gpg-keys-1:8-2.el8.noarch                 
  centos-linux-release-8.3-1.2011.el8.noarch                      centos-linux-repos-8-2.el8.noarch                

Complete!

Run the below command remove the CentOS 8 repository configurations from the /etc/yum.repos.d directory.

dnf swap centos-{linux,stream}-repos -y

Output:

Dependencies resolved.
===================================================================================================================
 Package                            Arch                Version                   Repository                  Size
===================================================================================================================
Installing:
 centos-stream-release              noarch              8.4-1.el8                 Stream-BaseOS               21 k
     replacing  centos-linux-release.noarch 8.3-1.2011.el8
     replacing  centos-release-stream.x86_64 8.1-1.1911.0.7.el8
 centos-stream-repos                noarch              8-2.el8                   Stream-BaseOS               19 k
Removing:
 centos-linux-repos                 noarch              8-2.el8                   @BaseOS                     26 k

Transaction Summary
===================================================================================================================
Install  2 Packages
Remove   1 Package

Total download size: 40 k
Downloading Packages:
(1/2): centos-stream-release-8.4-1.el8.noarch.rpm                                   18 kB/s |  21 kB     00:01    
(2/2): centos-stream-repos-8-2.el8.noarch.rpm                                       16 kB/s |  19 kB     00:01    
-------------------------------------------------------------------------------------------------------------------
Total                                                                               18 kB/s |  40 kB     00:02     
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
  Preparing        :                                                                                           1/1 
  Running scriptlet: centos-stream-repos-8-2.el8.noarch                                                        1/1 
  Installing       : centos-stream-repos-8-2.el8.noarch                                                        1/5 
  Installing       : centos-stream-release-8.4-1.el8.noarch                                                    2/5 
  Obsoleting       : centos-release-stream-8.1-1.1911.0.7.el8.x86_64                                           3/5 
  Obsoleting       : centos-linux-release-8.3-1.2011.el8.noarch                                                4/5 
  Erasing          : centos-linux-repos-8-2.el8.noarch                                                         5/5 
  Running scriptlet: centos-linux-repos-8-2.el8.noarch                                                         5/5 
  Verifying        : centos-stream-release-8.4-1.el8.noarch                                                    1/5 
  Verifying        : centos-linux-release-8.3-1.2011.el8.noarch                                                2/5 
  Verifying        : centos-release-stream-8.1-1.1911.0.7.el8.x86_64                                           3/5 
  Verifying        : centos-stream-repos-8-2.el8.noarch                                                        4/5 
  Verifying        : centos-linux-repos-8-2.el8.noarch                                                         5/5 

Installed:
  centos-stream-release-8.4-1.el8.noarch                     centos-stream-repos-8-2.el8.noarch                    

Removed:
  centos-linux-repos-8-2.el8.noarch                                                                                

Complete!

Synchronize the installed packages to the latest available versions.

dnf distro-sync -y

This action would take some time to complete, and it depends on the speed of the internet connection. Wait for the update to complete.

Reboot the system post-migration.

reboot

Validate the OS release after reboot.

cat /etc/centos-release

Output:

CentOS Stream release 8

Conclusion

Most of us have not witnessed CentOS Stream in the production environment. So, this announcement may force us to look for other options that can provide a stable release like Rocky Linux, a community-driven, enterprise-ready Linux from the founder of the CentOS project (No ETA for a release)  or Oracle Linux.