Come determinare la versione di CentOS?


125

Come posso determinare la versione di un server CentOS senza accesso a nessuna interfaccia grafica? Ho provato diversi comandi:

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

ma quale è corretto: 4.1.2-4 da /proc/versiono 5.3 da /etc/issue?

Risposte:


43

Come puoi vedere in /etc/issue, stai usando CentOS 5.3. (Dice Red Hat perché CentOS è basato sulle fonti RH e alcuni software controllano /etc/issueper identificare la distribuzione in uso; quindi, fallirebbero se questo fosse cambiato in CentOS).

L' 4.1.2-4nel /proc/versionriferisce alla versione del gcccompilatore C utilizzato per compilare il kernel.


3
Aggiungerò solo quello che potresti usare uname -a per rilevare, se compatibile a 32 o 64 bit.
Fedir RYKHTIK

15
Su CentOS 7, 'cat / etc / issue' produce \S Kernel \r on an \m
gobbledygook

9
Risposta corretta dovrebbe essere quella di h3rrmiller ... cat /etc/*elease. /etc/issueè spesso sostituito dal MOTD / disclaimer di
un'organizzazione

Il /etc/issuefile mostra che è RHEL, non CentOS.
Michael Hampton,

161

In casi come CentOS di solito viene inserita la versione attuale /etc/*elease.

cat /etc/*elease

concesso questo file di solito contiene la versione dell'intero sistema operativo meno il kernel (poiché è possibile scegliere quale caricare). Questo file avrà le stesse informazioni di / etc / issue ma con CentOS invece di RedHat


1
cat / etc / * funzionerà anche, e non stai omettendo una lettera di ciò che stai cercando;) perché non è sempre facile indovinare il rilascio. *può essere niente, tutti, uno o più elementi alla volta. Grazie, ho sempre dimenticato il modo di ottenere la versione di rilascio.
erm3nda,

9
La ragione per cui lascio "R" disattivata è perché in alcuni casi la "R" in "release" è in maiuscolo.
h3rrmiller,

Solo per dire, facendo ls /etc/*eleasesul mio sistema dà /etc/centos-release /etc/redhat-release /etc/system-release. Quindi immagino da tutto ciò che i file di rilascio tendono ad essere presenti /etc/*-release, ma possibilmente con una certa capitalizzazione.
mwfearnley,

2
Questo è corretto. Trovo in molti siti che /etc/issuesono stati sovrascritti con un MOTD o un disclaimer sulla sicurezza per l'uso con l' Banneropzione insshd_config
batfastad

cat /etc/*os-releasedovrebbe produrre risultati più mirati per CentOS e funzionare ancora su Ubuntu e altri.
webaholik,

19

Il modo più affidabile per trovare la versione MAJOR di CentOS (5 o 6 ecc.) È:

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

Per RHEL, procedere come segue:

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

L'unico modo portatile per scoprire una versione senza lsb_release o altri strumenti è:

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

3
Può essere semplificato per:cat /etc/redhat-release | grep -o '[0-9]\.[0-9]'
Dave Johansen,

1
+1 rpm -q centos-releaseè l'unico modo che ho ancora trovato per ottenere la versione minore su versioni precedenti di CentOS5 in cui / etc / redhat-release contiene solo la versione principale. Grazie per il suggerimento.
PolyTekPatrick,

1
Per ottenere la versione principale:cat /etc/redhat-release | grep -oP '(?<= )[0-9]+(?=\.)'
Rockallite

1
Solo curioso: perché "file cat | modello grep" invece di "file modello grep"?
Barrycarter,

Bene, ho scavato quello dalla cronologia della shell e sono stato in grado di correggerlo. Fisso.
lzap

13

Puoi determinarlo semplicemente chiamando il seguente comando:

hostnamectl

Che restituirà come segue:

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

Puoi anche usare rpmper trovare dettagli sulla versione di CentOS:

rpm --query centos-release

Che tornerà nel mio caso:

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

1
hostnamectlrestituisce solo il numero di versione principale
fpmurphy

1
Esatto, usando rpm, puoi ottenere una versione dettagliata
hd84335,

6

Il modo corretto è lsb_release -d.


8
Su CentOS 7: lsb_release: comando non trovato.
Dereckson,

yum installa redhat-lsb-core ...
gena2x,

7
Certo, ma intendevo dire: non sono sicuro che sia utile installare un nuovo pacchetto per ottenere la versione corrente.
Dereckson,

1
Se si desidera un comando in grado di farlo su più distribuzioni, potrebbe valere la pena installarlo.
gena2x,

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

Emette il seguente:

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

3

Può essere trovato nella posizione /etc, all'interno del file os-release. Quindi digitare:

cat /etc/os-release

È stato eseguito il backport su CentOS 5 o 6? In caso contrario, questo è utile soprattutto per il futuro ....
mattdm,

CentOS lo ha reso disponibile a partire da CentOS 7 - Non ho visto un backport.
webaholik,

3

Il più vero modo affidabile (e breve) per ottenere versione principale di una CentOS o RHEL è:

rpm -E %{rhel}

Ti darà un valore 6, ad esempio , 7o 8(ora che RHEL 8 è uscito).


2

Corri rpm --eval '%{centos_ver}'per ottenere la versione MAJOR di centos.


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.