Jak ustalić wersję CentOS?


125

Jak ustalić wersję serwera CentOS bez dostępu do jakiegokolwiek interfejsu graficznego? Próbowałem kilka poleceń:

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

ale który z nich jest poprawny: 4.1.2-4 z /proc/versionlub 5.3 z /etc/issue?

Odpowiedzi:


43

Jak widać /etc/issue, używasz CentOS 5.3. (Mówi Red Hat, ponieważ CentOS opiera się na źródłach RH, a niektóre programy sprawdzają, /etc/issueaby zidentyfikować używaną dystrybucję; dlatego nie powiedzie się, jeśli zostanie zmieniona na CentOS).

4.1.2-4W /proc/versiondotyczy wersji gcckompilator wykorzystywane do budowy jądra.


3
Dodam tylko, co możesz użyć uname -a do wykrycia, jeśli jest kompatybilny z 32 lub 64 bitami.
Fedir RYKHTIK

15
W CentOS 7 „cat / etc / issue” daje gobbledygook: \S Kernel \r on an \m
Urhixidur

9
Prawidłowa odpowiedź powinna być jedna przez h3rrmiller ... cat /etc/*elease. /etc/issuejest często zastępowany przez MOTD / wyłączenie odpowiedzialności organizacji
batfastad

/etc/issueAkt sprawy wynika, że RHEL, CentOS nie.
Michael Hampton

161

W przypadkach takich jak CentOS zwykle umieszczana jest rzeczywista wersja /etc/*elease.

cat /etc/*elease

przyznany ten plik zwykle zawiera wersję całego systemu operacyjnego minus jądro (ponieważ możesz wybrać, który chcesz załadować). Ten plik będzie zawierał te same informacje co / etc / problem, ale z CentOS zamiast RedHat


1
Wydanie cat / etc / * też będzie działało i nie omijasz litery tego, czego szukasz;), ponieważ nie zawsze łatwo jest zgadnąć. *może być niczym, wszystkim, jednym lub więcej przedmiotami na raz. Dziękuję, zawsze zapominałem o sposobie uzyskania wersji.
erm3nda

9
Powodem, dla którego zostawiam „R” wyłączony, jest to, że w niektórych przypadkach „R” w „release” jest pisane wielką literą.
h3rrmiller

Wystarczy powiedzieć, że robienie ls /etc/*eleasew moim systemie daje /etc/centos-release /etc/redhat-release /etc/system-release. Tak więc domyślam się, że pliki wydania mają tendencję do umieszczania /etc/*-release- ale być może z pewnymi literami.
mwfearnley

2
To jest poprawne. Znajduję w wielu witrynach, które /etc/issuezostały zastąpione MOTD lub zastrzeżeniem bezpieczeństwa do użytku z Banneropcjąsshd_config
batfastad

cat /etc/*os-releasepowinien dać bardziej ukierunkowane wyniki dla CentOS i nadal działać na Ubuntu i innych.
webaholik

19

Najbardziej niezawodnym sposobem znalezienia MAJOR wersję CentOS (5 lub 6 etc) jest:

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

W przypadku RHEL wykonaj to:

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

Jedynym przenośnym sposobem na znalezienie wersji bez lsb_release lub innych narzędzi jest:

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

3
Można uprościć:cat /etc/redhat-release | grep -o '[0-9]\.[0-9]'
Dave Johansen

1
+1 rpm -q centos-releaseto jedyny sposób, w jaki udało mi się znaleźć mniejszą wersję starszych wersji CentOS5, w których / etc / redhat-release zawiera tylko wersję główną. Dzięki za podpowiedź.
PolyTekPatrick

1
Aby uzyskać wersję główną:cat /etc/redhat-release | grep -oP '(?<= )[0-9]+(?=\.)'
Rockallite

1
Ciekawe: dlaczego „plik kota | wzór grep” zamiast „plik wzoru grep”?
barrycarter

Właśnie, wykopałem to z historii powłoki i udało się to naprawić. Naprawiony.
lzap

13

Możesz to ustalić, wywołując następujące polecenie:

hostnamectl

Który zwróci następująco:

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

Możesz także użyć, rpmaby znaleźć szczegółowe informacje o wersji CentOS:

rpm --query centos-release

Który wróci w moim przypadku:

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

1
hostnamectlzwraca tylko główny numer wydania
fpmurphy

1
Zgadza się, używając rpm, możesz uzyskać szczegółową wersję
hd84335

6

Prawidłowy sposób to lsb_release -d.


8
W CentOS 7: lsb_release: Nie znaleziono polecenia.
Dereckson,

mniam zainstalować redhat-lsb-core ...
gena2x

7
Jasne, ale miałem na myśli: nie jestem pewien, czy warto instalować nowy pakiet, aby uzyskać aktualną wersję.
Dereckson,

1
Jeśli potrzebujesz komendy, która może to zrobić w wielu dystrybucjach, nadal warto ją zainstalować.
gena2x

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

Wytwarza następujące:

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

3

Można go znaleźć w lokalizacji /etc, w pliku os-release. Więc wpisz:

cat /etc/os-release

Czy zostało to przeniesione do CentOS 5 lub 6? Jeśli nie, jest to szczególnie przydatne w przyszłości ....
mattdm,

CentOS udostępnił to począwszy od CentOS 7 - nie widziałem backportu.
webaholik

3

Najbardziej naprawdę niezawodny (i krótki) sposób, aby uzyskać wersji głównych albo CentOS lub RHEL jest:

rpm -E %{rhel}

Podaje ci wartość np. 6, 7Lub 8(teraz, gdy RHEL 8 jest niedostępny).


2

Uruchom, rpm --eval '%{centos_ver}'aby uzyskać MAJOROWĄ wersję centos.


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.