Como determinar a versão do CentOS?

125

Como determino a versão de um servidor CentOS sem acesso a nenhuma interface gráfica? Eu tentei vários comandos:

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

mas qual está correto: 4.1.2-4 /proc/versionou 5.3 a partir /etc/issue?

Philippe Blayo
fonte

Respostas:

43

Como você pode ver /etc/issue, você está usando o CentOS 5.3. (Diz o Red Hat porque o CentOS é baseado nas fontes de RH, e algumas verificações de software /etc/issuepara identificar a distribuição em uso; portanto, elas falhariam se isso fosse alterado para o CentOS).

O 4.1.2-4in /proc/versionrefere-se à versão do gcccompilador C usada para construir o kernel.

Renan
fonte
3
Vou apenas adicionar o que você poderia usar uname -a para detectar, se compatível com 32 ou 64 bits.
Fedir RYKHTIK
15
No CentOS 7, 'cat / etc / issue' gera gobbledygook: \S Kernel \r on an \m
Urhixidur
9
Resposta correta deve ser o de h3rrmiller ... cat /etc/*elease. /etc/issueé muitas vezes substituído pelo de uma organização MOTD / aviso
batfastad
O /etc/issuearquivo mostra que é RHEL, não CentOS.
Michael Hampton
161

Em casos como o CentOS, a versão real geralmente é inserida /etc/*elease.

cat /etc/*elease

concedido esse arquivo geralmente mantém a versão de todo o sistema operacional menos o kernel (já que você pode escolher qual carregar). Este arquivo terá as mesmas informações que o arquivo / etc / issue, mas com o CentOS em vez do RedHat

h3rrmiller
fonte
1
A versão cat / etc / * também funcionará, e você não está omitindo uma carta do que está procurando;) porque nem sempre é fácil adivinhar o elease. *pode ser nada, todos, um ou mais itens de cada vez. Obrigado, sempre esqueci o caminho para obter a versão de lançamento.
Erm3nda
9
A razão pela qual deixei o "R" desativado é porque, em alguns casos, o "R" em "release" está em maiúsculas.
H3rrmiller #
Só para dizer, fazendo ls /etc/*eleaseno meu sistema dá /etc/centos-release /etc/redhat-release /etc/system-release. Então, acho que com tudo isso os arquivos de lançamento tendem a estar /etc/*-release- mas possivelmente com alguma capitalização.
Mkfearnley 7/08
2
Isto está correto. I encontrar em muitos sites que /etc/issuefoi substituído com um aviso MOTD ou de segurança para uso com a Banneropçãosshd_config
batfastad
cat /etc/*os-releasedeve gerar resultados mais direcionados para o CentOS e ainda funcionar no Ubuntu e outros.
webaholik 15/04
19

A maneira mais confiável de encontrar a versão MAJOR do CentOS (5 ou 6, etc.) é:

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

Para RHEL, faça o seguinte:

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

A única maneira portátil de descobrir uma versão sem lsb_release ou outras ferramentas é:

# grep -oE '[0-9]+\.[0-9]+' /etc/redhat-release
6.5
lzap
fonte
3
Pode ser simplificado para:cat /etc/redhat-release | grep -o '[0-9]\.[0-9]'
Dave Johansen
1
O +1 rpm -q centos-releaseé a única maneira que encontrei para obter a versão menor em versões mais antigas do CentOS5, em que o / etc / redhat-release contém apenas a versão principal. Obrigado pela dica.
PolyTekPatrick #
1
Para obter a versão principal:cat /etc/redhat-release | grep -oP '(?<= )[0-9]+(?=\.)'
Rockallite 8/17/17
1
Apenas curioso: por que "arquivo de gato | padrão grep" em vez de "arquivo padrão grep"?
Barrycarter
Certo, escavou isso no histórico do shell e foi capaz de corrigir isso. Fixo.
Lzap 03/07/19
13

Você pode determiná-lo apenas chamando o seguinte comando:

hostnamectl

O qual retornará da seguinte forma:

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

Você também pode usar rpmpara encontrar detalhes sobre a versão do CentOS:

rpm --query centos-release

O que retornará no meu caso:

centos-release-7-3.1611.el7.centos.x86_64
hd84335
fonte
1
hostnamectlretorna apenas o número do release principal
fpmurphy
1
É isso mesmo, usando rpm, você pode obter uma versão detalhada
hd84335
6

Maneira correta é lsb_release -d.

gena2x
fonte
8
No CentOS 7: lsb_release: comando não encontrado.
Dereckson 17/02
yum instalar redhat-lsb-core ...
gena2x 17/02
7
Claro, mas eu quis dizer: não tenho certeza se é valioso ter que instalar um novo pacote para obter a versão atual.
Dereckson 17/02
1
Se você deseja algum comando capaz de fazê-lo em várias distribuições, pode valer a pena instalar.
Gena2x
5
# echo "I am running: `cat /etc/redhat-release` (`arch`)"

Emite o seguinte:

I am running: CentOS release 6.7 (Final) (x86_64)
Ivan Novikov
fonte
3

Pode ser encontrado no local /etc, dentro do arquivo os-release. Então digite:

cat /etc/os-release
Lijo George
fonte
Isso foi portado para o CentOS 5 ou 6? Se não, este é mais útil daqui para frente ....
mattdm
O CentOS disponibilizou isso a partir do CentOS 7 - eu não vi um backport.
webaholik 15/04
3

O mais verdadeiramente maneira confiável (e curto) para obter versão principal de qualquer CentOS ou RHEL é:

rpm -E %{rhel}

Fornecerá um valor de 6, por exemplo ,, 7ou 8(agora que o RHEL 8 está fora).

Danila Vershinin
fonte
2

Corra rpm --eval '%{centos_ver}'para obter a versão MAJOR do centos.

tvorog
fonte
0

Aqui está um comando que eu coletei no google, pode ajudar alguém:

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

Eu criei uma essência para gravar isso também.

shellbye
fonte