Ever since Red Hat released Red Hat Enterprise Linux (RHEL) 8 in May, CentOS users have been waiting impatiently for CentOS 8 to arrive. Now, their wait is over. CentOS 8 is here and ready for download.
This is great news for the many hosting companies, data centers, and businesses with in-house Linux experts that rely on CentOS every day for their work. By Datanyze's count of web servers, CentOS, with 15.65% of the market, is second only to Ubuntu, with its 26.7% share. It's popular because CentOS is a Red Hat Enterprise Linux (RHEL) clone with most of RHEL's top-tier business server Linux benefits but without RHEL's costs.
That's great if you know Linux like the back of your hand and you're willing to take responsibility if something goes wrong. If you'd rather have the comfort of knowing you have support if things go awry, RHEL is a better choice.
What do you get with CentOS 8?
For starters, it's built on the 4.18 Linux kernel. Yes, that's far from the newest Linux kernel, but CentOS, like RHEL, is all about stability for production systems. If you want bright, new shiny kernels, look to Linux distros such as Fedora.
Other major changes include a changeup to the foundations of the Yum package manager, which is now based on the DNF (a.k.a. Dandified yum). While it maintains the same command-line interface and stable API for sysadmin and DevOps integration, it should be faster than its predecessor.
For developers, besides Git 2.18, CentOS offers these version control systems: Mercurial 4.8 and Subversion 1.10.
Python 3.6 is now CentOS' default Python implementation, but Python is not installed automatically. Limited support for Python 2.7 -- very limited from what my friends tell me -- is also available. Other languages offered in the new CentOS mix include Node.js 10.1, PHP 7.2, Ruby 2.5, Perl 5.26, and SWIG 3.0.
The CentOS GCC compiler is based on version 8.2. It includes support for more recent C++ language standard versions, better optimizations, new code hardening techniques, improved warnings, and new hardware support.
But, as neat as all that is, if you really want to use CentOS as a cutting-edge developer platform, you'll want to check out the new rolling release version of CentOS: CentOS Stream. This version, which will be released in early October, will have the latest and greatest of everything and it will be updated several times a day. Needless to say, you should not use CentOS Stream for production server systems.
CentOS also includes such server basic programs as the popular database servers: MariaDB 10.3, MySQL 8.0, PostgreSQL 10, PostgreSQL 9.6, and Redis 5. It includes the Apache HTTP Server 2.4 and nginx 1.14, too.
One important program neither it nor RHEL 8 has is Docker. Don't think Red Hat is dismissing the importance of containers. It's not. Indeed, Red Hat OpenShift is all about containers, and it's one of Red Hat's most important platforms. Instead, Red Hat has largely replaced Docker with its own container tools: buildah and podman. These are compatible with existing Docker images.
For those of you who use CentOS as a desktop, the default GNOME Shell interface has been updated to version 3.28. Underneath it, the default display server is Wayland. If you insist, you can still use the historic X.Org server for your display server.
For server admins, the biggest change is that nftables framework has replaced iptables. and the firewalld daemon uses nftables as its default backend. In short, while there shouldn't be any major changes in your firewall settings as you move up from CentOS 7.x, you'd be wise to check them carefully. For example, while nftables has an iptables commands compatibility layer, it's default syntax is different from iptables. That means you must look closely at any scripts that call on firewall functionality.
Upgrading to CentOS 8
If you want to work from the source code up, you'll find it at git.centos.org. Source code RPMs will also be published. If you're already running CentOS, you can grab the source code with the command:
yumdownloader --source <packagename>
If you want to upgrade from CentOS 7.x to 8, you should know that you'll be on your own. As far as I know, there are no instructions out yet on how to do an in-place upgrade. On RHEL, in-place upgrades are supported. Your best move will be to back up your data, take an applications inventory, do a fresh install of CentOS 8, and then port your data and applications over.
I also have a colleague who's still running CentOS 4. He's far from the only one; it was a very popular release. Do not even try to upgrade straight from CentOS 6 or earlier to CentOS 8. Bad things will happen.
For most companies, though, it's time to start evaluating CentOS 8. You may not be migrating to it immediately, but down the road, you'll want to make the upgrade.