135

How do I determine the version of a CentOS server without access to any graphical interface? I've tried several commands:

# cat /proc/version
Linux version 2.6.18-128.el5 (mockbuild@hs20-bc1-7.build.redhat.com)
(gcc version 4.1.2 20080704 (Red Hat 4.1.2-44)) …

# cat /etc/issue
Red Hat Enterprise Linux Server release 5.3 (Tikanga)

but which one is correct: 4.1.2-4 from /proc/version or 5.3 from /etc/issue?

10 Answers10

180

In cases like CentOS the actual version is usually placed in /etc/*elease.

cat /etc/*elease

granted this file usually holds the version of the entire OS minus the kernel (since you can choose which to load). This file will have the same information as /etc/issue but with CentOS instead of RedHat

h3rrmiller
  • 13,235
  • 1
    cat /etc/release will work too, and you are not omitting a letter of what are you looking for ;) because elease is not always easy to guess. `` can be nothing, all, one or more items at time. Thank you, i always forgot the way to get the release version. – m3nda May 22 '15 at 17:11
  • 9
    The reason I leave the "R" off is because in some cases the "R" in "release" is capitalized. – h3rrmiller Jun 01 '15 at 19:08
  • Just to say, doing ls /etc/*elease on my system gives /etc/centos-release /etc/redhat-release /etc/system-release. So I'm guessing from all this that the release files tend to be in /etc/*-release - but possibly with some capitalisation. – mwfearnley Aug 07 '15 at 12:35
  • 2
    This is correct. I find at many sites that /etc/issue has been overwritten with an MOTD or security disclaimer for use with the Banner option in sshd_config – batfastad Oct 06 '15 at 14:20
  • cat /etc/*os-release should yield more targetted results for CentOS and still work on Ubuntu and others. – webaholik Apr 15 '19 at 19:59
  • This. My boss kept asking me, "what's the file called?" on a Debian system and I could not answer him. I just kept answering "just cat etsy star lease." This tends to work on most current/common Linux systems. – Toby May 21 '19 at 15:48
43

As you can see in /etc/issue, you're using CentOS 5.3. (It says Red Hat because CentOS is based upon the RH sources, and some software checks /etc/issue to identify the distro in use; thus, they'd fail if this was changed to CentOS).

The 4.1.2-4 in /proc/version refers to the version of the gcc C compiler used to build the kernel.

Renan
  • 17,136
20

The most reliable way of finding MAJOR version of CentOS (5 or 6 etc) is:

# rpm -q --queryformat '%{VERSION}' centos-release
6

For RHEL do this:

# rpm -q --queryformat '%{RELEASE}' redhat-release-server | awk -F. '{print $1}'
7

The only portable way of finding out a version without lsb_release or other tools is:

# grep -oE '[0-9]+\.[0-9]+' /etc/redhat-release
6.5
lzap
  • 2,102
13

You can determine it by just calling the following command:

hostnamectl

Which will return as the following:

Static hostname: mgbcctli01
     Icon name: computer-vm
       Chassis: vm
    Machine ID: de14d80a0900427894dbcf6137e058e7
       Boot ID: 6865f9839c064bc9be32281d0f262cc8
Virtualization: vmware
Operating System: CentOS Linux 7 (Core)
   CPE OS Name: cpe:/o:centos:centos:7
        Kernel: Linux 3.10.0-514.2.2.el7.x86_64
  Architecture: x86-64

You can also use rpm to find details about CentOS version:

rpm --query centos-release

Which will return in my case:

centos-release-7-3.1611.el7.centos.x86_64
hd84335
  • 231
6

Correct way is lsb_release -d.

gena2x
  • 2,397
6

The most truly reliable (and short) way to get MAJOR version of either CentOS or RHEL is:

rpm -E %{rhel}

Will give you a value of e.g. 6, 7, or 8 (now that RHEL 8 is out).

5
# echo "I am running: `cat /etc/redhat-release` (`arch`)"

Outputs the following:

I am running: CentOS release 6.7 (Final) (x86_64)
X Tian
  • 10,463
Ivan Novikov
  • 59
  • 1
  • 1
3

It can be found at the location /etc, inside the file os-release. So type in:

cat /etc/os-release
2

Run rpm --eval '%{centos_ver}' to get MAJOR version of centos.

tvorog
  • 253
0

Here is some command I collected through google, may help someone:

https://forum.directadmin.com/showthread.php?t=15878

cat /etc/*release*
cat /etc/centos-release

http://www.liquidweb.com/kb/how-to-check-your-centos-version/

cat /etc/redhat-release

https://linuxconfig.org/how-to-check-centos-version

# the later two may need some package to install
rpm --query centos-release
hostnamectl
lsb_release -d

I created a gist to record this, too.

shellbye
  • 101