Solución 1:
Puedes usar el lsb_release
comando en varias distribuciones de Linux:
lsb_release -i -r
Esto le indicará la distribución y la versión y es un poco más preciso que acceder a archivos que pueden o no haber sido modificados por el administrador o un paquete de software. Además de trabajar en varias distribuciones.
Para RHEL, debe usar:
cat /etc/redhat-release
Solución 2:
Puede ver el contenido de /etc/redhat-release, que se verá así:
$ cat /etc/redhat-release
CentOS release 5.4 (Final)
Los contenidos son diferentes para un sistema RHEL real. Esta técnica funciona en todos los derivados de RedHat, incluidos CentOS, Fedora y otros.
Solución 3:
Prefiero usar el archivo /etc/issue.
$ cat /etc/issue
He visto muchas situaciones en las que se ha modificado /etc/redhat-release para cumplir con los requisitos de compatibilidad de software (por ejemplo, los agentes de administración de Dell o HP).
Solución 4:
La forma más confiable cuando lsb_release
no está instalado es:
# rpm -q --queryformat '%{VERSION}' redhat-release-server
6Server
# rpm -q --queryformat '%{RELEASE}' redhat-release-server
6.4.0.4.el6
En instalaciones mínimas, lsb_release
falta.
Para que esto funcione también con clones de Red Hat (el crédito va a los comentarios):
# rpm -q --queryformat '%{VERSION}' $(rpm -qa '(redhat|sl|slf|centos|oraclelinux)-release(|-server|-workstation|-client|-computenode)')
O, como un solo comando (en lugar de ejecutar dos "rpm"):
# rpm -qa --queryformat '%{VERSION}\n' '(redhat|sl|slf|centos|oraclelinux)-release(|-server|-workstation|-client|-computenode)'
Usa sed
/cut
y otro texto que manipula herramientas UNIX para obtener lo que desea.
Solución 5:
Asumiendo que realmente es un lanzamiento de Red Hat (no de Centos):
rpm -q redhat-release
O simplemente ejecuta:
uname -r
Y mapear la salida. Los núcleos 2.6.9 son RHEL4, los núcleos 2.6.18 son RHEL5. Si es necesario, puede asignar la versión completa a las versiones de actualización específicas de Red Hat (es decir, 2.6.9-89 es RHEL5 U4).