¿Cómo determinar la versión de CentOS?


125

¿Cómo determino la versión de un servidor CentOS sin acceso a ninguna interfaz gráfica? He intentado varios comandos:

# cat /proc/version
Linux version 2.6.18-128.el5 (mockbuild@hs20-bc1-7.build.redhat.com)
(gcc version 4.1.2 20080704 (Red Hat 4.1.2-44)) …

# cat /etc/issue
Red Hat Enterprise Linux Server release 5.3 (Tikanga)

pero cuál es correcto: 4.1.2-4 desde /proc/versiono 5.3 desde /etc/issue?

Respuestas:


43

Como puede ver /etc/issue, está usando CentOS 5.3. (Dice Red Hat porque CentOS se basa en las fuentes RH, y algunas verificaciones de software /etc/issuepara identificar la distribución en uso; por lo tanto, fallarían si esto se cambiara a CentOS).

El 4.1.2-4en /proc/versionreferencia a la versión del gcccompilador de C utilizado para construir el núcleo.


3
Solo agregaré, lo que podría usar uname -a para detectar, si es compatible con 32 o 64 bits.
— Fedir RYKHTIK

15
En CentOS 7, 'cat / etc / issue' produce gobbledygook: \S Kernel \r on an \m
— Urhixidur

99
Respuesta correcta debería ser el uno por h3rrmiller ... cat /etc/*elease. /etc/issuea menudo se reemplaza por el MOTD / descargo de responsabilidad de una organización
— batfastad

El /etc/issuearchivo muestra que es RHEL, no CentOS.
— Michael Hampton

161

En casos como CentOS, generalmente se coloca la versión real /etc/*elease.

cat /etc/*elease

dado que este archivo generalmente contiene la versión de todo el sistema operativo menos el kernel (ya que puede elegir cuál cargar). Este archivo tendrá la misma información que / etc / issue pero con CentOS en lugar de RedHat


1
cat / etc / * release también funcionará, y no está omitiendo una carta de lo que está buscando;) porque no siempre es fácil adivinar elease. *puede ser nada, todos, uno o más elementos a la vez. Gracias, siempre olvidé la forma de obtener la versión de lanzamiento.
— erm3nda

99
La razón por la que dejo la "R" desactivada es porque en algunos casos la "R" en "versión" está en mayúscula.
— h3rrmiller 01 de

Solo para decir, hacer ls /etc/*eleaseen mi sistema da /etc/centos-release /etc/redhat-release /etc/system-release. Entonces, supongo por todo esto que los archivos de lanzamiento tienden a estar dentro /etc/*-release, pero posiblemente con algo de capitalización.
— mwfearnley

2
Esto es correcto. Encuentro en muchos sitios que /etc/issuese ha sobrescrito con un MOTD o descargo de responsabilidad de seguridad para usar con la Banneropción ensshd_config
— batfastad

cat /etc/*os-releasedebería producir resultados más específicos para CentOS y seguir funcionando en Ubuntu y otros.
— webaholik

19

La forma más confiable de encontrar la versión PRINCIPAL de CentOS (5 o 6, etc.) es:

# rpm -q --queryformat '%{VERSION}' centos-release
6

Para RHEL haga esto:

# rpm -q --queryformat '%{RELEASE}' redhat-release-server | awk -F. '{print $1}'
7

La única forma portátil de encontrar una versión sin lsb_release u otras herramientas es:

# grep -oE '[0-9]+\.[0-9]+' /etc/redhat-release
6.5

3
Se puede simplificar a:cat /etc/redhat-release | grep -o '[0-9]\.[0-9]'
— Dave Johansen

1
+1 rpm -q centos-releasees la única forma en que todavía he encontrado para obtener la versión menor en versiones anteriores de CentOS5 donde / etc / redhat-release solo contiene la versión principal. Gracias por la pista.
— PolyTekPatrick

1
Para obtener la versión principal:cat /etc/redhat-release | grep -oP '(?<= )[0-9]+(?=\.)'
— Rockallite

1
Simplemente curioso: ¿por qué "cat file | grep pattern" en lugar de "grep pattern file"?
— barrycarter

Correcto, excavé eso del historial de shell y pude corregir esto. Fijo.
— lzap

13

Puede determinarlo simplemente llamando al siguiente comando:

hostnamectl

Que volverá como lo siguiente:

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

También puede usar rpmpara encontrar detalles sobre la versión de CentOS:

rpm --query centos-release

Que volverá en mi caso:

centos-release-7-3.1611.el7.centos.x86_64

1
hostnamectlsolo devuelve el número de lanzamiento principal
— fpmurphy

1
Así es, usando rpm, puede obtener una versión detallada
— hd84335

6

La forma correcta es lsb_release -d.


8
En CentOS 7: lsb_release: Comando no encontrado.
— Dereckson

yum install redhat-lsb-core ...
— gena2x

77
Claro, pero quise decir: no estoy seguro de que sea valioso tener que instalar un nuevo paquete para obtener la versión actual.
— Dereckson

1
Si desea algún comando que pueda hacerlo en varias distribuciones, puede valer la pena instalarlo.
— gena2x

5
# echo "I am running: `cat /etc/redhat-release` (`arch`)"

Produce lo siguiente:

I am running: CentOS release 6.7 (Final) (x86_64)

3

Se puede encontrar en la ubicación /etc, dentro del archivo os-release. Entonces escriba:

cat /etc/os-release

¿Fue esto compatible con CentOS 5 o 6? Si no, esto es principalmente útil en el futuro ...
— mattdm

CentOS lo hizo disponible a partir de CentOS 7: no he visto un backport.
— webaholik

3

La mayor parte verdaderamente de forma fiable (y corto) para obtener la versión principal de cualquiera de CentOS o RHEL es:

rpm -E %{rhel}

Le dará un valor de 6, por ejemplo , 7o 8(ahora que RHEL 8 está fuera).


2

Corre rpm --eval '%{centos_ver}'para obtener la versión MAYOR de centos.


Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.