Ubuntu and CentOS are both major players in enterprise environments and in the datacenter. There’s no denying that both distributions have proven themselves in the server space, but with closer examination, these are two very different animals.
Ubuntu is an excellent all-around contender. CentOS is purpose built for the enterprise in every aspect of its design.
These two distributions come from entirely different lineages. Ubuntu is a direct descendant of Debian, while CentOS is a clone of Redhat Enterprise Linux. As a result, they have entirely different package management systems.
Ubuntu uses Apt, the Advanced Package Tool. Apt is standard for all Debian based distributions. Apt uses more explicit controls that force you to manually update repositories and import keys when necessary. That said, it’s also a very powerful tool.
CentOS uses Redhat’s Yum, the Yellowdog Update Manager. It handles update automatically when new software is installed, and it tends to be a more speedy and direct way to install software.
It should be noted that Apt has tools and capabilities build in to handle version upgrades between releases of the entire operating system. Yum doesn’t have those capabilities, leaving most Redhat/CentOS users to opt for a clean install to upgrade.
Ubuntu has absolutely massive repositories. That’s partly due to its popularity, but it’s also because Ubuntu targets nearly all audiences and use cases. Ubuntu also has a lot of third party and community support. There is a wealth of additional repositories available for Ubuntu.
CentOS has more limited, but targeted repositories. You’ll probably have a hard time setting up a general purpose desktop with CentOS, but you’ll find everything you need for a server.
You’ll also find that the age of the software in these repositories will differ greatly, even on server releases. Ubuntu has much newer packages. CentOS, on the other hand, will maintain packages for years, choosing instead to keep things ultra consistent.
Ubuntu’s installer is one of its signature features and for good reason. That installer has been perfected over time, and it’s one of the easiest to use of any operating system.
CentOS uses the Redhat Anaconda installer. Anaconda has also been perfected over time, but its goal is somewhat different. While Ubuntu’s installer is meant to get even non-technical users running as easily as possible, Anaconda is meant to help system admins get their ideal configuration running quickly.
Anaconda has more options that let you easily configure installation and storage devices as well as the software included by default. With Anaconda, you can set up a server out of the box with the install.
Ubuntu and CentOS both have server releases, but their overall release cycle and process is very different.
Ubuntu puts out a new release roughly every six months. Those are its desktop releases, and they’re not supported for very long. Every fifth release is a long term support release. Those are supported for five years, and Canonical offers support contracts for them.
A new version of CentOS is released roughly every three to four years. Its release schedule is tied to RHEL, since it’s a clone. CentOS usually comes right after a new version of RHEL is released. Each release of RHEL, and in turn CentOS, is supported for around ten years.
Both Ubuntu and CentOS are backed by major corporations, but the nature of that support differs greatly.
Ubuntu is Canonical’s primary product. They work hard to develop a complete community and software environment around Ubuntu. Their release schedule is designed to be conducive to that as well. Official support is available for Ubuntu’s LTS releases, and Canonical works with hardware partners for better support under Ubuntu.
Redhat owns the CentOS project, and they help it with resources and information. However, that’s about where it stops. CentOS is forced to work off of the work done on RHEL, and adapt around that. Redhat doesn’t offer support contracts for CentOS or work specifically to ensure support for it. The CentOS developers do work to ensure that it is as close to an exact copy of RHEL as possible, ensuring that all RHEL knowledge is transferable.
Both of these distributions are an excellent choice for a server. The question between them really comes down to what you want more. CentOS is great if you like the Redhat ecosystem or you want an enterprise system with extra long term support.
Ubuntu is a better choice if your prefer the Debian family of distributions and you’d prefer more flexibility and more updated software. Ubuntu is also a great choice if you want the same distribution on your desktop and server.