I’ve been meaning to write an article on how to switch from CentOS to Oracle Linux for a while since Red Hat owned by IBM announced its new direction for CentOS, I’ve found myself with a bit of spare time over the weekend so finally got around to documenting the steps required to migrate from CentOS to Oracle Linux.
What is CentOS?
CentOS (Community Enterprise Operating System) was a Linux distribution that provided a free, community-supported computing platform functionally compatible with its upstream source,
Red Hat Enterprise Linux in January 2014, CentOS announced the official joining with Red Hat while staying independent from RHEL under a new CentOS governing board. The first CentOS release in May 2004, numbered CentOS version 2, was forked from RHEL version 2.1AS with the most recent version being CentOS 8 released on 24 September 2019.
In December last year, Red Hat announced that CentOS that the availability of CentOS undermines the commercial side of its business with CentOS becoming CentOS Stream, which is is a development preview of what is soon to come in Red Hat Enterprise Linux, focused on the next minor release. Fedora another distribution maintained by Red Hat is further ahead and more experimental than what CentOS will become.
In the past, CentOS has been a community build of the current RHEL source, providing a robust production distro for those willing to do without Red Hat support. When RHEL gets a fix, the project aims to have the same fix available for CentOS “within 72 hours” of its release, while new point releases of CentOS come “four to eight weeks after the release by upstream.” In other words, CentOS tracked RHEL. But with this new update, the direction changes making CentOS a more experimental OS rather than the stable distro capable of production workloads.
Not Oracle you say why move away from one corporate overload (IBM owns Red Hat) and jump in the pan with another (Oracle)?
Oracle Linux much like what CentOS does tracks the RHEL base release and bar Oracles Unbreakable Kernal is pretty much a direct clone of Red Hat with some Oracle branding slapped over the Red Hat stuff. Oracle previously posted about it here and to alleviate some concerns provides an FAQ.
Switching from CentOS to Oracle Linux
Switching from CentOS to Oracle Linux couldn’t be easier, Oracle provides a lovely shell script to do all the hard work for you, you can get it from their GitHub. Let’s demo the process below. I’ve used a CentOS 7 Vagrant host to perform the process which you can manually download yourself here or if you are already using Vargant just follow the steps below. I’ve written about Vagrant before if you are interested.
Lets get the vagrant CentOS 7 vagrant file and start the machine;
vagrant init centos/7 vagrant up
With CentOS 7 installed lets install git and ensure all the packages are up-to-date;
[vagrant@localhost ~]$ cat /etc/redhat-release CentOS Linux release 7.9.2009 (Core) sudo yum install git sudo yum update && sudo yum upgrade -yum
Lets get Oracle’s script to swap the OS from CentOS to Oracle Linux
git clone https://github.com/oracle/centos2ol.git
Lets run the centos2ol.sh script;
[root@localhost centos2ol]# ls centos2ol.sh CONTRIBUTING.md LICENSE.txt README.md SECURITY.md [root@localhost centos2ol]# ./centos2ol.sh
It doesnt take long at all to do the changes, my example took about 5 mintues to run. Below I have posted an extract of the logs
[root@localhost centos2ol]# ./centos2ol.sh Checking for required packages... Checking your distribution... package epel-release is not installed Checking for yum lock... Checking for required python packages... Finding your repository directory... Learning which repositories are enabled... Repositories enabled before update include: base extras updates Downloading Oracle Linux yum repository file... % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 16402 100 16402 0 0 55698 0 --:--:-- --:--:-- --:--:-- 55789 Looking for yumdownloader... Backing up and removing old repository files... Removing CentOS-specific yum configuration from /etc/yum.conf Downloading Oracle Linux release package... Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile ... ... ... done Removing yum cache Switch complete. Oracle recommends rebooting this system.
After a reboot of the host we see we have successfully moved from CentOS to Oracle Linux
[vagrant@localhost ~]$ uptime 12:31:05 up 0 min, 1 user, load average: 1.17, 0.42, 0.15 [vagrant@localhost ~]$ cat /etc/redhat-release Red Hat Enterprise Linux Server release 7.9 (Maipo) [vagrant@localhost ~]$ cat /etc/oracle-release Oracle Linux Server release 7.9
Another option is to wait on Rocky Linux, after the news broke Gregory Kurtzer, the founder of the CentOS project who had been out of the scene for a few years would return and create Rocky Linux with the goal of building a community enterprise operating system designed to be 100 percent bug-for-bug compatible with Red Hat Enterprise Linux. This is great news but it’s likely to be a year or two away at the earliest, you can help out with Rocky Linux and track updates on their website here.
Cloud Linux OS made a similar announcement as well that it would also work on making a CentOS/Red Hat clone called AlmaLinux. Both Rocky Linux and AlmaLinux are still developing their respective operating systems but Alma already has a working Beta which you can check out here.
Whether you like Oracle or not they have provided a viable way to move from CentOS to Oracle Linux as Red Hat starts to utilize CentOS for experimental features do you really want production hosts running on such a distro?