Как проверить версию CentOS: полное руководство (все методы)
Знание точной версии CentOS, работающей на вашем сервере, является фундаментальным навыком для любого системного администратора. Устанавливаете ли вы совместимые пакеты программного обеспечения, устраняете проблемы системы, планируете миграцию ОС или управляете обновлениями безопасности, наличие точной информации о версии имеет решающее значение. К счастью, CentOS предоставляет несколько надежных команд для получения этих данных — и это руководство охватывает каждую из них подробно.
Почему проверка версии CentOS имеет значение
Перед тем как перейти к командам, стоит понять, *почему* осведомленность о версии так важна в производственных средах:
- Совместимость программного обеспечения: Многие пакеты и зависимости привязаны к конкретным основным или дополнительным версиям CentOS.
- Патчинг безопасности: Знание вашей версии помогает определить, какие CVE применяются к вашей системе и какие патчи доступны.
- Планирование конца жизни: CentOS 8 достиг конца жизни 31 декабря 2021 года. Если вы все еще его используете, вам нужно это знать — и спланировать миграцию.
- Поддержка и устранение неполадок: При открытии билета поддержки или консультации документации информация о версии всегда является одной из первых запрашиваемых.
Если вы используете среду VPS Hosting или Dedicated Server, отслеживание версии вашей ОС является неотъемлемой частью ответственного управления сервером.
Метод 1: использование команды cat для чтения /etc/centos-release
Это самый быстрый и простой метод. CentOS хранит информацию о версии в специальном файле выпуска, расположенном в /etc/centos-release.
Команда:
cat /etc/centos-releaseПример вывода:
CentOS Linux release 8.5.2111 (Core)Эта одна строка дает вам полную строку версии, включая основную версию (8), дополнительную версию (5) и тег сборки (2111). Это команда по умолчанию для быстрой проверки версии, удобной для чтения, и работает практически на каждой установке CentOS без каких-либо дополнительных пакетов.
Метод 2: использование hostnamectl для сведений о системе и ОС
Команда hostnamectl — это утилита systemd, которая предоставляет более широкий обзор вашей системы, включая имя операционной системы, версию и ядро. Это особенно полезно на CentOS 7 и CentOS 8, которые оба основаны на systemd.
Команда:
hostnamectlПример вывода:
Static hostname: myserver.example.com
Icon name: computer-vm
Chassis: vm
Machine ID: a1b2c3d4e5f6...
Boot ID: f6e5d4c3b2a1...
Virtualization: kvm
Operating System: CentOS Linux 8 (Core)
CPE OS Name: cpe:/o:centos:centos:8
Kernel: Linux 4.18.0-305.el8.x86_64
Architecture: x86-64Обратите внимание на строки Operating System и Kernel. Этот метод особенно ценен, когда вам нужна как версия ОС, так и версия ядра в одной команде, что делает его идеальным для быстрых аудитов системы.
Метод 3: запрос базы данных пакетов RPM
Поскольку CentOS — это дистрибутив на основе RPM, информация о версии также встроена в установленный пакет RPM под названием centos-release. Вы можете запросить его напрямую, используя команду rpm.
Команда:
rpm -q centos-releaseПример вывода:
centos-release-8.5-4.2111.el8.x86_64Этот вывод особенно точен — он раскрывает точную версию пакета выпуска, включая архитектуру (x86_64). Этот метод полезен в сценариях скриптов, где вам нужна строка, пригодная для машинной обработки, или вы хотите проверить целостность самого пакета выпуска.
Метод 4: чтение /etc/os-release для подробной информации о дистрибутиве
Файл /etc/os-release — это стандартизированный файл, присутствующий практически на всех современных дистрибутивах Linux. Он предоставляет структурированную информацию ОС в формате ключ-значение и обычно используется скриптами, инструментами управления конфигурацией (такими как Ansible или Puppet) и средами выполнения контейнеров.
Команда:
cat /etc/os-releaseПример вывода:
NAME="CentOS Linux"
VERSION="8 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="8"
PLATFORM_ID="platform:el8"
PRETTY_NAME="CentOS Linux 8 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:8"
HOME_URL="https://centos.org/"
BUG_REPORT_URL="https://bugzilla.redhat.com/"Это наиболее информативный метод и предпочтительный подход для автоматизации. Поле VERSION_ID, например, можно легко извлечь в скриптах оболочки, используя инструменты, такие как grep или awk:
grep VERSION_ID /etc/os-releaseВывод:
VERSION_ID="8"Метод 5: использование lsb_release (Linux Standard Base)
Команда lsb_release является частью спецификации Linux Standard Base и предоставляет данные идентификации дистрибутива. На CentOS она может быть не установлена по умолчанию, но ее можно легко добавить.
Проверьте, доступна ли она:
lsb_release -aЕсли не установлена, добавьте ее с помощью:
sudo yum install -y redhat-lsb-coreПример вывода после установки:
LSB Version: :core-4.1-amd64:core-4.1-noarch
Distributor ID: CentOS
Description: CentOS Linux release 8.5.2111 (Core)
Release: 8.5.2111
Codename: CoreХотя этот метод требует дополнительного пакета, структурированный вывод (особенно поле Release) полезен для скриптов, которые должны оставаться совместимыми с несколькими дистрибутивами Linux.
Метод 6: проверка версии ядра с помощью uname
Команда uname сообщает информацию о ядре. Хотя она не сообщает напрямую версию CentOS, строка версии ядра тесно связана с конкретными выпусками CentOS и может использоваться для перекрестной ссылки версии ОС, когда файлы выпуска недоступны или повреждены.
Команда:
uname -rПример вывода:
4.18.0-305.el8.x86_64Тег el8 в строке ядра подтверждает, что это система CentOS/RHEL 8. Для более полного обзора системы используйте:
uname -aЭто особенно полезно в минимальных образах контейнеров или окружениях chroot, где /etc/centos-release может быть недоступен.
Краткая справка: все команды с одного взгляда
Вот сводка всех методов, рассмотренных в этом руководстве:
| Команда | Что она показывает | Требует дополнительный пакет? |
|---|---|---|
cat /etc/centos-release | Полная строка версии | Нет |
hostnamectl | Имя ОС, версия, ядро | Нет (требуется systemd) |
rpm -q centos-release | Точный пакет выпуска RPM | Нет |
cat /etc/os-release | Структурированные метаданные ОС | Нет |
lsb_release -a | Информация о дистрибутиве LSB | Да (redhat-lsb-core) |
uname -r | Версия ядра | Нет |
Бонус: программное извлечение версии
Если вы пишете скрипт оболочки или используете инструмент управления конфигурацией, вы можете захотеть чистое извлечение только номера версии. Вот два практических однострочника:
Извлечение только основной версии:
rpm -q --queryformat '%{VERSION}' centos-releaseИспользование awk в файле выпуска:
awk '{print $4}' /etc/centos-releaseЭти подходы особенно полезны в автоматизированных скриптах подготовки на панелях управления VPS или при развертывании приложений на нескольких серверах.
Рассмотрения конца жизни версии CentOS
Важно отметить текущий статус поддержки версий CentOS:
- CentOS 6: Конец жизни — 30 ноября 2020 г.
- CentOS 7: Конец жизни — 30 июня 2024 г.
- CentOS 8
