Quay lại

2025/03/27

3. Sử dụng Oracle Linux và Khám phá Sự Khác Biệt

Trước đây, chúng tôi đã giải thích phân phối tương thích RHEL là gì và các tính năng của Oracle Linux. Lần này, chúng tôi sẽ thực sự vận hành Oracle Linux để giải thích sự khác biệt với RHEL và CentOS.

1. Cách thử Oracle Linux

Bạn có thể dễ dàng thử Oracle Linux theo những cách sau. Lần này, chúng tôi sẽ chủ yếu sử dụng phương pháp 1 và một phần phương pháp 2.

  1. Cài đặt Oracle Linux trên VirtualBox hoặc phần mềm tương tự.
  2. Sử dụng Oracle Cloud Infrastructure Always Free
  3. Sử dụng hình ảnh Oracle Linux trong AWS hoặc Azure

Ngoài ra, phương tiện Oracle Linux có thể được tải miễn phí từ các trang web sau:

Để biết hướng dẫn cài đặt, hãy xem tài liệu “Cài đặt Oracle Linux 8 Oracle Linux”. Quá trình này gần giống với RHEL, CentOS Stream và AlmaLinux. Ngoài ra, chúng tôi khuyên bạn nên tham khảo “Tài liệu OCI: Oracle Linux” cho Oracle Cloud Infrastructure.

2. Khám phá sự khác biệt của Oracle Linux

Hãy cùng xem Oracle Linux hoạt động như thế nào. Lần này chúng tôi sẽ sử dụng Oracle Linux 8 Cập nhật 6. Ngay cả khi phiên bản nhỏ khác nhau, nó vẫn gần như giống nhau, vì vậy bạn không cần lo lắng về điểm này. Oracle Linux 7 cũng cơ bản giống nhau. Lần này, chúng tôi sẽ sử dụng các phân phối Linux sau để so sánh:

  • Red Hat Enterprise Linux 8
  • CentOS Stream

CentOS Stream không phải là một phân phối hoàn toàn tương thích với RHEL. Do đó, AlmaLinux và MIRACLE LINUX sẽ phù hợp hơn để so sánh, nhưng lần này chúng tôi sẽ sử dụng CentOS Stream, vốn dễ làm quen hơn.

2.1. Kiểm tra loại phân phối

