Какие команды показывают версию Ubuntu и Debian, чем она отличается от версии ядра и до какого года система получает обновления.
Подключились по SSH и первым делом хочется понять, какая тут вообще система. Версия нужна почти для всего: найти подходящую инструкцию, выбрать пакет под дистрибутив, понять, не пора ли уходить с системы, для которой уже не выпускают исправления безопасности. Ниже команды, которые работают на Ubuntu и Debian, что именно они показывают и где подвох. Один из них в том, что файл /etc/debian_version на Ubuntu показывает совсем не то, что вы ожидаете.
Коротко. Универсальный способ -
cat /etc/os-release: он есть и на Ubuntu, и на Debian, и в нём есть и версия, и кодовое имя.lsb_release -aпоказывает то же самое в удобном виде, но в минимальных образах его может не быть. Версия ядра (uname -r) - это не версия системы, не путайте. На Debian версия лежит в/etc/debian_version, а на Ubuntu этот файл показывает базу вродеtrixie/sid, и по нему версию Ubuntu не определить. Срок обновлений безопасности у Ubuntu 24.04 - до 2029 года, у 22.04 - до середины 2027, у Debian 12 - LTS до середины 2028. Проверить это прямо на сервере можно командойubuntu-security-status.
Самый надёжный способ: файл /etc/os-release
В /etc/os-release любой современный дистрибутив на systemd записывает о себе всё главное. Файл читают и люди, и скрипты установки, поэтому формат у него стандартный. Выведем его на экран:
cat /etc/os-releaseНа сервере с Ubuntu 24.04 ответ такой (часть служебных ссылок убрана):
Как это читать. VERSION_ID - номер версии, то, что вы ищете. VERSION_CODENAME - кодовое имя (noble у Ubuntu 24.04), оно нужно, когда в инструкции репозитории подписаны именами, а не номерами. ID - сам дистрибутив, а ID_LIKE=debian говорит, что Ubuntu построена на Debian и команды из мира Debian обычно подходят.
На Debian тот же файл выглядит похоже (пример для Debian 12, на живом сервере не запускали):
lsb_release и hostnamectl: то же самое, но удобнее глазу
lsb_release -a раскладывает версию по строчкам. Команда есть не везде: в совсем минимальных образах пакета lsb-release может не быть, тогда выручает os-release.
lsb_release -ahostnamectl полезна тем, что показывает сразу и систему, и ядро, и архитектуру, и тип виртуализации. Это удобно, когда нужно скопировать в тикет или в вопрос на форуме всё одним куском:
hostnamectlDebian: файл /etc/debian_version и подвох на Ubuntu
На Debian точная версия лежит в /etc/debian_version, и вместе с номером выпуска там указан промежуточный релиз вроде 12.5. Иногда это единственный файл, который под рукой в урезанном контейнере:
cat /etc/debian_versionА вот на Ubuntu этот файл показывает не версию Ubuntu, а то, от какой ветки Debian она произошла. На нашем сервере с Ubuntu 24.04 ответ такой:
trixie/sidЕсли принять это за версию системы, можно подобрать не те пакеты и не те инструкции. Правило простое: Ubuntu смотрим по /etc/os-release или lsb_release, Debian - по любому из трёх способов.
Версия ядра - это не версия системы
Ещё одна частая путаница. Ядро - это сердце системы, но у него своя нумерация, и обновляется оно отдельно:
uname -r6.8.0-35-genericЗдесь 6.8.0 - версия ядра Linux, 35 - сборка от Ubuntu, generic - вариант ядра. Версия системы при этом 24.04. Новое ядро может прийти обычным обновлением, а сама система останется той же. Когда в статье или в логах пишут «обновитесь до ядра 6.x», речь не про смену Ubuntu.
До какого срока версия получает обновления безопасности
Узнали версию - теперь главный вопрос: живая она или уже нет. Для серверов в интернете это не формальность: на системе без исправлений безопасности известные дыры остаются открытыми навсегда.
У Ubuntu LTS (это версии «с долгой поддержкой» - четные годы, апрель, например 22.04 и 24.04) бесплатные обновления безопасности идут пять лет. Дальше можно продлить их платной или персональной подпиской Ubuntu Pro (ESM), но по умолчанию сервер уже не защищён.
Версия Ubuntu | Вышла | Бесплатные обновления безопасности до | С подпиской Ubuntu Pro (ESM) до |
|---|---|---|---|
18.04 | апрель 2018 | май 2023 | апрель 2028 |
20.04 | апрель 2020 | май 2025 | апрель 2030 |
22.04 | апрель 2022 | июнь 2027 | апрель 2032 |
24.04 | апрель 2024 | май 2029 | апрель 2034 |
26.04 | апрель 2026 | май 2031 | апрель 2036 |
У Debian две ступени: сначала обычная поддержка командой безопасности Debian, потом дополнительный период LTS силами сообщества.
Версия Debian | Вышла | Обычная поддержка до | LTS до |
|---|---|---|---|
10 (buster) | июль 2019 | сентябрь 2022 | июнь 2024 |
11 (bullseye) | август 2021 | август 2024 | август 2026 |
12 (bookworm) | июнь 2023 | июль 2026 | июнь 2028 |
13 (trixie) | август 2025 | август 2028 | июнь 2030 |
Данные на 5 октября 2026 года, месяцы приблизительные, точные даты смотрите на официальных страницах Ubuntu и Debian. По таблице видно неприятное: Debian 11 уже вышел из поддержки, а у Ubuntu 20.04 бесплатная защита закончилась в мае 2025.
Свой сервер можно спросить напрямую. На Ubuntu есть команда, которая показывает, получает ли он обновления безопасности и до какого года:
ubuntu-security-statusНас интересуют две последние строки. Первая говорит, что основной репозиторий защищается до 2029 года. Вторая - что платная подписка к машине не подключена, то есть пакеты из Universe (их часто ставят из-за популярных программ) закрываются только на время бесплатного периода.
Как узнать, что вышла новая версия, и что с этим делать
Проверить, есть ли куда обновляться, можно без запуска самого обновления:
do-release-upgrade -cКлюч -c только проверяет. Он ничего не ставит и ничего не меняет. Видите это сообщение на своём сервере - значит, новая LTS-версия уже есть. Но спешить с обновлением рабочей машины не стоит: смена версии Ubuntu - это перенастройка конфигов, возможная ломка сторонних репозиториев и перезагрузка. Практичнее так: сделать копию данных, прогнать обновление на тестовом сервере и только потом браться за боевой. Если сервер новый или почти пустой, проще вообще не обновлять систему, а создать новый сервер с актуальной версией и перенести на него данные.
Частые вопросы
Чем версия системы отличается от версии ядра?
Версия системы - это выпуск дистрибутива, например Ubuntu 24.04. Версия ядра - номер самого ядра Linux внутри, например 6.8.0. Ядро обновляется отдельно, и в рамках одной версии системы оно может меняться несколько раз.
Как узнать версию Debian, если нет lsb_release?
Выведите /etc/os-release или /etc/debian_version. Оба файла лежат в системе всегда, им не нужны дополнительные пакеты.
Что значит LTS?
Long Term Support - версия с долгой поддержкой. У Ubuntu LTS выходит раз в два года в апреле, и получает бесплатные обновления безопасности пять лет. Для сервера выбирают именно такие версии.
Что делать, если версия уже не получает обновления?
Планировать переезд на актуальную LTS. До этого - не открывать наружу лишние порты, держать фаервол и не ставить на такой сервер ничего важного. Самый чистый путь - создать новый сервер с современной системой и перенести данные.
Итог
- Версию системы показывает
cat /etc/os-releaseна Ubuntu и на Debian. lsb_release -aиhostnamectl- то же самое, но удобнее читать и копировать.- На Ubuntu
/etc/debian_versionпоказывает базу вродеtrixie/sid, а не версию Ubuntu. - Версия ядра (
uname -r) и версия системы - разные вещи. - Срок поддержки смотрим в таблицах или командой
ubuntu-security-status. Если версия вышла из поддержки, пора планировать переезд. - Новую версию проверяет
do-release-upgrade -c, но обновлять боевой сервер сразу не стоит.
