กลับ
2025/03/31
3. ใช้ Oracle Linux และค้นพบความแตกต่าง
ก่อนหน้านี้ เราได้อธิบายว่า RHEL-compatible distribution คืออะไร และคุณสมบัติของ Oracle Linux ครั้งนี้ เราจะใช้งาน Oracle Linux จริงเพื่ออธิบายความแตกต่างกับ RHEL และ CentOS
1. วิธีลองใช้ Oracle Linux
คุณสามารถลองใช้ Oracle Linux ได้อย่างง่ายดายด้วยวิธีต่อไปนี้ ครั้งนี้ เราจะเน้นใช้วิธีที่ 1 และใช้วิธีที่ 2 บางส่วน
- ติดตั้ง Oracle Linux บน VirtualBox หรือโปรแกรมที่คล้ายกัน
- ใช้ Oracle Cloud Infrastructure Always Free
- ใช้ภาพ 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 อัปเดต 6 แม้ว่าเวอร์ชันย่อยจะแตกต่างกัน แต่ก็เกือบจะเหมือนกัน ดังนั้นไม่ต้องกังวลในจุดนี้ Oracle Linux 7 ก็พื้นฐานเหมือนกัน ครั้งนี้เราจะใช้การกระจายลินุกซ์ต่อไปนี้เพื่อเปรียบเทียบ:
- Red Hat Enterprise Linux 8
- CentOS Stream
CentOS Stream ไม่ใช่ RHEL-compatible distribution แบบบริสุทธิ์ ดังนั้น 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
หากคุณดูเนื้อหาของไฟล์ คุณจะเห็นว่าเป็น Oracle Linux 8.6
$ cat /etc/oracle-release
Oracle Linux Server release 8.6
อย่างไรก็ตาม คุณไม่จำเป็นต้องกังวลเกี่ยวกับเวอร์ชันย่อยหลังจุดทศนิยมในลินุกซ์ เพราะขึ้นอยู่กับการตั้งค่าที่เก็บข้อมูล การรัน yum update จะทำให้เวอร์ชันย่อยเพิ่มขึ้นเอง
ที่น่าสนใจคือเนื้อหาของ /etc/redhat-release เป็น Red Hat Enterprise Linux release ไม่ใช่ 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
เหตุผลที่เวอร์ชันแตกต่างกันมากคือความแตกต่างในเคอร์เนลลินุกซ์ที่พวกเขาอ้างอิง UEK อิงจากเคอร์เนลลินุกซ์ upstream 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 ดูเหมือนจะใช้แพตช์ความเข้ากันได้บางส่วน เช่น คีย์ โดยไม่มีการเปลี่ยนแปลง หากคุณสนใจ โปรดดู Source Package (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-based distributions เพียงแค่รัน 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 หากคุณไม่แก้ไขนี้ คุณจะกลับไปที่ UEK เมื่ออัปเดต yum
เนื้อหาของ /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-compatible distributions ที่น่าเชื่อถือที่สุด ทำไมไม่ลองใช้ดู?