134

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 ([email protected])
(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?

Philippe Blayo
  • 1,949
  • 4
  • 18
  • 23

10 Answers10

179

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,095
  • 5
  • 31
  • 41
  • 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
  • 16,976
  • 8
  • 69
  • 88
21

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,032
  • 2
  • 14
  • 13
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
  • 3
  • 6
6

Correct way is lsb_release -d.

gena2x
  • 2,387
  • 14
  • 20
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).

Danila Vershinin
  • 1,471
  • 9
  • 11
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,413
  • 2
  • 33
  • 48
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
Anthony Geoghegan
  • 12,605
  • 7
  • 59
  • 62
2

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

tvorog
  • 253
  • 1
  • 5
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.

OneCricketeer
  • 1,229
  • 1
  • 11
  • 14
shellbye
  • 101
  • 2