Soluzione 1:
Puoi usare il lsb_release
comando su varie distribuzioni Linux:
lsb_release -i -r
Questo ti dirà la distribuzione e la versione ed è un po 'più preciso dell'accesso ai file che potrebbero essere stati modificati o meno dall'amministratore o da un pacchetto software. Oltre a lavorare su più distribuzioni.
Per RHEL, dovresti usare:
cat /etc/redhat-release
Soluzione 2:
Puoi guardare il contenuto di /etc/redhat-release, che sarà simile a questo:
$ cat /etc/redhat-release
CentOS release 5.4 (Final)
I contenuti sono diversi per un vero e proprio sistema RHEL. Questa tecnica funziona su tutti i derivati RedHat, inclusi CentOS, Fedora e altri.
Soluzione 3:
Preferisco usare il file /etc/issue.
$ cat /etc/issue
Ho visto molte situazioni in cui /etc/redhat-release è stato modificato per soddisfare i requisiti di compatibilità del software (agenti di gestione Dell o HP, ad esempio).
Soluzione 4:
Il modo più affidabile quando lsb_release
non è installato è:
# rpm -q --queryformat '%{VERSION}' redhat-release-server
6Server
# rpm -q --queryformat '%{RELEASE}' redhat-release-server
6.4.0.4.el6
Nelle installazioni minime, lsb_release
manca.
Per farlo funzionare anche con i cloni di Red Hat (il merito va ai commenti):
# rpm -q --queryformat '%{VERSION}' $(rpm -qa '(redhat|sl|slf|centos|oraclelinux)-release(|-server|-workstation|-client|-computenode)')
Oppure, come un singolo comando (invece di due "rpm" in esecuzione):
# rpm -qa --queryformat '%{VERSION}\n' '(redhat|sl|slf|centos|oraclelinux)-release(|-server|-workstation|-client|-computenode)'
Usa sed
/cut
e altri strumenti di manipolazione del testo UNIX per ottenere quello che vuoi.
Soluzione 5:
Supponendo che sia davvero una versione Red Hat (non Centos):
rpm -q redhat-release
Oppure esegui semplicemente:
uname -r
E mappa l'output. I kernel 2.6.9 sono RHEL4, i kernel 2.6.18 sono RHEL5. Se necessario, puoi mappare la versione completa alle versioni di aggiornamento specifiche di Red Hat (ad es. 2.6.9-89 è RHEL5 U4).