When CentOS is not CentOS

1. What do you mean that my version of CentOS isn't genuine CentOS?

I was sent to this page because I was told that my version of CentOS isn't genuine CentOS. Will you please explain this?

We have noticed that a lot of people are offering something that they call CentOS. But this something is in reality only based on CentOS and it has been modified by the people making it available. This is usually the case for hosters that provide a Linux VPS (Virtual Private Server). This is usually accomplished using site hosting software like CPanel or Plesk, or by using virtualization software like Virtuozzo or OpenVZ

These software projects use CentOS as their base but add or modify some of the core components. For example OpenVZ require a different kernel then the one that CentOS ships and CPanel provide their own version of Apache and PHP.

We are not mind readers and do not know every way that a downstream vendor might modify a basic CentOS installation. We DO know, however, that a novice administrator, such as one unfamiliar or unwilling to use the command line, unwilling to read the documentation (man and info pages) or who will not use the CentOS provided management tools, can EASILY break a working installation.

/!\ Please: consult your vendor's support channels first.

2. How do I determine if I have genuine CentOS or a modified version of CentOS?

There are several different points that can be checked to quickly verify if you have genuine CentOS. Go over each of these points to make sure you have real CentOS:

2.1. The kernel

The CentOS kernel will always use a consistent naming method. Use the command uname -r to see what kernel you are running.

On a CentOS 5 machine this should look like 2.6.18-194.3.1.el5. The kernel version will always use the structure kernelversion-kernelrelease.centosrelease. On CentOS 5 for example the kernelversion will always be 2.6.18 and will not change, the kernelrelease will normally be a single number (previous examples are 53, 92, 128 and 164) or a string of 3 numbers with periods as separators (previous examples are 92.1.13, 128.1.1, etc). The centosrelease will always be el5 for CentOS 5.

If your kernel version contains the string: stab and looks likes this 2.6.18-92.1.13.el5.028stab059.6, then you have custom-made kernel, usually from a virtualization project based on OpenVZ. This is not a kernel which CentOS provides, and so you are not running real CentOS.

2.2. Continuous access to updates issued by the CentOS Project

A true CentOS system also may be freely updated from the CentOS mirror distribution system at any time. This is usually done by running the yum command as root. We note this requirement because security fixes are issued asynchronously and, similarly, the CentOS Project releases those updates to the mirrors as those packages are built and pass certain qualification testing. See this discussion for more detail

2.3. The Yum configuration files

Another core part of CentOS is the configuration of the yum command. On a real CentOS system the yum configuration will point to the CentOS mirrors. To verify this run the command rpm -qV yum and rpm -qV centos-release. The rpm -qV command will verify the content of a RPM package and will show any changes made to the files that are present in the RPM package.

On a standard CentOS distribution the rpm -qV commands should return no output. If these commands to return output then there are files changed and you are most likely not running a real CentOS. Common changes are to exclude certain packages (usually done in /etc/yum.conf) or to replace the standard CentOS repositories (which are defined in /etc/yum.repos.d/CentOS-Base.repo).

2.4. Changed core packages

A lot of the VPS offerings that use CentOS as a base change certain core packages. Common examples are Perl, Apache, PHP and MySQL. The downstream vendors sometimes then add exclude= package name to the yum configuration files, which is shown by running this command:

grep -ri exclude /etc/yum.*

If you were referred to this page because (for example) you could not install a certain Perl or PHP module then you most likely have a non-standard version of that package.

To demonstrate this, first verify the version number of the package in question and then compare it against the one available in the CentOS base & updates repositories. For example, with CentOS 5 the Apache version should be 2.2.3, for PHP 5.1.6 and for Perl 5.8.8. Also you can use rpm -qV to verify if there are any files changed in an installed package.

3. So what? It's based on CentOS, so why can't you support me?

As noted, these respins of CentOS change major portions of the distribution. We have no involvement with those changes, do not know what they are nor the extent of those changes. Any recommendations we make are based from our knowledge and experience of using genuine CentOS as provided by the CentOS Project. Such recommendations could violate the Terms of Service of your hosting provider or even break your system. Because of this, we cannot provide you with support.

4. Ok, I don't have genuine CentOS. What now?

There are basically 3 options available.

The first option is to ask your hosting provider to provide genuine CentOS if that is what they claimed they would do. Failing that, you can look for another provider who does provides genuine CentOS.

The second options is to use the non-standard CentOS installation, as is. But this means that you cannot use the CentOS community for support because of what has been clearly explained, above. For support you will need to talk to the provider of your non-standard CentOS installation.

The third option is that you change the configuration of the non-standard CentOS installation provided to look like the a genuine CentOS installation. More information on how to do this can be found at the Broken VServer page. We are not responsible if you break your system or violate your ToS, leading to either data or monetary loss.

AdditionalResources/OtherSpins (last edited 2012-08-24 16:35:14 by RussHerrold)