CentOS sürümü nasıl belirlenir?


125

Herhangi bir grafik arayüze erişimi olmayan bir CentOS sunucusunun sürümünü nasıl belirleyebilirim? Birkaç komut denedim:

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

ama hangisi doğrudur: den 4.1.2-4 /proc/versionveya 5.3 /etc/issue?

Yanıtlar:


43

Gördüğünüz gibi /etc/issue, CentOS 5.3'ü kullanıyorsunuz. (Red Hat diyor, çünkü CentOS RH kaynaklarına dayanıyor ve bazı yazılımlar /etc/issuekullanılan dağıtımı belirlemek için kontrol ediyor; bu yüzden eğer CentOS olarak değiştirilirse başarısız olurlar).

4.1.2-4İçinde /proc/versionsürümünü belirtir gccçekirdek oluşturmak için kullanılan Cı derleyici.


3
Sadece, 32 veya 64 bit uyumlu olup olmadığını tespit etmek için uname -a komutunu ne kullanabileceğinizi ekleyeceğim.
Fedir RYKHTIK

15
CentOS 7'de, 'kedi / etc / issue' \S Kernel \r on an \m
gobbledygook

9
Doğru cevap h3rrmiller ... tarafından cevap olmalıdır cat /etc/*elease. /etc/issuegenellikle bir kuruluşun MOTD / feragatnamesi ile değiştirilir
batfastad 7:15

/etc/issueDosyası, RHEL değil CentOs olduğunu göstermektedir.
Michael Hampton

161

CentOS gibi durumlarda gerçek sürüm genellikle yerleştirilir /etc/*elease.

cat /etc/*elease

Bu dosyaya genellikle, işletim sisteminin eksi çekirdeği eksi olan çekirdeği ekler (hangisini yükleyeceğinizi seçebileceğinizden). Bu dosya / etc / issue ile aynı bilgilere sahip olacak, ancak RedHat yerine CentOS ile birlikte olacaktır.


1
cat / etc / * release de işe yarayacak ve aradığınızı gösteren bir mektubu ihmal etmeyeceksiniz;) çünkü elease her zaman kolay tahmin edilemez. *aynı anda bir veya daha fazla öğe olarak hiçbir şey olamaz. Teşekkür ederim, her zaman sürüm sürümünü almanın yolunu unuttum.
erm3nda

9
"R" yi bırakmamın nedeni, bazı durumlarda "serbest bırakma" daki "R" harfinin büyük harf kullanılmasıdır.
h3rrmiller

Sadece söylemek istediğim, ls /etc/*eleasesistemime yapıyorum /etc/centos-release /etc/redhat-release /etc/system-release. Bu nedenle, tüm bunlardan yayım dosyalarının içeri girme eğiliminde olduğunu tahmin ediyorum /etc/*-release- ancak büyük harfle büyük olasılıkla.
mwfearnley

2
Doğru. /etc/issueBannersshd_config
Batfastad

cat /etc/*os-releaseCentOS için daha hedeflenmiş sonuçlar vermeli ve hala Ubuntu ve diğerleri üzerinde çalışmalı.
webaholik

19

En güvenilir yolu bulma BÜYÜK CentOS (5 ya da 6 gibi) sürümünü olduğu:

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

RHEL için bunu yapın:

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

Lsb_release veya diğer araçlar olmadan bir sürüm bulmanın tek taşınabilir yolu :

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

3
Basitleştirilebilir:cat /etc/redhat-release | grep -o '[0-9]\.[0-9]'
Dave Johansen

1
+1 rpm -q centos-release, / etc / redhat-release'in yalnızca ana sürümü içerdiği eski CentOS5 sürümlerinde küçük sürümü almamı bulduğum tek yol. İpucu için teşekkürler.
PolyTekPatrick 19:15

1
Ana sürüme cat /etc/redhat-release | grep -oP '(?<= )[0-9]+(?=\.)'
kavuşmak için

1
Merak ediyorum: neden "grep pattern file" yerine "cat file | grep pattern"?
barrycarter

Doğru, bunu kabuk tarihçesinden kazdım ve düzeltebildi. Sabit.
lzap

13

Bunu sadece şu komutu çağırarak belirleyebilirsiniz:

hostnamectl

Aşağıdaki gibi dönecektir:

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

rpmCentOS sürümüyle ilgili ayrıntıları bulmak için de kullanabilirsiniz :

rpm --query centos-release

Benim durumumda hangisi dönecek:

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

1
hostnamectlyalnızca ana sürüm numarasını döndürür
fpmurphy

1
Bu doğru, rpm kullanarak, detaylı bir sürüm elde edebilirsiniz
hd84335

6

Doğru yol lsb_release -d.


8
CentOS 7'de: lsb_release: Komut bulunamadı.
Dereckson

yum kurulum redhat-lsb-core ...
gena2x

7
Tabii, ama demek istediğim: Geçerli sürümü almak için yeni bir paket kurmak zorunda olduğumdan emin değilim.
Dereckson

1
Birden fazla dağıtımda bunu yapabilen bir komut istiyorsanız, yine de yüklemeye değer olabilir.
gena2x

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

Aşağıdakileri çıkarır:

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

3

/etcDosyanın içinde bulunduğu yerde bulunabilir os-release. Yani şunu yazın:

cat /etc/os-release

Bu, CentOS 5 veya 6'ya desteklendi mi?
Olmazsa

CentOS bunu CentOS 7 ile başlayarak mümkün kıldı - Ben bir destek görmedim.
webaholik

3

En gerçekten güvenilir (ve kısa) yolu CentOS veya RHEL ya ait BÜYÜK sürümünü almak için:

rpm -E %{rhel}

Size örneğin bir değerini verecek 6, 7ya da 8(şimdi RHEL 8 dışında olduğunu).


2

rpm --eval '%{centos_ver}'Centos'un ana sürümünü almak için çalıştırın .


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.