¿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.