Назад

2025/04/21

3. Используйте Oracle Linux и откройте для себя различия

Ранее мы объяснили, что такое дистрибутив, совместимый с RHEL, и особенности Oracle Linux. На этот раз мы будем работать с Oracle Linux, чтобы объяснить различия с RHEL и CentOS.

1. Как попробовать Oracle Linux

Вы можете легко попробовать Oracle Linux следующими способами. На этот раз мы будем в основном использовать метод 1, а частично — метод 2.

  1. Установить Oracle Linux на VirtualBox или аналогичное ПО.
  2. Использовать Oracle Cloud Infrastructure Always Free
  3. Использовать образ Oracle Linux в AWS или Azure

Кроме того, носители Oracle Linux можно получить бесплатно на следующих сайтах:

Инструкции по установке см. в руководстве «Установка Oracle Linux 8 Oracle Linux». Процесс почти идентичен установке RHEL, CentOS Stream и AlmaLinux. Кроме того, мы рекомендуем «Документацию OCI: Oracle Linux» для Oracle Cloud Infrastructure.

2. Откройте для себя различия Oracle Linux

Давайте посмотрим на Oracle Linux в действии. На этот раз мы будем использовать Oracle Linux 8 Update 6. Даже если минорная версия отличается, она почти одинакова, так что об этом не стоит беспокоиться. Oracle Linux 7 также в основном совпадает. На этот раз мы будем использовать следующие дистрибутивы Linux для сравнения:

  • Red Hat Enterprise Linux 8
  • CentOS Stream

CentOS Stream не является чисто совместимым с RHEL дистрибутивом. Поэтому для сравнения больше подходят AlmaLinux и MIRACLE LINUX, но на этот раз мы будем использовать CentOS Stream, к которому легче привыкнуть.

2.1. Проверка типа дистрибутива

