Руководство по определению версии Linux

Руководство по определению версии Linux

Каждый системный администратор должен уметь быстро и точно определять версию Linux-дистрибутива. Это важно для:

  • Обновления системы
  • Устранения неисправностей
  • Совместимости ПО
  • Документирования инфраструктуры

В этой статье разберём все основные команды, их различия и лучшие практики использования.


1. Стандартные команды для определения дистрибутива

1.1. hostnamectl (рекомендуемый способ)

Почему лучше?

  • Встроен в systemd (есть почти везде)
  • Показывает не только ОС, но и ядро, архитектуру, hostname

Пример:

hostnamectl

Вывод:

  Static hostname: server1  
       Operating System: Ubuntu 22.04.3 LTS  
            Kernel: Linux 5.15.0-78-generic  
      Architecture: x86-64

Фильтрация вывода:

hostnamectl | grep "Operating System" # Только ОС
hostnamectl | grep "Kernel"           # Только ядро

1.2. lsb_release (классический метод для Debian/Ubuntu)

Плюсы:

  • Чётко показывает дистрибутив и кодовое имя
  • Есть почти во всех Debian-based системах

Пример:

lsb_release -a

Вывод:

Distributor ID: Ubuntu  
Description:    Ubuntu 22.04.3 LTS  
Release:        22.04  
Codename:       jammy

Короткие варианты:

lsb_release -d # Только описание  
lsb_release -c   # Кодовое имя (jammy, focal, bullseye)

1.3. Чтение файлов /etc/*-release

Когда использовать?

  • Если hostnamectl и lsb_release недоступны (минимальные дистрибутивы)

Команды:

cat /etc/os-release # Самый информативный
cat /etc/lsb-release # Альтернатива для Ubuntu
cat /etc/redhat-release # Для RHEL/CentOS
cat /etc/issue # Простая версия  
 

Пример (/etc/os-release):

 
NAME="Ubuntu"  
VERSION="22.04.3 LTS (Jammy Jellyfish)"  
ID=ubuntu  
ID_LIKE=debian  
PRETTY_NAME="Ubuntu 22.04.3 LTS"

2. Дополнительные методы

2.1. uname – информация о ядре

uname -a

Вывод:

Linux server1 5.15.0-78-generic #85-Ubuntu SMP x86_64 GNU/Linux  

Опции:

  • uname -r – только версия ядра
  • uname -m – архитектура (x86_64, arm64)

2.2. neofetch (красивый вывод)

Установка:

sudo apt install neofetch # Ubuntu/Debian
sudo dnf install neofetch # RHEL/Fedora  

Запуск:

neofetch

Вывод (графический, с логотипом дистрибутива):

OS: Ubuntu 22.04.5 LTS x86_64
Host: KVM RHEL 7.6.0 PC (i440FX + PIIX, 1996)
Kernel: 5.15.0-136-generic
Uptime: 27 days, 18 hours, 26 mins
Packages: 634 (dpkg)
Shell: bash 5.1.16
Resolution: 1024×768
Terminal: /dev/pts/0
CPU: AMD EPYC 9454P (1) @ 2.749GHz
GPU: 00:02.0 Cirrus Logic GD 5446
Memory: 313MiB / 956MiB
 

3. Сравнение команд

Команда Лучше всего подходит для Показывает ядро? Требует установки?
hostnamectl Любой systemd-дистр. ✅ Да ❌ Нет (встроен)
lsb_release -a Debian/Ubuntu ❌ Нет ❌ Нет (обычно есть)
cat /etc/os-release Минимальные дистры ❌ Нет ❌ Нет
uname -a Проверка ядра ✅ Только ядро ❌ Нет
neofetch Красивый вывод ✅ Да ✅ Да (устанавливается)