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 ([email protected])
(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?

Philippe Blayo
la source

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.

Renan
la source
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

h3rrmiller
la source
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
lzap
la source
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
hd84335
la source
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.

Gena2x
la source
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)
Ivan Novikov
la source
3

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

cat /etc/os-release
Lijo George
la source
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).

Danila Vershinin
la source
2

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

tvorog
la source
0

Voici une commande que j'ai recueillie via Google, peut aider quelqu'un:

https://forum.directadmin.com/showthread.php?t=15878

cat /etc/*release*
cat /etc/centos-release

http://www.liquidweb.com/kb/how-to-check-your-centos-version/

cat /etc/redhat-release

https://linuxconfig.org/how-to-check-centos-version

# the later two may need some package to install
rpm --query centos-release
hostnamectl
lsb_release -d

J'ai créé un élément essentiel pour enregistrer cela aussi.

shellbye
la source