Проверьте тип дистрибутива Linux. В Linux есть файл под названием /etc/*-release, который позволяет определить дистрибутив. При проверке обнаруживается четыре файла с названием /etc/*-release.

$ ls -l /etc/*release
-rw-r--r--. 1 root root  32 May 13 10:14 /etc/oracle-release
-rw-r--r--. 1 root root 479 May 13 10:14 /etc/os-release
-rw-r--r--. 1 root root  45 May 13 10:14 /etc/redhat-release
lrwxrwxrwx. 1 root root  14 May 13 10:14 /etc/system-release -> oracle-release

При просмотре содержимого файла видно, что это Oracle Linux 8.6.

$ cat /etc/oracle-release
Oracle Linux Server release 8.6

Однако в Linux не нужно беспокоиться о минорной версии после десятичной точки. Это связано с тем, что в зависимости от настроек репозитория выполнение yum update автоматически повысит минорную версию.

Интересно содержание файла /etc/redhat-release. Это выпуск Red Hat Enterprise Linux, а не Oracle Linux.

$ cat /etc/redhat-release
Red Hat Enterprise Linux release 8.6 (Ootpa)

А как насчет CentOS Stream? /etc/redhat-release является символической ссылкой на /etc/centos-release. Конечно, содержание одинаковое.

$ ls -l /etc/*release
-rw-r--r--. 1 root root 24 Sep 14  2021 /etc/centos-release
lrwxrwxrwx. 1 root root 21 Sep 14  2021 /etc/os-release -> ../usr/lib/os-release
lrwxrwxrwx. 1 root root 14 Sep 14  2021 /etc/redhat-release -> centos-release
lrwxrwxrwx. 1 root root 14 Sep 14  2021 /etc/system-release -> centos-release

$ cat /etc/centos-release
CentOS Stream release 8

$ cat /etc/redhat-release ★Содержание одинаковое
CentOS Stream release 8

Похоже, что эта спецификация является мерой для программ, проверяющих тип дистрибутива. Коммерческое ПО и драйверы, предоставляемые производителями оборудования, часто используют /etc/*-release для определения типа и версии дистрибутива. Вероятно, это сделано для того, чтобы обойти проверку, сохраняя оригинальный /etc/redhat-release.

2.2. Проверка ядра

Проверьте ядро. Поскольку в конце указано el8uek, это не совместимое с RHEL ядро, а уникальное Unbreakable Enterprise Kernel (UEK) от Oracle Linux.

$ uname -r
5.4.17-2136.307.3.1.el8uek.x86_64

Если посмотреть на установленное ядро, видно, что помимо UEK установлено также совместимое с RHEL ядро (RHCK: Red Hat Compatible Kernel).

$ rpm -qa | grep kernel
kernel-uek-5.4.17-2136.307.3.1.el8uek.x86_64 ★UEK
kernel-modules-4.18.0-372.9.1.el8.x86_64
kernel-tools-libs-4.18.0-372.9.1.el8.x86_64
kernel-4.18.0-372.9.1.el8.x86_64             ★Совместимое с RHEL ядро
kernel-tools-4.18.0-372.9.1.el8.x86_64
kernel-core-4.18.0-372.9.1.el8.x86_64
kernel-headers-4.18.0-372.9.1.el8.x86_64

Сравнивая UEK и RHCK, вы заметите, что номера версий сильно отличаются.

  • UEK: kernel-uek-5.4
  • RHCK: kernel-4.18

Причина значительного различия в версиях заключается в различии базового ядра Linux. UEK основан на более новом ядре Linux 5.4 с настройками, специфичными для Oracle Linux, и совместимостью приложений с RHCK.

UEK и RHCK совместимы на уровне приложений, поэтому обычно они работают без проблем. Вы можете рассмотреть возможность переключения, если используемое ПО, драйверы устройств и т.д. не поддерживают UEK.

2.3. Изучение совместимого с RHEL ядра

В следующей таблице показано соотношение между дистрибутивами, совместимыми с RHEL, и версией ядра. «Номер версии» не меняется, если это одна и та же основная версия. Меняется номер выпуска, следующий за версией ядра.

Дистрибутив Версия ядра
На базе RHEL8 kernel-4.18.0
На базе RHEL7 kernel-3.10.0
На базе RHEL6 kernel-2.6.32

На следующем рисунке показана конвенция именования пакетов ядра. Если это одна и та же основная версия, «номер версии» остается неизменным, а «номер выпуска» увеличивается. Для совместимого с RHEL ядра в Oracle Linux выпускается то же ядро, что и в RHEL, вплоть до номера выпуска.

Давайте посмотрим на журнал изменений (changelog) совместимого с RHEL ядра для справки. Версия 4.18.0-372.9.1.el8, похоже, применяет несколько патчей совместимости, таких как ключи, без изменений. Если интересно, ознакомьтесь с исходным пакетом (SRPM).

# rpm -q --changelog kernel-4.18.0-372.9.1.el8.x86_64|head
* Wed May 11 2022 Natalya Naumova  [4.18.0-372.9.1.el8.OL8]
- Update Oracle Linux certificates (Kevin Lyons)
- Disable signing for aarch64 (Ilya Okomin)
- Oracle Linux RHCK Module Signing Key was added to the kernel trusted keys list (olkmod_signing_key.pem) [Orabug: 29539237]
- Update x509.genkey [Orabug: 24817676]
- Conflict with shim-ia32 and shim-x64 <= 15-11.0.5.el8

* Fri Apr 15 2022 Augusto Caringi  [4.18.0-372.9.1.el8]
- scsi: qedi: Fix failed disconnect handling (Chris Leech) [2071519]
- scsi: iscsi: Fix unbound endpoint error handling (Chris Leech) [2071519]

2.4. Проверка репозитория Yum

Проверьте репозиторий Yum. В отличие от RHEL, в Oracle Linux вы можете получать пакеты обновлений без контракта поддержки (в RH это подписной контракт). Однако, если вы заключите контракт поддержки, вы также сможете использовать пакеты для пользователей с контрактом поддержки, такие как Ksplice.

По умолчанию включены следующие репозитории. Кроме того, начиная с Oracle Linux 8, вместо yum используется dnf, но, поскольку они совместимы, мы намеренно используем yum.

$ yum repolist
repo id           repo name
ol8_UEKR6         Latest Unbreakable Enterprise Kernel Release 6 for Oracle Linux 8 (x86_64)
ol8_appstream     Oracle Linux 8 Application Stream (x86_64)
ol8_baseos_latest Oracle Linux 8 BaseOS Latest (x86_64)

Содержание каждого репозитория следующее:

Репозиторий Описание
ol8_baseos_latest Основные пакеты для ОС
ol8_appstream Приложения, языки разработки и т.д.
ol8_UEKR6 UEK R6

Oracle Linux 8 для Oracle Cloud Infrastructure настроен следующим образом. Включены специфичные для OCI и Ksplice репозитории.


ol8_UEKR6         Latest Unbreakable Enterprise Kernel Release 6 for Oracle Linux 8 (x86_64)
ol8_addons        Oracle Linux 8 Addons (x86_64)
ol8_appstream     Oracle Linux 8 Application Stream (x86_64)
ol8_baseos_latest Oracle Linux 8 BaseOS Latest (x86_64)
ol8_ksplice       Ksplice for Oracle Linux 8 (x86_64)
ol8_oci           Oracle Linux 8 OCI Packages (x86_64)
ol8_oci_included  Oracle Software for OCI users on Oracle Linux 8 (x86_64)

Давайте проверим и другие дистрибутивы. Количество включенных по умолчанию репозиториев различается, но стандартные baseos и appstream одинаковы.

RHEL8

repo id                          repo name
rhel-8-for-x86_64-appstream-rpms Red Hat Enterprise Linux 8 for x86_64 - AppStream (RPMs)
rhel-8-for-x86_64-baseos-rpms    Red Hat Enterprise Linux 8 for x86_64 - BaseOS (RPMs)

CentOS Stream

repo id             repo name
appstream           CentOS Stream 8 - AppStream
baseos              CentOS Stream 8 - BaseOS
epel                Extra Packages for Enterprise Linux 8 - x86_64
epel-modular        Extra Packages for Enterprise Linux Modular 8 - x86_64
extras              CentOS Stream 8 - Extras
extras-common       CentOS Stream 8 - Extras common packages

Различия в идентификаторах репозиториев между Oracle Linux и другими дистрибутивами

Oracle Linux RHEL CentOS Stream
ol8_baseos_latest rhel-8-for-x86_64-baseos-rpms baseos
ol8_appstream rhel-8-for-x86_64-appstream-rpms appstream

Ниже отображаются репозитории, включая отключенные:

$ yum repolist all
repo id                    repo name                                    status
ol8_UEKR6                  Latest Unbreakable Enterprise Kernel Release enabled
ol8_UEKR6_RDMA             Oracle Linux 8 UEK6 RDMA (x86_64)            disabled
ol8_addons                 Oracle Linux 8 Addons (x86_64)               disabled
ol8_appstream              Oracle Linux 8 Application Stream (x86_64)   enabled
ol8_baseos_latest          Oracle Linux 8 BaseOS Latest (x86_64)        enabled
ol8_codeready_builder      Oracle Linux 8 CodeReady Builder (x86_64) -  disabled
ol8_distro_builder         Oracle Linux 8 Distro Builder (x86_64) - Uns disabled
ol8_kvm_appstream          Oracle Linux 8 KVM Application Stream (x86_6 disabled
ol8_u0_baseos_base         Oracle Linux 8 BaseOS GA (x86_64)            disabled
ol8_u1_baseos_base         Oracle Linux 8.1 BaseOS (x86_64)             disabled
ol8_u2_baseos_base         Oracle Linux 8.2 BaseOS (x86_64)             disabled
ol8_u3_baseos_base         Oracle Linux 8.3 BaseOS (x86_64)             disabled
ol8_u4_baseos_base         Oracle Linux 8.4 BaseOS (x86_64)             disabled
ol8_u4_security_validation Oracle Linux 8 Update 4 (x86_64) Security Va disabled
ol8_u5_baseos_base         Oracle Linux 8.5 BaseOS (x86_64)             disabled
ol8_u6_baseos_base         Oracle Linux 8.6 BaseOS (x86_64)             disabled

Кроме того, некоторые репозитории не установлены по умолчанию. Команда yum list available отображает список пакетов, содержащих определения репозиториев. Например, oracle-epel-release-el8 — это репозиторий «EPEL», широко используемый в дистрибутивах на базе RHEL. Просто выполните yum install oracle-epel-release-el8, чтобы сделать пакет EPEL доступным.

$ yum list available *release-el8.x86_64
Available Packages
mysql-release-el8.x86_64                         1.0-3.el8     ol8_baseos_latest
oracle-epel-release-el8.x86_64                   1.0-5.el8     ol8_baseos_latest
oracle-gluster-release-el8.x86_64                1.0-2.el8     ol8_baseos_latest
oracle-instantclient-release-el8.x86_64          1.0-1.el8     ol8_baseos_latest
oracle-linux-manager-client-release-el8.x86_64   1.0-1.el8     ol8_baseos_latest
oracle-olcne-release-el8.x86_64                  1.0-6.el8     ol8_baseos_latest
oracle-ovirt-release-el8.x86_64                  1.0-1.0.3.el8 ol8_baseos_latest
oracle-release-el8.x86_64                        1.0-1.el8     ol8_baseos_latest
oracle-software-release-el8.x86_64               1.0-1.el8     ol8_baseos_latest
oracle-spacewalk-client-release-el8.x86_64       1.0-1.el8     ol8_baseos_latest
oraclelinux-automation-manager-release-el8.x86_64
                                                 1.0-1.el8     ol8_baseos_latest
oraclelinux-developer-release-el8.x86_64         1.0-7.el8     ol8_baseos_latest
oraclelinux-release-el8.x86_64                   1.0-24.el8    ol8_baseos_latest

Узнайте больше о репозитории Yum в Oracle Linux на https://yum.oracle.com/.

Помимо возможности загрузки пакетов обновлений, мы рекомендуем ознакомиться с сайтом, так как он содержит множество полезной информации.

2.5. Проверка специфичных для Oracle Linux пакетов

Некоторые пакеты предоставляются только Oracle Linux, но установка по умолчанию в основном одинакова. Для справки, вот пакеты с именем oracle. Мы опустим детали, но это части, которые должны быть изменены, такие как логотипы, лицензии, репозитории, ключи GPG и т.д.

# rpm -qa | grep oracle
oraclelinux-release-8.6-1.0.5.el8.x86_64
oraclelinux-release-el8-1.0-23.el8.x86_64
oracle-logos-84.5-1.0.1.el8.x86_64

3. Смена ядра на RHCK

Для справки, вот как изменить ядро по умолчанию UEK на RHCK. Используйте grubby для изменений.

1. Проверьте ядро по умолчанию. Видно, что это /boot/vmlinuz-5.4.17-2136.307.3.1.el8uek.x86_64 с индексом «0».

# grubby --default-index
0

# grubby --default-kernel
/boot/vmlinuz-5.4.17-2136.307.3.1.el8uek.x86_64

2. Далее отображается список установленных ядер. index = 1 — это RHCK.

# grubby --info=ALL | grep -A 1 ^index
index=0
kernel="/boot/vmlinuz-5.4.17-2136.307.3.1.el8uek.x86_64"
--
index=1
kernel="/boot/vmlinuz-4.18.0-372.9.1.el8.x86_64"
--
index=2
kernel="/boot/vmlinuz-0-rescue-5b64998859b34f7884afea6dd27a9390"

3. Изменения можно внести, указав путь к ядру или индексный номер. Можно использовать любой вариант, но лучше указать путь к ядру, чтобы избежать ошибок.

★Указать путь к ядру
# grubby --set-default=/boot/vmlinuz-4.18.0-372.9.1.el8.x86_64
★Указать индексный номер
# grubby --set-default-index=1 

4. Убедитесь, что ядро по умолчанию изменено на RHCK.

# grubby --default-kernel
/boot/vmlinuz-4.18.0-372.9.1.el8.x86_64

5. Далее измените ядро по умолчанию на совместимое с RH, используя /etc/sysconfig/kernel. Если этого не сделать, при обновлении yum вы вернетесь к UEK.

Содержимое /etc/sysconfig/kernel

# UPDATEDEFAULT specifies if kernel-install should make
# new kernels the default
UPDATEDEFAULT=yes

# DEFAULTKERNEL specifies the default kernel package type
DEFAULTKERNEL=kernel
#DEFAULTKERNEL=kernel-uek ★Закомментировать и добавить строку выше

Вы можете изменить это вручную, но также можно использовать следующую команду.

# sed -i -e 's/DEFAULTKERNEL=kernel-uek/DEFAULTKERNEL=kernel/' /etc/sysconfig/kernel

6. Перезагрузите систему, чтобы активировать измененное ядро.

# shutdown -r

7. После перезагрузки и входа в систему ядро изменено на совместимое с RH. На этом процедура завершена.

# uname -r
4.18.0-372.9.1.el8.x86_64

4. Заключение

В этой статье мы сосредоточились на различиях между CentOS и RHEL. На самом деле, при обычном использовании они почти одинаковы. Если вам скажут, что установленная среда — это CentOS, вы можете этого не заметить.

Однако, несмотря на то, что основные части совпадают с дистрибутивами, совместимыми с RHEL, Oracle Linux имеет множество периферийных инструментов для предприятий. У него также есть уникальные функции, такие как Ksplice, которые позволяют применять патчи без перезагрузки. Теперь, когда CentOS перешел на CentOS Stream, Oracle Linux является одним из самых надежных дистрибутивов, совместимых с RHEL. Почему бы не попробовать его?