Řešení 1:
Můžete použít lsb_release
příkaz v různých distribucích Linuxu:
lsb_release -i -r
To vám řekne distribuci a verzi a je o něco přesnější než přístup k souborům, které mohly nebo nemusely být upraveny správcem nebo softwarovým balíčkem. Stejně jako práce ve více distribucích.
Pro RHEL byste měli použít:
cat /etc/redhat-release
Řešení 2:
Můžete se podívat na obsah /etc/redhat-release, který bude vypadat nějak takto:
$ cat /etc/redhat-release
CentOS release 5.4 (Final)
Obsah se u skutečného systému RHEL liší. Tato technika funguje na všech derivátech RedHat, včetně CentOS, Fedory a dalších.
Řešení 3:
Dávám přednost použití souboru /etc/issue.
$ cat /etc/issue
Viděl jsem mnoho situací, kdy byl /etc/redhat-release upraven tak, aby splňoval požadavky na kompatibilitu softwaru (například agenti správy Dell nebo HP).
Řešení 4:
Nejspolehlivější způsob kdy lsb_release
není nainstalováno je:
# rpm -q --queryformat '%{VERSION}' redhat-release-server
6Server
# rpm -q --queryformat '%{RELEASE}' redhat-release-server
6.4.0.4.el6
Při minimálních instalacích lsb_release
chybí.
Aby to fungovalo také s klony Red Hat (poděkování patří komentářům):
# rpm -q --queryformat '%{VERSION}' $(rpm -qa '(redhat|sl|slf|centos|oraclelinux)-release(|-server|-workstation|-client|-computenode)')
Nebo jako jeden příkaz (namísto provádění dvou "rpm"):
# rpm -qa --queryformat '%{VERSION}\n' '(redhat|sl|slf|centos|oraclelinux)-release(|-server|-workstation|-client|-computenode)'
Použijte sed
/cut
a další nástroje pro práci s textem UNIX, abyste získali to, co chcete.
Řešení 5:
Za předpokladu, že se skutečně jedná o vydání Red Hat (ne Centos):
rpm -q redhat-release
Nebo stačí spustit:
uname -r
A zmapujte výstup. Jádra 2.6.9 jsou RHEL4, jádra 2.6.18 jsou RHEL5. V případě potřeby můžete namapovat plnou verzi na konkrétní vydání aktualizace od Red Hat (tj. 2.6.9-89 je RHEL5 U4).