Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

How can I determine from the shell with no privileges what the Red Hat Enterprise Linux version is, for example is it RHEL 4 or RHEL 5.1?

share|improve this question

9 Answers 9

up vote 36 down vote accepted

You can use the lsb_release command on recent linux distributions. If you issue:

lsb_release -i -r

it will tell you the Distribution and Version. This is a little bit more accurate than accessing files that may or may not have been modified by the admin or a software package. As well as working across multiple distros.

share|improve this answer
3  
command not found on my CentOS 5.4 box :( –  gbjbaanb Dec 1 '09 at 17:04
    
@gbjbaanb: That's strange I tested it on a fresh 5.4 minimal install and it worked just fine... –  Zypher Dec 1 '09 at 18:25
8  
lsb_release -i -r -bash: lsb_release: command not found. However, cat /etc/redhat-release Red Hat Enterprise Linux Server release 5.6 (Tikanga) –  Tom May 10 '11 at 12:12
2  
Just for the record: Does not work on RHEL 6.5 minimal install. Command lsb_release is nowhere to be found. –  sborsky Feb 6 at 9:18
    
lsb_release is not a lightweight package, It pulls in CUPS to provide ‘/usr/bin/lp’, which pulls in some pdf translation goop, which pulls in some rendering libraries... –  Jens Timmerman Feb 21 at 8:39

You can look at the contents of /etc/redhat-release, which will look something like this:

$ cat /etc/redhat-release 
CentOS release 5.4 (Final)

The contents are different for an actual RHEL system. This technique works on all RedHat derivatives, including CentOS, Fedora, and others.

share|improve this answer
1  
This is the most appropriate answer to the question. –  fsoppelsa Feb 19 at 17:01

I prefer to use the /etc/issue file.

$ cat /etc/issue

I've seen many situations where /etc/redhat-release has been modified to meet software compatibility requirements (Dell or HP's management agents, for instance).

share|improve this answer

Assuming it truly is a Red Hat release (not Centos):

rpm -q redhat-release

Or just run:

uname -r

And map the output. 2.6.9 kernels are RHEL4, 2.6.18 kernels are RHEL5. If necessary, you can map the full version to the specific update releases from Red Hat (i.e. 2.6.9-89 is RHEL5 U4).

share|improve this answer

If you have RHEL, this will work (verified on RHEL 5.5):

/usr/bin/lsb_release --d

This will also work on CentOS.

Edit: This tool is included in the package "redhat-lsb", you need to have this installed: yum info redhat-lsb | grep Repo

Repo : installed

share|improve this answer
    
Just for the record: Does not work on RHEL 6.5 minimal install. Command lsb_release is nowhere to be found. –  sborsky Feb 6 at 9:19
    
Minimal probably doesnt inlcude this package: redhat-lsb-core It contains the lsb_release. –  tore- Feb 26 at 12:37
cat /etc/redhat-release
share|improve this answer

The most reliable way when lsb_release is not installed is:

# rpm -q --queryformat '%{VERSION}' redhat-release-server
6Server

# rpm -q --queryformat '%{RELEASE}' redhat-release-server
6.4.0.4.el6

On minimal installs, lsb_release is missing.

To get this working also with Red Hat clones (credit goes to comments):

# rpm -q --queryformat '%{RELEASE}' $(rpm -qa '(redhat|sl|centos|oraclelinux)-release(|-server|-workstation|-client|-computenode)'
share|improve this answer
    
This seems to work, more generically: rpm -qa '(oraclelinux|sl|redhat|centos)-release(|-server)' sl is for Scientific Linux; if you know the right name for other RHEL rebuilds maybe comment below. Warning - not extensively tested. –  Dan Pritts Aug 8 '13 at 15:47
1  
Yeah thanks, one note: does not work with RHEL Worstation. –  lzap Feb 6 at 14:15

A really stupid way is to look at the GRUB menu which usually includes such information :

/boot/grub/menu.lst

This not the smartest way to do such a thing but will work on any distribution / UNIX that uses GRUB.

share|improve this answer

So it won't work same way on RHEL-5 and RHEL-6 so here is what you can do using xargs if you are going to use this in the script to automagically detect what verion you are usnig.

so you get 6Server if you run this command on the system running RHEL-6

rpm -qa|grep release|xargs rpm -q --queryformat '%{VERSION}'
6Server

if you run same on RHEL-5 system you get this. rpm -qa|grep release|xargs rpm -q --queryformat '%{VERSION}' 5Server5Server

and if you want just single digit you could cut -1

RHEL-6

rpm -qa|grep release|xargs rpm -q --queryformat '%{VERSION}'|cut -c -1
6

RHEL-5
rpm -qa|grep release|xargs rpm -q --queryformat '%{VERSION}'|cut -c -1

5
share|improve this answer
2  
How does this add anything to this question? –  Chopper3 Aug 8 '13 at 18:23

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.