Ядро универсально определяется с помощью uname
:
$ uname -or 2.6.18-128.el5 GNU/Linux
На самом деле нет способа перекрестного распространения, чтобы определить, какой дистрибутив и версию вы используете. Были попытки сделать это последовательным, но, к сожалению, в конечном итоге оно меняется. Инструменты LSB предоставляют эту информацию, но по иронии судьбы не устанавливаются по умолчанию везде. Пример в системе Ubuntu 9.04 с lsb-release
установленным пакетом:
$ lsb_release -irc Distributor ID: Ubuntu Release: 9.04 Codename: jaunty
В противном случае ближайший широко доступный метод - проверка файлов. Они существуют на большинстве распространенных платформ и их производных (например, Red Hat и CentOS)./etc/something-release
Вот несколько примеров.
Ubuntu имеет /etc/lsb-release
:
$ cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=9.04 DISTRIB_CODENAME=jaunty DISTRIB_DESCRIPTION="Ubuntu 9.04"
Но у Debian есть /etc/debian_version
:
$ cat /etc/debian_version 5.0.2
Fedora, Red Hat и CentOS имеют:
Fedora: $ cat /etc/fedora-release Fedora release 10 (Cambridge) Red Hat/older CentOS: $ cat /etc/redhat-release CentOS release 5.3 (Final) newer CentOS: $ cat /etc/centos-release CentOS Linux release 7.1.1503 (Core)
Gentoo:
$ cat /etc/gentoo-release Gentoo Base System release 1.12.11.1
В данный момент у меня нет системы SUSE, но я верю, что это так /etc/SuSE-release
.
Slackware имеет /etc/slackware-release
и / или /etc/slackware-version
.
Мандрива имеет /etc/mandriva-release
.
Тогда для большинства популярных дистрибутивов
$ cat /etc/*
будет чаще всего работать. Урезанные и пустые «серверные» установки могут не иметь установленного пакета «release» для дистрибутива.
Кроме того, два 3 - й программы партии, которые можно использовать, чтобы автоматически получить эту информацию в Ohai и Facter .
Обратите внимание, что во многих дистрибутивах такая информация содержится в /etc/issue
или /etc/motd
, но некоторые политики безопасности и лучшие практики указывают, что эти файлы должны содержать баннеры уведомлений о доступе.
Связанный: Как узнать версию программного пакета, установленного на узле? , Кукольный .