Comment déterminer la version de CentOS?


125

Comment déterminer la version d'un serveur CentOS sans accès à une interface graphique? J'ai essayé plusieurs commandes:

# 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)

mais lequel est correct: 4.1.2-4 /proc/versionou 5.3 /etc/issue?

Réponses:


43

Comme vous pouvez le voir /etc/issue, vous utilisez CentOS 5.3. (Il dit Red Hat car CentOS est basé sur les sources RH, et certains logiciels vérifient /etc/issuela distro en cours d’utilisation; ainsi, ils échoueraient s’ils passaient à CentOS).

Le 4.1.2-4in /proc/versionfait référence à la version du gcccompilateur C utilisée pour construire le noyau.


3
J'ajouterai simplement ce que vous pourriez utiliser uname -a pour détecter s'il est compatible 32 ou 64 bits.
Fedir RYKHTIK

15
Sur CentOS 7, 'cat / etc / issue' donne un bon résultat: \S Kernel \r on an \m
Urhixidur le

9
La réponse correcte devrait être celui par h3rrmiller ... cat /etc/*elease. /etc/issueest souvent remplacé par un MOTD / disclaimer d'une organisation
batfastad

Le /etc/issuefichier indique qu'il s'agit de RHEL et non de CentOS.
Michael Hampton

161

Dans des cas comme CentOS, la version actuelle est généralement placée dans /etc/*elease.

cat /etc/*elease

accordé ce fichier contient généralement la version de tout le système d’exploitation moins le noyau (puisque vous pouvez choisir lequel charger). Ce fichier aura les mêmes informations que / etc / issue mais avec CentOS au lieu de RedHat


1
cat / etc / * release marchera aussi, et vous n'omettez pas une lettre de ce que vous cherchez;) car il n'est pas toujours facile de deviner. *peut être rien, tous, un ou plusieurs articles à la fois. Merci, j'ai toujours oublié le moyen d'obtenir la version release.
erm3nda

9
La raison pour laquelle je laisse le "R" désactivé est que, dans certains cas, le "R" dans "release" est en majuscule.
h3rrmiller

Juste pour dire, faire ls /etc/*eleasesur mon système donne /etc/centos-release /etc/redhat-release /etc/system-release. Je suppose donc de tout cela que les fichiers de version ont tendance à être présents /etc/*-release, mais éventuellement avec une certaine capitalisation.
mwfearnley

2
C'est correct. Je trouve que, sur de nombreux sites, /etc/issueun MOTD ou une clause de non-responsabilité concernant la sécurité est utilisé pour l' Banneroption insshd_config
batfastad

cat /etc/*os-releasedevrait produire des résultats plus ciblés pour CentOS et continuer à fonctionner sous Ubuntu et d’autres.
Webaholik

19

Le moyen le plus fiable de trouver la version MAJEURE de CentOS (5 ou 6, etc.) est:

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

Pour RHEL, procédez comme suit:

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

Le seul moyen portable de trouver une version sans lsb_release ou d’autres outils est:

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

3
Peut être simplifié à:cat /etc/redhat-release | grep -o '[0-9]\.[0-9]'
Dave Johansen le

1
+1 rpm -q centos-releaseest le seul moyen que j’ai trouvé pour obtenir la version mineure sur les anciennes versions de CentOS5 où / etc / redhat-release ne contient que la version majeure. Merci pour l'allusion.
PolyTekPatrick

1
Pour obtenir la version majeure:cat /etc/redhat-release | grep -oP '(?<= )[0-9]+(?=\.)'
Rockallite le

1
Juste curieux: pourquoi "fichier cat | motif grep" au lieu de "fichier motif grep"?
barrycarter

Exact, cela a été creusé dans l’historique du shell et a pu corriger cela. Fixé.
Lzap

13

Vous pouvez le déterminer en appelant simplement la commande suivante:

hostnamectl

Ce qui retournera comme suit:

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

Vous pouvez également utiliser rpmpour trouver des détails sur la version de CentOS:

rpm --query centos-release

Ce qui reviendra dans mon cas:

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

1
hostnamectlne renvoie que le numéro de version majeure
fpmurphy le

1
C'est vrai, en utilisant rpm, vous pouvez obtenir une version détaillée
hd84335 le

6

Manière correcte est lsb_release -d.


8
Sur CentOS 7: lsb_release: commande introuvable.
Dereckson

miam installer redhat-lsb-core ...
gena2x 17/02/2016

7
Bien sûr, mais je voulais dire: je ne suis pas sûr qu'il soit utile d'installer un nouveau package pour obtenir la version actuelle.
Dereckson

1
Si vous voulez une commande capable de le faire sur plusieurs distributions, l'installation en vaut peut-être la peine.
gena2x

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

Affiche les éléments suivants:

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

3

Vous pouvez le trouver à l'emplacement /etc, à l'intérieur du fichier os-release. Alors tapez:

cat /etc/os-release

Ce backport a-t-il été transféré sur CentOS 5 ou 6? Sinon, c'est surtout utile pour l'avenir ....
mattdm

CentOS a rendu cela disponible à partir de CentOS 7 - je n'ai pas vu de backport.
Webaholik

3

Le plus vraiment fiable (et court) pour obtenir la version MAJOR soit CentOS ou RHEL est:

rpm -E %{rhel}

Vous donnera une valeur de, par exemple 6, 7ou 8(maintenant que RHEL 8 est sorti).


2

Exécuter rpm --eval '%{centos_ver}'pour obtenir la version MAJEURE de centos.


En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.