When CentOS is not CentOS
Contents
1. What do you mean that my version of CentOS isn't CentOS?
I was sent to this page because I was told that my version of CentOS isn't CentOS. Will you please explain this?
(Firstly, apologies if this seems unhelpful or impolite - we are really only trying to save time by being clear!)
We have noticed that a lot of people are offering something that they call CentOS but is in reality only based on CentOS. It has been modified by the people making it available to suit their particular use-case. This is sometimes the case for providers of Linux Virtual Private Servers (VPS) and 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 distribution but add or modify some of the core components away from how they were released by CentOS. For example OpenVZ may require a different kernel then the one that CentOS supplies and CPanel provide their own, modified, versions of Apache and PHP.
Whilst this presumably suits the needs of these providers, it causes a problem when you seek support from CentOS through their official and unofficial channels.
Through much experience and frustration, providers of this support have had many wasted conversations where it emerged that the person seeking help was in fact using a modified version of CentOS and the software and configurations that were expected were significantly changed. A common response might be, "You should change the file at {path} from {this} to {that} to fix this problem..." but it turns out that the file doesn't exist at that path or the contents have been changed from how they were released by CentOS.
Not only does that make it frustrating to provide support for, but it also runs a very real risk that our suggestions will break something on that provider's installation.
Therefore, if you think you may be running a modified version of CentOS, provided by a VPS provider or a web host, please seek help from them.
If your problem involves a specific software package, such as PHP or Apache, you may wish to seek more specialised support channels as well.
2. How do I determine if I have CentOS or a ''modified'' version of CentOS?
There are several different points that can be checked to quickly verify if you have CentOS. Go over each of these points to make sure you have CentOS and not a modified version:
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-419.el5, CentOS 6 should look like 2.6.32-642.15.1.el6 and CentOS 7 like 3.10.0-514.10.2.el7 (these are the current versions as of 2017-03-19). The kernel version will always use the structure kernelversion-kernelrelease.centosrelease. On CentOS 5 for example the kernelversion will always be 2.6.18, on CentOS 6 it will always be 2.6.32 and on CentOS 7 it will always be 3.10.0 and these will not change over the entire lifetime of the distribution. The kernelrelease will normally be a single number or a string of 3 numbers with periods as separators. The centosrelease will always be el5 for CentOS 5, el6 for CentOS 6 and el7 for CentOS 7.
If your kernel version contains the string: stab and looks likes this 2.6.18-92.1.13.el5.028stab059.6, then you have a kernel that was built by your provider and not by the CentOS project. The 'stab' indicates that the kernel was built from sources modified by a virtualization project based on OpenVZ. This is not a kernel which CentOS provides, and so you are not running CentOS, but likely a modified version.
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 update 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 do 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, for CentOS 6 Apache would be 2.2.15, php 5.3.3 and perl 5.10.1 and, lastly, for CentOS 7, Apache httpd would be 2.4.6, php 5.4.16 and perl 5.16.3. 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 modified respins of CentOS change major portions of the distribution. The CentOS team has 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 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. I've checked and I'm certain I really am running CentOS!
Great! And there are VPS providers who DO use CentOS for their builds without modifying it, so you could be one of the lucky ones! Please use the most convenient way to ask for help and if you're pointed this way again, just explain you've followed this guide and you're sure the host hasn't modified your installation.
5. Ok, I don't have CentOS. What now?
There are basically 4 options available.
The first option is to ask your hosting provider to provide CentOS if that is what they claimed they would do. Failing that, you can look for another provider who does provides CentOS.
If your problem is with a specific software package, seek support from specialised support channels. (Such as ##php or #perl on Libera.chat IRC)
The third option 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 fourth option is that you change the configuration of the non-standard CentOS installation provided to look like the 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.