Как узнать, какое дистрибутив Linux я использую?

Переместился на https://superuser.com/info/80251/how-to-know-which-linux-distribution-im-using

Как узнать, какое дистрибутив Linux я использую?

uname -a дает Linux xxxxxx.net 2.6.9-42.0.3.EL.wh1smp # 1 SMP Пт Авг 14 15:48:17 MDT 2009 i686 i686 i386 GNU/Linux Как я могу узнать, что это Ubuntu/Debian/Fedora или Redhat?

Я использую перезапуск /etc/init.d/serviced для перезапуска serevices, кажется, что это не семейство Redhat

Update:

[~]$ 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
[~]$

Ответы

Ответ 1

Попробуйте следующее:

cat /etc/*-release

Вы также можете попробовать /etc/ * - version

Ответ 2

Если у вас есть команда lsb_release,

lsb_release -a

сообщит вам (или просто используйте lsb_release -i).

lsb_release находится в Стандартная базовая базовая спецификация Linux.

Изменить: Похоже, вы находитесь в системе Red Hat. Поиск Google на вашем uname выходе предлагает это. Конечно, это не программно!

Ответ 3

/etc/issue или /etc/issue.net дают хорошую подсказку. Новые дистрибутивы предоставляют /etc/lsb -release, которые упрощают определение точных строк прогматически, то есть имя-дистрибутив/основной и младший выпуск/веб-сайт и т.д.

В отсутствие /etc/lsb -release его гораздо сложнее, следовательно, создание lsb-release.

Как сказал Алок, похоже, что вы находитесь на довольно древней (или крайне редкой) системе. Я не думаю, что это случай, который вы можете (надежно) прогматически определить с помощью нескольких строк кода.

Если все остальное не работает, проверьте, какой тип менеджера пакетов используется (apt/rpm/others), проверьте, является ли /etc/init.d символической связью (rpm/RH distros) или каталогом ( дистрибутивы на основе debian).. и у вас есть довольно хорошая подсказка относительно того, что вы можете ожидать от присутствия в корневой файловой системе в отношении структуры.

Вы не можете понравиться всем:)

Ответ 4

Похоже, здесь есть информация:

> 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

Ответ 5

Перечислите имена файлов выпуска для наиболее распространенных дистрибутивов: Отменить файлы

И функция, которая может вам помочь: Shell script

Ответ 6

В этом случае EL означает Enterprise Linux, поэтому я думаю, что RedHat или клон (например, CentOS). Я не знаю, как правильно программировать, какой дистрибутив вы используете; есть несколько разных подсказок для каждого из них.

cat  /etc/redhat_release
cat /etc/debian_version

- хорошее начало. (Обратите внимание, что Ubuntu не изменяет /etc/debian_version, когда они извлекают изменения из Debian, поэтому моя система Ubuntu Karmic имеет сжатие /sid в debian_version.)

Изменить: забыли про lsb. Хороший звонок, Тим Пост и Алок. Вся суть LSB заключается в том, чтобы дать независимые от дистрибутива способы сделать что-то.