Bagaimana cara menentukan versi CentOS?

125

Bagaimana cara menentukan versi server CentOS tanpa akses ke antarmuka grafis apa pun? Saya sudah mencoba beberapa perintah:

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

tetapi yang mana yang benar: 4.1.2-4 dari /proc/versionatau 5.3 dari /etc/issue?

Philippe Blayo
sumber

Jawaban:

43

Seperti yang Anda lihat /etc/issue, Anda menggunakan CentOS 5.3. (Dikatakan Red Hat karena CentOS didasarkan pada sumber-sumber Kesehatan Reproduksi, dan beberapa perangkat lunak memeriksa /etc/issueuntuk mengidentifikasi distro yang digunakan; dengan demikian, mereka akan gagal jika ini diubah menjadi CentOS).

The 4.1.2-4dalam /proc/versionmengacu pada versi gccC compiler yang digunakan untuk membangun kernel.

Renan
sumber
3
Saya hanya akan menambahkan, apa yang dapat Anda gunakan uname -a untuk mendeteksi, jika 32 atau 64 bit kompatibel.
Fedir RYKHTIK
15
Pada CentOS 7, 'cat / etc / issue' menghasilkan \S Kernel \r on an \m
gobbledygook
9
Jawaban yang benar harus menjadi salah satu oleh h3rrmiller ... cat /etc/*elease. /etc/issuesering diganti oleh
MOTD
The /etc/issueberkas menunjukkan bahwa itu adalah RHEL, tidak CentOS.
Michael Hampton
161

Dalam kasus seperti CentOS versi sebenarnya biasanya ditempatkan di /etc/*elease.

cat /etc/*elease

diberikan file ini biasanya menampung versi seluruh OS dikurangi kernel (karena Anda dapat memilih mana yang akan dimuat). File ini akan memiliki informasi yang sama dengan / etc / issue tetapi dengan CentOS dan bukan RedHat

h3rrmiller
sumber
1
rilis cat / etc / * juga akan bekerja, dan Anda tidak menghilangkan surat apa yang Anda cari;) karena elease tidak selalu mudah ditebak. *bisa berupa apa-apa, semua, satu atau lebih item sekaligus. Terima kasih, saya selalu lupa cara untuk mendapatkan versi rilisnya.
erm3nda
9
Alasan saya membiarkan "R" mati adalah karena dalam beberapa kasus "R" dalam "rilis" dikapitalisasi.
h3rrmiller
Hanya untuk mengatakan, lakukan ls /etc/*eleasepada sistem saya memberi /etc/centos-release /etc/redhat-release /etc/system-release. Jadi saya menduga dari semua ini bahwa file rilis cenderung /etc/*-release- tetapi mungkin dengan beberapa huruf besar.
mwfearnley
2
Ini benar. Saya menemukan di banyak situs yang /etc/issuetelah ditimpa dengan MOTD atau penafian keamanan untuk digunakan dengan Banneropsi disshd_config
batfastad
cat /etc/*os-releaseharus menghasilkan lebih banyak hasil yang ditargetkan untuk CentOS dan masih bekerja di Ubuntu dan lainnya.
webaholik
19

Cara paling dapat diandalkan untuk menemukan versi UTAMA dari CentOS (5 atau 6 dll) adalah:

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

Untuk RHEL lakukan ini:

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

Satu-satunya cara portabel untuk mengetahui versi tanpa lsb_release atau alat lain adalah:

# grep -oE '[0-9]+\.[0-9]+' /etc/redhat-release
6.5
lzap
sumber
3
Dapat disederhanakan untuk:cat /etc/redhat-release | grep -o '[0-9]\.[0-9]'
Dave Johansen
1
+1 rpm -q centos-releaseadalah satu-satunya cara yang saya temukan untuk mendapatkan versi minor pada rilis CentOS5 lama di mana / etc / redhat-release hanya berisi versi utama. Terima kasih atas petunjuknya.
PolyTekPatrick
1
Untuk mendapatkan versi utama:cat /etc/redhat-release | grep -oP '(?<= )[0-9]+(?=\.)'
Rockallite
1
Hanya ingin tahu: mengapa "file cat | pola grep" bukan "file pola grep"?
barrycarter
Benar, menggali itu dari histori shell dan mampu memperbaikinya. Tetap.
lzap
13

Anda dapat menentukannya hanya dengan memanggil perintah berikut:

hostnamectl

Yang akan kembali sebagai berikut:

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

Anda juga dapat menggunakan rpmuntuk menemukan detail tentang versi CentOS:

rpm --query centos-release

Yang akan kembali dalam kasus saya:

centos-release-7-3.1611.el7.centos.x86_64
hd84335
sumber
1
hostnamectlhanya mengembalikan nomor rilis utama
fpmurphy
1
Itu benar, menggunakan rpm, Anda bisa mendapatkan versi terperinci
hd84335
6

Cara yang benar adalah lsb_release -d.

gena2x
sumber
8
Pada CentOS 7: lsb_release: Perintah tidak ditemukan.
Dereckson
yum instal redhat-lsb-core ...
gena2x
7
Tentu, tetapi yang saya maksudkan: Saya tidak yakin berharga untuk menginstal paket baru untuk mendapatkan versi saat ini.
Dereckson
1
Jika Anda menginginkan beberapa perintah yang dapat melakukannya di beberapa distribusi, mungkin masih layak untuk diinstal.
gena2x
5
# echo "I am running: `cat /etc/redhat-release` (`arch`)"

Output sebagai berikut:

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

Itu dapat ditemukan di lokasi /etc, di dalam file os-release. Jadi ketikkan:

cat /etc/os-release
Lijo George
sumber
Apakah ini di-backport ke CentOS 5 atau 6? Jika tidak, ini sebagian besar berguna ke depan ....
mattdm
CentOS menyediakan ini mulai dengan CentOS 7 - Saya belum melihat backport.
webaholik
3

Yang paling benar-benar cara yang dapat diandalkan (dan pendek) untuk mendapatkan versi UTAMA baik CentOS atau RHEL adalah:

rpm -E %{rhel}

Akan memberikan nilai misalnya 6, 7atau 8(sekarang bahwa RHEL 8 keluar).

Danila Vershinin
sumber
2

Jalankan rpm --eval '%{centos_ver}'untuk mendapatkan versi centos BESAR.

tvorog
sumber
0

Berikut adalah beberapa perintah yang saya kumpulkan melalui google, dapat membantu seseorang:

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

Saya membuat intisari untuk merekam ini juga.

shellbye
sumber