뒤로

2025/03/13

3. 오라클 리눅스를 사용하고 차이점을 알아보세요

이전에 우리는 RHEL 호환 배포판이 무엇인지와 오라클 리눅스의 특징에 대해 설명했습니다. 이번에는 실제로 오라클 리눅스를 작동시켜 RHEL 및 CentOS와의 차이점을 설명하겠습니다.

1. 오라클 리눅스를 시도하는 방법

다음 방법으로 오라클 리눅스를 쉽게 시도할 수 있습니다. 이번에는 주로 방법 1을 사용하고, 부분적으로 방법 2를 사용하겠습니다.

  1. VirtualBox 또는 유사한 환경에 오라클 리눅스를 설치
  2. 오라클 클라우드 인프라 Always Free 사용
  3. AWS 또는 Azure에서 오라클 리눅스 이미지 사용

또한, 오라클 리눅스 미디어는 다음 사이트에서 무료로 얻을 수 있습니다:

설치 지침은 “오라클 리눅스 8 설치” 매뉴얼을 참조하세요. 이는 RHEL, CentOS Stream 및 AlmaLinux와 거의 동일합니다. 또한 오라클 클라우드 인프라의 경우 “OCI 문서: 오라클 리눅스”를 추천합니다.

2. 오라클 리눅스의 차이점 발견하기

오라클 리눅스의 실제 작동을 살펴보겠습니다. 이번에는 오라클 리눅스 8 업데이트 6을 사용하겠습니다. 마이너 버전이 다르더라도 거의 동일하므로 이 점에 대해 걱정할 필요는 없습니다. 오라클 리눅스 7도 기본적으로 동일합니다. 이번에는 비교를 위해 다음 리눅스 배포판을 사용하겠습니다:

  • Red Hat Enterprise Linux 8
  • CentOS Stream

CentOS Stream은 순수한 RHEL 호환 배포판이 아닙니다. 따라서 AlmaLinux와 MIRACLE LINUX가 비교에 더 적합하지만, 이번에는 익숙해지기 쉬운 CentOS Stream을 사용하겠습니다.

2.1. 배포판 유형 확인

리눅스 배포판 유형을 확인하세요. 리눅스에는 /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

파일 내용을 보면 오라클 리눅스 8.6임을 알 수 있습니다.

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

그러나 리눅스에서는 소수점 이하의 마이너 버전을 신경 쓸 필요가 없습니다. 이는 리포지토리 설정에 따라 yum update를 실행하면 마이너 버전이 자동으로 올라가기 때문입니다.

흥미로운 점은 /etc/redhat-release의 내용입니다. 오라클 리눅스가 아닌 Red Hat Enterprise 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)입니다.

$ 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

버전이 크게 다른 이유는 기반이 되는 리눅스 커널의 차이 때문입니다. UEK는 상위 스트림 리눅스 커널 5.4를 기반으로 하며, 오라클 리눅스에 특화된 사용자 정의와 RHCK와의 응용 프로그램 호환성을 갖추고 있습니다.

UEK와 RHCK는 응용 프로그램 수준에서 호환되므로 일반적으로 그대로 사용해도 괜찮습니다. 사용하는 소프트웨어, 장치 드라이버 등이 UEK를 지원하지 않을 때 전환을 고려할 수 있습니다.

2.3. RHEL 호환 커널 알아보기

다음 표는 RHEL 호환 배포판과 커널 버전 간의 관계를 보여줍니다. 동일한 메이저 버전이면 “버전 번호”는 변경되지 않습니다. 변경되는 것은 커널 버전 뒤의 릴리스 번호입니다.

배포판 커널 버전
RHEL8 기반 kernel-4.18.0
RHEL7 기반 kernel-3.10.0
RHEL6 기반 kernel-2.6.32

다음 그림은 커널 패키지 명명 규칙을 보여줍니다. 동일한 메이저 버전이면 “버전 번호”는 그대로 유지되고, “릴리스 번호”가 증가합니다. 오라클 리눅스의 RHEL 호환 커널은 RHEL과 동일한 커널이 릴리스 번호까지 출시됩니다.

참고로 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과 달리 오라클 리눅스에서는 지원 계약 없이도 업데이트 패키지를 얻을 수 있습니다(RH는 구독 계약임). 그러나 지원 계약을 체결하면 Ksplice와 같은 지원 계약 사용자용 패키지도 사용할 수 있습니다.

기본적으로 다음 리포지토리가 활성화되어 있습니다. 또한 오라클 리눅스 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 OS의 핵심 패키지
ol8_appstream 응용 프로그램, 개발 언어 등
ol8_UEKR6 UEK R6

오라클 클라우드 인프라용 오라클 리눅스 8은 다음과 같이 구성됩니다. 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)

다른 배포판과도 확인해 보겠습니다. 기본적으로 활성화된 리포지토리 수는 다르지만, 일반적인 baseosappstream은 동일합니다.

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

오라클 리눅스와 다른 배포판 간의 리포지토리 ID 차이

오라클 리눅스 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은 RHEL 기반 배포판에서 일반적으로 사용되는 “EPEL” 리포지토리입니다. 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 리포지토리에 대해 자세히 알아보려면 https://yum.oracle.com/에서 확인하세요.

업데이트 패키지를 다운로드할 수 있을 뿐만 아니라 다양한 정보가 포함되어 있으므로 살펴보는 것을 추천합니다.

2.5. 오라클 리눅스 전용 패키지 확인

일부 패키지는 오라클 리눅스에서만 제공되지만 기본 설치는 기본적으로 동일합니다. 참고로 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. 기본 커널을 확인하세요. 인덱스 번호 “0”인 /boot/vmlinuz-5.4.17-2136.307.3.1.el8uek.x86_64임을 알 수 있습니다.

# 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. 다음으로 /etc/sysconfig/kernel을 사용하여 기본 커널을 RH 호환 커널로 변경합니다. 이를 수정하지 않으면 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 호환 배포판과 기본 부분이 동일하더라도 오라클 리눅스는 기업을 위한 다양한 주변 도구를 제공합니다. 또한 재부팅 없이 패치를 적용할 수 있는 Ksplice와 같은 독특한 기능을 갖추고 있습니다. 이제 CentOS가 CentOS Stream으로 변경되었으므로 오라클 리눅스는 가장 신뢰할 수 있는 RHEL 호환 배포판 중 하나입니다. 한 번 시도해 보시지 않겠습니까?