Содержание статьи
Иногда случается работать с системой, про которую вы ничего не знаете. Выяснить дистрибутив, его версию, а также версию ядра на запущенной 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