Все способы узнать версию дистрибутива Linux (а также FreeBSD, MacOS и прочих)

Иногда случается работать с системой, про которую вы ничего не знаете. Выяснить дистрибутив, его версию, а также версию ядра на запущенной Linux-системе очень просто.

1. Дистрибутив Linux и его версия

1.1. lsb_release

Чтобы понять, какой дистрибутив Linux и какая его версия используется, попробуйте выполнить следующую команду в консоли работающей системы:

$ lsb_release -a No LSB modules are available. Distributor ID: Ubuntu Description: Ubuntu 16.04.1 LTS Release: 16.04 Codename: xenial

Это означает, что запущен Linux-дистрибутив Ubuntu версии 16.04.1 (с кодовым названием релиза «xenial»). Выводимые здесь переменные определяются в системном файле /etc/lsb-release:

$ cat /etc/lsb-release DISTRIB_ID=Ubuntu DISTRIB_RELEASE=16.04 DISTRIB_CODENAME=xenial DISTRIB_DESCRIPTION=»Ubuntu 16.04.1 LTS»

Такой файл есть в Ubuntu, Debian и других многочисленных Linux-дистрибутивах, соответствующих стандарту LSB. Бывают и другие схожие системные файлы с указанием версии — например, у CentOS это /etc/redhat-release, содержимое которого может выглядеть так:

CentOS release 5.5 (Final)

Таким образом, для выяснения версии дистрибутива Linux полезно посмотреть содержимое всех имеющихся файлов /etc/*release. Звездочка перед «release» здесь стоит, поскольку у разных дистрибутивов файл может называться по-разному, но будет заканчиваться на «release» (/etc/lsb-release, /etc/redhat-release, /etc/os-release и так далее).

1.2. /etc/*version

Если таких файлов нет, попробуйте воспользоваться командой:

cat /etc/*version

Звёздочка перед «version» — по аналогии с файлами, заканчивающимися на «release». В случае упомянутой Ubuntu (и других основанных на Debian GNU/Linux дистрибутивов) мы увидим:

stretch/sid

Это кодовое имя релиза Debian (9.0 «Stretch», ветвь sid), используемого в основе дистрибутива Ubuntu.

1.3. /etc/issue

Если и это не помогло определить версию Linux-дистрибутива, попробуйте проверить наличие еще одного потенциально идентифицирующего дистрибутив файла — /etc/issue. Пример для всё той же Ubuntu:

cat /etc/issue Ubuntu 16.04.1 LTS n l

2. Версия ядра Linux

Узнать версию ядра Linux, используемого в запущенной системе, можно с помощью утилиты uname:

$ uname -r 4.4.0-51-generic

Дополнительные сведения о сборке ядра, архитектуре и т.п. доступны с ключом -a:

$ uname -a Linux ubunrio 4.4.0-51-generic #72-Ubuntu SMP Thu Nov 24 18:29:54 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

Также информация о версии ядра Linux и его сборке хранится в виртуальной файловой системе /proc:
$ cat /proc/version Linux version 4.4.0-51-generic ([email protected]) (gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4) ) #72-Ubuntu SMP Thu Nov 24 18:29:54 UTC 2016

Команда hostnamectl

Команда hostnamectl, выполненная без параметров или с ключом status, выводит текущую информацию о системе.

hostnamectl Static hostname: p Icon name: computer-desktop Chassis: desktop Machine ID: abc231434aabcb…a Boot ID: 51dcaa2321bbbb…a Operating System: Ubuntu 18.10 Kernel: Linux 4.18.0-16-generic Architecture: x86-64

Помимо данных дистрибутива, выводится версия ядра и архитектура.



Как узнать версию Linux

Мы будем использовать команду uname, которая используется для печати вашей системной информации в Linux, такой как версия ядра и имя выпуска, имя сетевого узла, имя аппаратного оборудования, архитектура процессора, аппаратная платформа и операционная система.

$ uname -или

В предыдущей команде параметр -o выводит имя операционной системы и -r выводит версию выпуска ядра.

Вы также можете использовать опцию -a с командой uname для печати всей системной информации, как показано:

$ uname -a

Затем мы будем использовать файловую систему /proc, которая хранит информацию о процессах и другой системной информации, она сопоставлена ​​/proc и монтируется во время загрузки.

$ cat /proc/ version

На приведенном выше изображении вы найдете следующую информацию:

  • Версия Linux (ядро), которую вы запускаете: версия Linux 4.5.5-300.fc24.x86_64
  • Имя пользователя, скомпилировавшего ваше ядро:
  • Версия компилятора GCC, используемого для построения ядра: gcc версия 6.1.1 20160510
  • Тип ядра: # 1 SMP (ядро Symmetric MultiProcessing) поддерживает системы с несколькими процессорами или несколькими ядрами ЦП.
  • Дата и время создания ядра: Чт май 19 13:05:32 UTC 2016

Команда uname — версия ядра

Команда uname выводит информацию о текущем ядре системы Linux, а также некоторые дополнительные данные.

Чтобы вывести всю информацию, используется ключ -a

uname -a Linux p 4.18.0-16-generic #17-Ubuntu SMP Fri Feb 8 00:06:57 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

Для удобства можно выводить только название ядра (-s), версию ядра (-r) и архитектуру (-m)

uname -srm Linux 4.18.0-16-generic x86_64

Скользящие или фиксированные релизы

Все активные дистрибутивы Linux выпускают новые релизы, только все по-разному. Конечно, дистрибутивы обновляются и между релизами, но пользователям привычен такой порядок, что обновления релиза получают только исправления безопасности и ошибок, а все новые возможности выпускаются новым релизом. Но существуют и другие пути. Сейчас есть два способа выпуска релизов:

  • Скользящие релизы (rolling);
  • Фиксированные релизы (fixed).

Эти способы работают немного по-разному и вам нужно понимать это прежде чем мы перейдем к версии Linux. Скользящие релизы не имеют точек выпуска нового релиза, новые возможности, исправления и улучшения постоянно добавляются в официальный репозиторий и их получают пользователи. Такой подход используется в ArchLinux, Gentoo и OpenSUSE Thumbleweed. Поэтому у таких дистрибутивов нет версий, они всегда имеют самую новую версию после того, как было выполнено обновление пакетов. Но у них есть минус — это более низкая стабильность по сравнению с фиксированными релизами, которые можно хорошо протестировать.

Фиксированные релизы используются в Ubuntu. Каждые 6 месяцев выходит новый релиз, поэтому тут есть четкое разделение на версии, новая версия дистрибутива Linux получает новое программное обеспечение, а затем на протяжении всего термина поддержки получает обновления безопасности.

Файл /etc/os-release

В файле /etc/os-release содержится информация о дистрибутиве, включая URL-адреса сайт системы и некоторые дополнительные данные. Данный файл присутствует в дистрибутивах, использующих systemd.

Чтобы вывести содержимое файла /etc/os-release можно воспользоваться командой cat

:
cat /etc/os-release NAME=»Ubuntu» VERSION=»18.10 (Cosmic Cuttlefish)» ID=ubuntu ID_LIKE=debian PRETTY_NAME=»Ubuntu 18.10″ VERSION_ID=»18.10″ HOME_URL=»https://www.ubuntu.com/» SUPPORT_URL=»https://help.ubuntu.com/» BUG_REPORT_URL=»https://bugs.launchpad.net/ubuntu/» PRIVACY_POLICY_URL=»https://www.ubuntu.com/legal/terms-and-policies/privacy-policy» VERSION_CODENAME=cosmic UBUNTU_CODENAME=cosmic

Тоже будет интересно