Jak sprawdzić, której dystrybucji Linux używam?

53

Jak sprawdzić, której dystrybucji Linux używam?

uname -a daje

Linux xxxxxx.net 2.6.9-42.0.3.EL.wh1smp #1 SMP Fri Aug 14 15:48:17 MDT 2009 i686 i686 i386 GNU/Linux

Skąd mam wiedzieć, że jest to Ubuntu / Debian / Fedora lub Redhat?

Używam /etc/init.d/serviced restartdo restartowania usług, wygląda na to, że to nie rodzina Redhat

[itf][~]$ cat /etc/issue
cat: /etc/issue: No such file or directory
[itf][~]$ cat /etc/issue.net
cat: /etc/issue.net: No such file or directory
[itf][~]$ lsb_release -a
-sh: lsb_release: command not found
[itf][~]$ cat /etc/*-release
cat: /etc/*-release: No such file or directory
[itf][~]$ cat /etc/*-version
cat: /etc/*-version: No such file or directory
[itf][~]$ cat /etc/*release
cat: /etc/*release: No such file or directory
[itf][~]$ cat /etc/*_release
cat: /etc/*_release: No such file or directory
[itf][~]$ cat /etc/*version
cat: /etc/*version: No such file or directory
[itf][~]$
Mithun Sreedharan
źródło
Jeśli chcesz usunąć pewne dane osobowe / poufne, myślę, że możesz oflagować swoje pytanie do uwagi moderatora. Ponieważ nadal możemy go teraz przeczytać ...
Tamara Wijsman,
@Tom Wijsman po prostu nie chce wyświetlać tego tekstu na stronie pytań, wiem, że będzie tam w historii :-)
Mithun Sreedharan

Odpowiedzi:

31
  • W Debianie: /etc/debian_version

  • W Ubuntu: lsb_release -a or /etc/debian_version

  • W Redhat: cat /etc/redhat-release

  • W Fedorze: cat /etc/fedora-release

Gąsienica
źródło
2
Wypróbował wszystkie, zobacz swój kod źródłowy.
guerda,
2
+1, „lsb_release -a” działało dla mnie w Red Hat.
Aaron
3
lsb_release -adziałał również w Debianie (squeeze).
acme
1
lsb_release -adziała również w Gentoo
Siergiej
lsb_release -adziała również w Ubuntu i Mint.
wranvaud
19

Nie komplikuj!

cat /etc/*release
Travis van der Font
źródło
15

Możesz spróbować tego artykułu z Novell .

Jeśli jesteś właścicielem systemu, wiesz, który system Linux jest zainstalowany i uruchomiony. Ten artykuł pomoże ci zrozumieć, jak ustalić, która dystrybucja Linuksa jest zainstalowana. Możesz włączyć to do swojej aplikacji, aby wykryć dystrybucję Linuksa.

Marcin Gil
źródło
Próbowałem już. .9-42.0.3.EL.wh1smp i686) $ uname -a Linux qsquare.net 2.6.9-42.0.3.EL.wh1smp # 1 SMP Pt 14 sierpnia 15:48:17 MDT 2009 i686 i686 i386 GNU / Linux
Mithun Sreedharan,
6
cat /etc/*releasewydaje się działać w przypadku niektórych głównych dystrybucji. Zweryfikowałem z Ubuntu, Mint, Red Hat i Gentoo.
nobar
Debian tego nie rozpoznaje
Milad Naseri,
Rozwiązanie Novell wreszcie działa na moim RedHat 5.3. Zintegrowałem go w mojej darmowej bibliotece lib: github.com/Offirmo/offirmo-shell-lib
Offirmo
@nobar: Działa również z dystrybucjami SUSE: /etc/SuSE-release pastebin.com/dL5gVLQe
bwDraco
3

Spróbuj jednego z tych:

ls -ld /etc/\*release\*  /etc/\*version\*

gcc --version
ZaB
źródło
1
Czy mogę zapytać, dlaczego nie używasz znaczników do kodu? Wciskaj kod o cztery spacje, co znacznie ułatwia czytanie i rozróżnianie. Dziękuję Ci.
slhck,
3

Wszystkie systemy zgodne z będą miały, /etc/os-releaseco powinno dostarczyć informacji związanych z dystrybucją itp

NAME=Fedora
VERSION="17 (Beefy Miracle)"
ID=fedora
VERSION_ID=17
PRETTY_NAME="Fedora 17 (Beefy Miracle)"
ANSI_COLOR="0;34"
CPE_NAME="cpe:/o:fedoraproject:fedora:17"
HOME_URL="https://fedoraproject.org/"
BUG_REPORT_URL="https://bugzilla.redhat.com/"
Jogesh
źródło
2

Spróbuj http://legroom.net/2010/05/05/generic-method-determine-linux-or-unix-distribution-name .

Kombinacja technik, która łączy zapytania z narzędziami LSB, pliki informacji o wydaniu dystrybucji i informacje o jądrze od uname. Przyjmie najbardziej konkretną nazwę dystrybucji, jaką może znaleźć, w razie potrzeby odwołując się do ogólnego systemu Linux. Zidentyfikuje również warianty UNIX, takie jak Solaris lub AIX.

Tamara Wijsman
źródło
1

Hmmm, być może jest to kolejna dystrybucja - sufiks .EL wydaje się być używany przez centos, ale to pochodna redhat. Zastanawiam się także, jaki jest twój system zarządzania pakietami? Pomocne może być sprawdzenie, z których repozytoriów korzystasz, ponieważ zazwyczaj są one dostarczane przez dostawcę i specyficzne dla dystrybucji

Journeyman Geek
źródło
0

Opierając się na wersji jądra powiedziałbym, że to WBEL 4 . Wiadomo, że opóźniają się nieco ze swoimi aktualizacjami, więc prawdopodobnie najlepiej byłoby przeprowadzić migrację do CentOS.

Ignacio Vazquez-Abrams
źródło
0

Po prostu umieszczam wynik w var i małymi literami

OS=`awk -F= '/DISTRIB_ID/ {print tolower($2)}' /etc/lsb-release`
SergioAraujo
źródło
0

Aktualizacja tutaj, teraz można jej używać lsb_release -ds, dzięki czemu można jej używać tak, jak linuxDistro=$(lsb_release -ds)bez dodatkowej analizy.

3manuek
źródło