2009-12-08 66 views
15

Đã chuyển đến https://superuser.com/questions/80251/how-to-know-which-linux-distribution-im-usingLàm cách nào để biết tôi đang sử dụng Phân phối Linux nào?

Làm cách nào để biết tôi đang sử dụng Phân phối Linux nào?

uname -a cung cấp Linux xxxxxx.net 2.6.9-42.0.3.EL.wh1smp # 1 SMP Thứ Sáu 14 tháng 8 15:48:17 MDT 2009 i686 i686 i386 GNU/Linux Làm cách nào tôi biết đây là Ubuntu/Debian/Fedora hoặc Redhat?

tôi sử dụng khởi động lại /etc/init.d/serviced cho khởi động lại serevices, dường như nó không phải là gia đình Redhat

Cập nhật:

[~]$ cat /etc/issue 
cat: /etc/issue: No such file or directory 
[~]$ cat /etc/issue.net 
cat: /etc/issue.net: No such file or directory 
[~]$ lsb_release -a 
-sh: lsb_release: command not found 
[~]$ cat /etc/*-release 
cat: /etc/*-release: No such file or directory 
[~]$ cat /etc/*-version 
cat: /etc/*-version: No such file or directory 
[~]$ cat /etc/*release 
cat: /etc/*release: No such file or directory 
[~]$ cat /etc/*_release 
cat: /etc/*_release: No such file or directory 
[~]$ cat /etc/*version 
cat: /etc/*version: No such file or directory 
[~]$ 
+0

được bạn kết nối bằng thiết bị đầu cuối? – pcp

+0

Điều này sẽ được trên superuser hoặc serverfault. Nó không phải là một câu hỏi lập trình. – marcc

+0

Nếu bạn đang tìm kiếm một cách đáng tin cậy để làm cho chương trình của bạn hoạt động phù hợp trên bất kỳ phân phối cụ thể nào, tôi khuyên bạn nên cập nhật câu hỏi của mình trước khi di chuyển. –

Trả lời

28

Hãy thử điều này:

cat /etc/*-release 

Bạn có thể cũng thử/etc/* - phiên bản

+1

[itflux] [~] $ cat/etc/* - release cat:/etc/* - release: Không có tập tin hoặc thư mục như vậy [itflux] [~] $ cat/etc/* - phiên bản cat:/etc/* - phiên bản: Không có tệp hoặc thư mục nào như vậy –

+1

'cat/etc/* [_-] release' sẽ tốt hơn: một số distro sử dụng dấu gạch dưới, không gạch nối. –

11

/etc/issue hoặc /etc/issue.net cho một đầu mối tốt. Bản phân phối mới hơn cung cấp/etc/lsb-release giúp dễ dàng xác định chuỗi chính xác hơn, tức là tên distro/chính & phát hành/trang web nhỏ, v.v.

Trong trường hợp không có/etc/lsb-release, nhiều khó khăn hơn, do đó tạo ra bản phát hành lsb.

Như Alok đã nói, có vẻ như bạn đang ở trên một hệ thống khá cổ (hoặc cực kỳ thưa thớt). Tôi không nghĩ đây là trường hợp mà bạn có thể (đáng tin cậy) xác định một cách progmatically với một vài dòng mã.

Nếu vẫn thất bại, hãy kiểm tra xem loại trình quản lý gói đang sử dụng (apt/rpm/others), kiểm tra xem /etc/init.d có phải là liên kết tượng trưng (phân vùng rpm/RH) hay thư mục không (debian based distro) .. và bạn có một đầu mối khá tốt về những gì bạn có thể mong đợi có mặt trong hệ thống tập tin gốc xa như cấu trúc.

Bạn không thể xin vui lòng tất cả mọi người :)

+0

Debian và các dẫn xuất (Ubuntu) cũng có/etc/lsb-release. Họ cũng có chương trình lsb_release sẽ cung cấp cho bạn thông tin cụ thể (bạn không phải phân tích cú pháp tệp văn bản). – MichaelM

+0

@MichaelM: Bạn đang đọc một tệp theo cách ... hoặc trực tiếp mở/etc/lsb-release hoặc cạo đầu ra của lsb_release (dù bằng cách nào, bạn vẫn đang đọc tệp ngay cả khi nó xuất hiện). Nếu làm điều này một cách khẩn trương, tốt nhất là phân tích cú pháp tập tin (imho) .. ít phần chuyển động có thể có hoặc không có mặt :) –

+0

[itflux] [~] $ cat/etc/issue cat:/etc/issue : Không có tệp hoặc thư mục nào như vậy [itflux] [~] $ cat /etc/issue.net cat: /etc/issue.net: Không có tệp hoặc thư mục nào như vậy [itflux] [~] $ lsb_release -a -sh : lsb_release: lệnh không tìm thấy –

18

Nếu bạn có lsb_release lệnh,

lsb_release -a 

sẽ cho bạn biết (hoặc chỉ sử dụng lsb_release -i).

lsb_release nằm trong Linux Standard Base Core Specification.

Chỉnh sửa: Có vẻ như bạn đang sử dụng hệ thống Red Hat. Tìm kiếm google trên đầu ra uname của bạn suggests so. Đây không phải là chương trình, tất nhiên!

+2

$ lsb_release -a - sh: lsb_release: lệnh không được tìm thấy –

+0

Đánh giá từ câu trả lời này và các câu trả lời khác của bạn, có vẻ như bạn có một reall y hệ thống linux cũ. –

+0

lsb_relase được tạo ra để giảm bớt nỗi đau khi xác định distro dễ dàng từ bên trong chương trình. Rất nhiều hệ thống trong tự nhiên và vẫn còn sử dụng thiếu hoàn toàn này. –

1

EL là viết tắt của Enterprise Linux trong trường hợp này, vì vậy tôi nghĩ RedHat hoặc một bản sao (như CentOS). Tôi không biết một cách tốt để lập trình tìm ra những gì bạn đang gặp; có một vài manh mối khác nhau cho mỗi cái.

cat /etc/redhat_release 
cat /etc/debian_version 

là một khởi đầu tốt. (Lưu ý rằng Ubuntu không sửa đổi /etc/debian_version khi họ kéo các thay đổi từ Debian, vì vậy hệ thống Ubuntu Karmic của tôi đã được nén/sid trong debian_version.)

Chỉnh sửa: quên về lsb. Cuộc gọi tốt, Tim Post và Alok. Toàn bộ điểm của LSB là đưa ra những cách độc lập để làm việc.

+0

[itflux] [~] $ cat/etc/redhat_release mèo:/etc/redhat_release: Không có tệp hoặc thư mục nào như vậy [itflux] [~] $ cat/etc/debian_version mèo:/etc/debian_version: Không có tệp nào như vậy –

+0

EL cũng có thể là Enterprise Linux của SuSE, còn gọi là sles.Nó sử dụng RPM như RedHat. Đừng nhớ cách kiểm tra nó. –

+0

Oh yeah, Suse có một số lệnh trên đầu trang của rpm. Nếu bạn có yast2 hoặc yum, bạn đang ở trên SuSE. Tìm trong/etc/for * suse * hoặc * novell *. –

5

Có vẻ như đây là một số thông tin:

> cat /etc/issue 
Welcome to SUSE LINUX Enterprise Server 9 (i586) - Kernel \r (\l). 

> uname -a 
Linux boxname 2.6.5-7.244-smp #1 SMP Mon Dec 12 18:32:25 UTC 2005 i686 athlon i386 GNU/Linux 

> cat /etc/*-release 
SUSE LINUX Enterprise Server 9 (i586) 
VERSION = 9 
PATCHLEVEL = 3 
+0

Whohooo ai đó không thích câu trả lời, hãy nghe ý kiến ​​của bạn ... Tôi đã khá thường cố gắng tìm ra những gì đang chạy trên một hộp, đây là một số điều tôi nhìn, nó cho bạn biết phiên bản hạt nhân, đôi khi thậm chí là tên distro ... – stefanB

+0

[itflux] [~] $ cat/etc/issue cat:/etc/issue: Không có tệp hoặc thư mục nào như vậy [itflux] [~] $ cat /etc/issue.net cat: /etc/issue.net: Không có tệp hoặc thư mục nào như vậy [itflux] [~] $ lsb_release -a -sh: lsb_release: lệnh không tìm thấy [itflux] [~] $ cat/etc/* - release cat:/etc/* - release: Không có tệp hoặc thư mục nào như vậy [itflux] [~] $ cat/etc/* - phiên bản mèo:/etc/* - phiên bản: Không có tệp hoặc thư mục nào như vậy [itflux] [~] $ –

+0

sao cho bạn không có Linux chuẩn, không có gì mới, nhưng tôi giả sử ít nhất 'uname -a' cung cấp cho bạn một số phản hồi ... – stefanB

2

Một danh sách các tên tập tin phát hành cho các distro phổ biến nhất: Release files

Và một chức năng có thể giúp bạn: Shell script

Các vấn đề liên quan