Kiểm tra loại phân phối Linux. Linux có một tệp gọi là /etc/*-release, cho phép bạn xác định phân phối. Nếu bạn kiểm tra, sẽ thấy có bốn tệp được gọi là /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

Nếu bạn xem nội dung của tệp, bạn có thể thấy đó là Oracle Linux 8.6.

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

Tuy nhiên, bạn không cần lo lắng về phiên bản nhỏ sau dấu chấm thập phân trong Linux. Điều này là do, tùy thuộc vào cài đặt kho lưu trữ, việc chạy yum update sẽ tự động nâng cấp phiên bản nhỏ.

Điều thú vị là nội dung của /etc/redhat-release. Nó là bản phát hành Red Hat Enterprise Linux, không phải Oracle Linux.

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

Nhưng còn CentOS Stream thì sao? /etc/redhat-release là một liên kết tượng trưng tới /etc/centos-release. Tất nhiên, nội dung là giống nhau.

$ 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 ★Nội dung giống nhau
CentOS Stream release 8

Có vẻ như thông số này là một biện pháp đối phó cho chương trình kiểm tra loại phân phối. Phần mềm thương mại và trình điều khiển do nhà cung cấp phần cứng cung cấp thường sử dụng /etc/*-release để xác định loại và phiên bản của phân phối. Điều này có lẽ là vì họ kỳ vọng sẽ vượt qua kiểm tra bằng cách giữ nguyên /etc/redhat-release ban đầu.

2.2. Kiểm tra nhân

Kiểm tra nhân. Vì phần cuối là el8uek, đây không phải là nhân tương thích với RHEL, mà là Unbreakable Enterprise Kernel (UEK) độc đáo của Oracle Linux.

$ uname -r
5.4.17-2136.307.3.1.el8uek.x86_64

Nếu bạn xem nhân đã được cài đặt, bạn sẽ thấy ngoài UEK, nhân tương thích với RHEL (RHCK: Red Hat Compatible Kernel) cũng được cài đặt.

$ 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             ★Nhân tương thích 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

Với UEK và RHCK, bạn sẽ thấy số phiên bản rất khác nhau.

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

Lý do cho sự khác biệt lớn về phiên bản là sự khác biệt trong nhân Linux mà chúng dựa trên. UEK dựa trên nhân Linux thượng nguồn hơn 5.4, với các tùy chỉnh đặc thù cho Oracle Linux và khả năng tương thích ứng dụng với RHCK.

UEK và RHCK tương thích ở cấp độ ứng dụng, vì vậy chúng thường hoạt động tốt như hiện tại. Bạn có thể muốn xem xét chuyển đổi khi phần mềm, trình điều khiển thiết bị, v.v. mà bạn đang sử dụng không hỗ trợ UEK.

2.3. Khám phá nhân tương thích RHEL

Bảng sau cho thấy mối quan hệ giữa phân phối tương thích RHEL và phiên bản nhân. Số “phiên bản” không thay đổi nếu cùng phiên bản chính. Điều thay đổi là số phát hành theo sau phiên bản nhân.

Phân phốiPhiên bản nhân
Dựa trên RHEL8kernel-4.18.0
Dựa trên RHEL7kernel-3.10.0
Dựa trên RHEL6kernel-2.6.32

Hình sau cho thấy quy ước đặt tên gói nhân. Nếu cùng phiên bản chính, số “phiên bản” sẽ giữ nguyên, và số “phát hành” sẽ tăng lên. Đối với nhân tương thích RHEL trong Oracle Linux, cùng nhân với RHEL được phát hành cho đến số phát hành.

Hãy xem qua nhật ký thay đổi (lịch sử thay đổi) của nhân tương thích RHEL để tham khảo. Phiên bản 4.18.0-372.9.1.el8 dường như áp dụng một vài bản vá tương thích, như khóa, mà không thay đổi. Nếu bạn quan tâm, hãy xem Gói Nguồn (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]
- Cập nhật chứng chỉ Oracle Linux (Kevin Lyons)
- Tắt ký cho aarch64 (Ilya Okomin)
- Khóa ký mô-đun RHCK của Oracle Linux đã được thêm vào danh sách khóa đáng tin cậy của nhân (olkmod_signing_key.pem) [Orabug: 29539237]
- Cập nhật x509.genkey [Orabug: 24817676]
- Xung đột với shim-ia32 và shim-x64 <= 15-11.0.5.el8

* Fri Apr 15 2022 Augusto Caringi  [4.18.0-372.9.1.el8]
- scsi: qedi: Sửa lỗi xử lý ngắt kết nối thất bại (Chris Leech) [2071519]
- scsi: iscsi: Sửa lỗi xử lý điểm cuối không ràng buộc (Chris Leech) [2071519]

2.4. Kiểm tra kho Yum

Kiểm tra kho Yum. Không giống như RHEL, với Oracle Linux bạn có thể nhận gói cập nhật mà không cần hợp đồng hỗ trợ (RH là hợp đồng thuê bao). Tuy nhiên, nếu bạn ký hợp đồng hỗ trợ, bạn cũng có thể sử dụng các gói dành cho người dùng hợp đồng hỗ trợ như Ksplice.

Mặc định, các kho sau được bật. Ngoài ra, từ Oracle Linux 8, nó đã thay đổi từ yum sang dnf, nhưng vì nó tương thích, yum được sử dụng cố ý.

$ yum repolist
repo id           repo name
ol8_UEKR6         Bản phát hành nhân không thể phá vỡ mới nhất 6 cho Oracle Linux 8 (x86_64)
ol8_appstream     Oracle Linux 8 Application Stream (x86_64)
ol8_baseos_latest Oracle Linux 8 BaseOS mới nhất (x86_64)

Nội dung của mỗi kho như sau:

KhoGiải thích
ol8_baseos_latestGói cốt lõi cho hệ điều hành
ol8_appstreamỨng dụng, ngôn ngữ phát triển, v.v.
ol8_UEKR6UEK R6

Oracle Linux 8 cho Oracle Cloud Infrastructure được cấu hình như sau. Các kho đặc thù OCI và Ksplice được bật.


ol8_UEKR6         Bản phát hành nhân không thể phá vỡ mới nhất 6 cho 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 mới nhất (x86_64)
ol8_ksplice       Ksplice cho Oracle Linux 8 (x86_64)
ol8_oci           Gói OCI Oracle Linux 8 (x86_64)
ol8_oci_included  Phần mềm Oracle cho người dùng OCI trên Oracle Linux 8 (x86_64)

Hãy kiểm tra với các phân phối khác nữa. Số lượng kho được bật mặc định là khác nhau, nhưng baseosappstream thông thường thì giống nhau.

RHEL8

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

CentOS Stream

repo id             repo name
appstream           CentOS Stream 8 - AppStream
baseos              CentOS Stream 8 - BaseOS
epel                Gói bổ sung cho Enterprise Linux 8 - x86_64
epel-modular        Gói bổ sung cho Enterprise Linux Modular 8 - x86_64
extras              CentOS Stream 8 - Extras
extras-common       CentOS Stream 8 - Gói bổ sung chung

Sự khác biệt ID kho giữa Oracle Linux và các phân phối khác

Oracle LinuxRHELCentOS Stream
ol8_baseos_latestrhel-8-for-x86_64-baseos-rpmsbaseos
ol8_appstreamrhel-8-for-x86_64-appstream-rpmsappstream

Dưới đây là hiển thị đến kho bị tắt:

$ yum repolist all
repo id                    repo name                                    status
ol8_UEKR6                  Bản phát hành nhân không thể phá vỡ mới nhất 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 mới nhất (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 Cập nhật 4 (x86_64) Security  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

Ngoài ra, một số kho không được cài đặt mặc định. Lệnh yum list available hiển thị danh sách các gói chứa định nghĩa kho. Ví dụ, oracle-epel-release-el8 là kho “EPEL” thường được sử dụng trong các phân phối dựa trên RHEL. Chỉ cần chạy yum install oracle-epel-release-el8 để sử dụng gói 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

Tìm hiểu thêm về kho Yum trên Oracle Linux tại https://yum.oracle.com/.

Ngoài việc có thể tải xuống các gói cập nhật, chúng tôi khuyên bạn nên xem qua vì nó chứa nhiều thông tin đa dạng.

2.5. Kiểm tra các gói đặc thù của Oracle Linux

Một số gói chỉ được cung cấp bởi Oracle Linux, nhưng cài đặt mặc định cơ bản là giống nhau. Để tham khảo, đây là các gói có tên oracle. Chúng tôi sẽ bỏ qua chi tiết, nhưng chúng là những phần phải thay đổi, như logo, giấy phép, kho, khóa GPG, v.v.

# 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. Thay đổi nhân sang RHCK

Để tham khảo, đây là cách thay đổi nhân mặc định UEK sang RHCK. Sử dụng grubby để thực hiện thay đổi.

1. Kiểm tra nhân mặc định. Bạn có thể thấy đó là /boot/vmlinuz-5.4.17-2136.307.3.1.el8uek.x86_64 với số chỉ mục “0”.

# grubby --default-index
0

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

2. Tiếp theo, hiển thị danh sách các nhân đã cài đặt. index = 1 là 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. Thay đổi có thể được thực hiện bằng cách chỉ định đường dẫn nhân hoặc chỉ định số chỉ mục. Bạn có thể dùng cách nào cũng được, nhưng nên chỉ định đường dẫn nhân để tránh lỗi.

★Chỉ định đường dẫn nhân
# grubby --set-default=/boot/vmlinuz-4.18.0-372.9.1.el8.x86_64
★Chỉ định số chỉ mục
# grubby --set-default-index=1 

4. Đảm bảo rằng nhân mặc định đã được thay đổi sang RHCK.

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

5. Tiếp theo, thay đổi nhân mặc định sang nhân tương thích RH bằng /etc/sysconfig/kernel. Nếu bạn không sửa điều này, bạn sẽ quay lại UEK khi cập nhật yum.

Nội dung /etc/sysconfig/kernel

# UPDATEDEFAULT chỉ định liệu kernel-install có nên đặt
# các nhân mới làm mặc định không
UPDATEDEFAULT=yes

# DEFAULTKERNEL chỉ định loại gói nhân mặc định
DEFAULTKERNEL=kernel
#DEFAULTKERNEL=kernel-uek ★Bình luận dòng này và thêm dòng trên

Bạn có thể thay đổi thủ công, nhưng bạn cũng có thể thay đổi bằng lệnh sau.

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

6. Khởi động lại để kích hoạt nhân đã sửa đổi.

# shutdown -r

7. Khi bạn đăng nhập sau khi khởi động lại, nó đã thay đổi sang nhân tương thích RH. Quy trình này hoàn tất.

# uname -r
4.18.0-372.9.1.el8.x86_64

4. Kết luận

Trong bài viết này, chúng tôi đã tập trung vào sự khác biệt giữa CentOS và RHEL. Thực tế, chúng gần như giống nhau trong sử dụng thông thường. Nếu bạn được thông báo rằng môi trường cài đặt là CentOS, bạn có thể không nhận ra điều đó.

Tuy nhiên, mặc dù các phần cơ bản giống như phân phối tương thích RHEL, Oracle Linux có nhiều công cụ ngoại vi dành cho doanh nghiệp. Nó cũng có các tính năng độc đáo như Ksplice cho phép áp dụng bản vá mà không cần khởi động lại. Bây giờ khi CentOS đã chuyển sang CentOS Stream, Oracle Linux là một trong những phân phối tương thích RHEL đáng tin cậy nhất. Tại sao không thử nó?