Làm cách nào để xác định phiên bản CentOS?


125

Làm cách nào để xác định phiên bản của máy chủ CentOS mà không truy cập vào bất kỳ giao diện đồ họa nào? Tôi đã thử một số lệnh:

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

nhưng cái nào đúng: 4.1.2-4 từ /proc/versionhoặc 5.3 từ /etc/issue?

Câu trả lời:


43

Như bạn có thể thấy /etc/issue, bạn đang sử dụng CentOS 5.3. (Nó nói Red Hat vì CentOS dựa trên các nguồn RH và một số phần mềm kiểm tra /etc/issueđể xác định bản phân phối đang sử dụng; do đó, họ sẽ thất bại nếu điều này được đổi thành CentOS).

Các 4.1.2-4trong /proc/versionđề cập đến phiên bản của gcctrình biên dịch C được sử dụng để xây dựng hạt nhân.


3
Tôi sẽ chỉ thêm, những gì bạn có thể sử dụng uname -a để phát hiện, nếu nó tương thích 32 hoặc 64 bit.
Fedir RYKHTIK

15
Trên CentOS 7, 'cat / etc / vấn đề' mang lại gobbledygook: \S Kernel \r on an \m
Urhixidur

9
Câu trả lời đúng nên là từng người h3rrmiller ... cat /etc/*elease. /etc/issuethường được thay thế bằng bộ
GTVT

Các /etc/issuetập tin cho thấy rằng đó là RHEL, không phải CentOS.
Michael Hampton

161

Trong các trường hợp như CentOS, phiên bản thực tế thường được đặt trong /etc/*elease.

cat /etc/*elease

cấp tệp này thường giữ phiên bản của toàn bộ hệ điều hành trừ hạt nhân (vì bạn có thể chọn tải tệp nào). Tệp này sẽ có cùng thông tin như / etc / vấn đề nhưng với CentOS thay vì RedHat


1
Bản phát hành cat / etc / * cũng sẽ hoạt động và bạn không bỏ sót một lá thư về những gì bạn đang tìm kiếm;) bởi vì elease không phải lúc nào cũng dễ đoán. *có thể không có gì, tất cả, một hoặc nhiều mặt hàng tại một thời điểm. Cảm ơn bạn, tôi luôn quên cách để có được phiên bản phát hành.
erm3nda

9
Lý do tôi bỏ "R" là vì trong một số trường hợp, "R" trong "phát hành" được viết hoa.
h3rrmiller

Chỉ cần nói, làm ls /etc/*eleasetrên hệ thống của tôi cho /etc/centos-release /etc/redhat-release /etc/system-release. Vì vậy, tôi đoán từ tất cả những điều này rằng các tệp phát hành có xu hướng nằm trong /etc/*-release- nhưng có thể với một số chữ viết hoa.
mwfearnley 7/8/2015

2
Chính xác. Tôi tìm thấy ở nhiều trang web /etc/issueđã được ghi đè bằng một motd, an ninh từ chối trách nhiệm để sử dụng với các Bannertùy chọn trongsshd_config
batfastad

cat /etc/*os-releasesẽ mang lại kết quả được nhắm mục tiêu nhiều hơn cho CentOS và vẫn hoạt động trên Ubuntu và những người khác.
webaholik

19

Cách đáng tin cậy nhất để tìm phiên bản MAJOR của CentOS (5 hoặc 6, v.v.) là:

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

Đối với RHEL làm điều này:

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

Cách di động duy nhất để tìm ra phiên bản không có lsb_release hoặc các công cụ khác là:

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

3
Có thể được đơn giản hóa thành:cat /etc/redhat-release | grep -o '[0-9]\.[0-9]'
Dave Johansen

1
+1 rpm -q centos-releaselà cách duy nhất tôi chưa tìm thấy để có phiên bản nhỏ trên các bản phát hành CentOS5 cũ hơn trong đó / etc / redhat-phát hành chỉ chứa phiên bản chính. Cảm ơn đã gợi ý.
PolyTekPatrick

1
Để có phiên bản chính:cat /etc/redhat-release | grep -oP '(?<= )[0-9]+(?=\.)'
Rockallite

1
Chỉ tò mò: tại sao "tập tin mèo | mẫu grep" thay vì "tập tin mẫu grep"?
barrycarter

Phải, đã đào nó từ lịch sử vỏ và có thể sửa nó. Đã sửa.
lzap

13

Bạn có thể xác định nó bằng cách chỉ cần gọi lệnh sau:

hostnamectl

Mà sẽ trở lại như sau:

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

Bạn cũng có thể sử dụng rpmđể tìm chi tiết về phiên bản CentOS:

rpm --query centos-release

Mà sẽ trở lại trong trường hợp của tôi:

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

1
hostnamectlchỉ trả về số phát hành chính
fpmurphy

1
Đúng vậy, bằng cách sử dụng vòng / phút, bạn có thể có được một phiên bản chi tiết
hd84335

6

Đúng cách là thế lsb_release -d.


8
Trên CentOS 7: lsb_release: Không tìm thấy lệnh.
Dereckson

yum cài đặt redhat-lsb-core ...
gena2x 17/2/2016

7
Chắc chắn, nhưng ý tôi là: Tôi không chắc có giá trị khi phải cài đặt gói mới để có phiên bản hiện tại.
Dereckson 17/2/2016

1
Nếu bạn muốn một số lệnh có thể thực hiện trên nhiều bản phân phối, nó vẫn có thể được cài đặt.
gena2x

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

Đầu ra như sau:

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

3

Nó có thể được tìm thấy tại vị trí /etc, bên trong tập tin os-release. Vì vậy, gõ vào:

cat /etc/os-release

Đây có phải là backport cho CentOS 5 hoặc 6? Nếu không, điều này chủ yếu là hữu ích trong tương lai ....
mattdm

CentOS cung cấp tính năng này bắt đầu với CentOS 7 - Tôi chưa thấy một cổng sau.
webaholik

3

Cách thực sự đáng tin cậy nhất (và ngắn) để có được phiên bản CHÍNH của CentOS hoặc RHEL là:

rpm -E %{rhel}

Sẽ cung cấp cho bạn một giá trị ví dụ 6, 7hoặc 8(bây giờ mà RHEL 8 là ra).


2

Chạy rpm --eval '%{centos_ver}'để có được phiên bản chính của centos.


0

Đây là một số lệnh tôi đã thu thập thông qua google, có thể giúp ai đó:

https://forum.directadmin.com/showthread.php?t=15878

cat /etc/*release*
cat /etc/centos-release

http: //www.l 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

Tôi cũng tạo ra một ý chính để ghi lại điều này.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.