กลับ
2025/03/31
8. การเปลี่ยนจาก CentOS ไปเป็น Oracle Linux
ในเดือนธันวาคม 2020 บล็อกอย่างเป็นทางการของ CentOS ประกาศว่าการพัฒนา CentOS จะสิ้นสุดลงและจะถูกเปลี่ยนไปเป็น CentOS Stream การประกาศการสิ้นสุดของ CentOS ซึ่งก่อนหน้านี้มีบทบาทเด่นในฐานะการกระจายที่เข้ากันได้กับ RHEL (โคลน RHEL) เป็นเรื่องที่น่าประหลาดใจอย่างมาก
เกือบสามปีผ่านไปนับตั้งแต่การประกาศการสิ้นสุดของ CentOS ในปี 2020 และทางเลือกต่าง ๆ แทน CentOS ได้ปรากฏขึ้น ในบทความนี้ เราจะอธิบายสถานการณ์ปัจจุบันของ CentOS และหลังจาก CentOS รวมถึงวิธีการเปลี่ยนไปใช้ Oracle Linux ซึ่งเป็นจุดหมายการย้ายที่น่าสนใจ
การสิ้นสุดของ CentOS และ CentOS Stream
เพื่อทำความเข้าใจสถานการณ์ปัจจุบันของ CentOS เราจะอธิบายภาพรวมของการสิ้นสุดของ CentOS และ CentOS Stream ใหม่
การประกาศสิ้นสุดอายุการใช้งานของ CentOS
การประกาศการสิ้นสุดของ CentOS ถูกเผยแพร่ในบล็อกอย่างเป็นทางการของ CentOS “โครงการ CentOS เปลี่ยนโฟกัสไปที่ CentOS Stream“

เนื้อหาของบล็อกนี้สามารถสรุปได้ดังนี้:
- CentOS 8 จะสิ้นสุดการสนับสนุนในวันที่ 31 ธันวาคม 2021
- CentOS 7 จะได้รับการสนับสนุนจนถึงวันที่ 30 มิถุนายน 2024 ตามปกติ
- CentOS จะเปลี่ยนไปเป็น CentOS Stream ในอนาคต
- CentOS Stream เป็นสาขาการพัฒนา (upstream) ของ RHEL ตำแหน่งของมันแตกต่างจากการสร้างใหม่แบบดั้งเดิม
- ผู้ใช้ CentOS 8 ถูกกระตุ้นให้ย้ายไปใช้ CentOS Stream ซึ่งมีความแตกต่างน้อยลง หรือไปใช้ RHEL หากกังวลเกี่ยวกับการใช้งานในสภาพแวดล้อมการผลิต
นอกจากนี้ จากมุมมองของผู้ใช้ สามารถแสดงได้ดังนี้:
- การสนับสนุนสำหรับ CentOS จะสิ้นสุดในไม่ช้า ดังนั้นคุณต้องพิจารณาการย้ายทันที
- ในขณะนี้ (กันยายน 2023) การสนับสนุนสำหรับ CentOS 8 ได้สิ้นสุดลง และการสนับสนุนสำหรับ CentOS 7 จะสิ้นสุดในมิถุนายน 2024 หลังจากสิ้นสุดการสนับสนุน แพ็คเกจอัปเดตจะไม่ถูกจัดหาอีกต่อไป และที่เก็บ Yum จะไม่สามารถใช้งานได้
- ไม่มีการจัดหาแพ็คเกจอัปเดต ซึ่งเพิ่มความเสี่ยงด้านความปลอดภัย
- CentOS Stream ไม่ใช่การสร้างใหม่ของ RHEL เหมือน CentOS แต่ถูกวางตำแหน่งเป็นเวอร์ชันพัฒนา ดังนั้น มีปัญหาในการใช้งานในสภาพแวดล้อมการผลิตอย่างน้อย
ความแตกต่างระหว่าง CentOS และ CentOS Stream
CentOS เป็นการกระจาย Linux ที่เข้ากันได้กับ RHEL หรือที่รู้จักกันในชื่อโคลน RHEL ดังนั้นมันเข้ากันได้กับ RHEL และเกือบจะเหมือนกันในระดับซอร์สโค้ด อย่างไรก็ตาม ผมได้แนะนำแผนภาพต่อไปนี้ในบทความก่อนหน้านี้ “คุณใช้ Oracle Linux หรือไม่? (ตอนที่ 1)“
ในทางกลับกัน CentOS Stream เป็น Nightly build ของ RHEL ที่ปล่อยออกมาแบบ rolling release Nightly build คือการสร้างที่สร้างโดยใช้ซอร์สโค้ดล่าสุดของโครงการพัฒนาและแตกต่างจากเวอร์ชันที่ปล่อยอย่างเป็นทางการ
มันเข้าใจยากเล็กน้อยเพราะมันแตกต่างจากที่เรามีมาจนถึงตอนนี้ แต่แผนภาพต่อไปนี้ที่เผยแพร่โดยโครงการ CentOS ควรช่วยได้ ตัวอย่างเช่น RHEL 8 (≓ CentOS 8) ถูกสร้างโดยการแยกออกจาก Fedora 28 จากนั้น 8.2 และ 8.3 ถูกปล่อยตามลำดับ และ errata ถูกสร้างสำหรับแต่ละอัน ขึ้นอยู่กับการตั้งค่า OS ยังสามารถอัปเดตจาก 8.3 เป็น 8.8 ล่าสุดได้
ที่มา: CentOS Stream คือการส่งมอบอย่างต่อเนื่อง ได้รับอนุญาตภายใต้ CC BY-SA 4.0
CentOS Stream เป็นระบบ rolling release ดังนั้นไม่มีเวอร์ชันย่อยเช่น 8.2 หรือ 8.3 มันมีเพียงวันที่ปล่อย หากคุณดูภาพ ISO ที่เผยแพร่บน ไซต์มิเรอร์ 20230825
มันจะมีวันที่เช่นนี้ นอกจากนี้ 20230825
และบนไซต์มิเรอร์ latest
จะเหมือนกัน และเนื้อหาของ latest
จะถูกอัปเดตเสมอ
นอกจากนี้ เมื่อดูที่ระดับแพ็คเกจแต่ละตัว ไม่มีการรับประกันว่า CentOS Stream และ RHEL จะเหมือนกัน เนื่องจากการเปลี่ยนแปลงถูกทำใน CentOS Stream ก่อน เมื่อเปรียบเทียบเวอร์ชันล่าสุด CentOS Stream จะใหม่กว่าและสามารถพิจารณาได้ว่าเป็นเวอร์ชันที่ยังไม่ได้รับการทดสอบในสภาพแวดล้อมการผลิต

ผมหวังว่าคุณจะเข้าใจว่าแม้ว่า CentOS และ CentOS Stream จะมีฟังก์ชันที่คล้ายกัน แต่ตำแหน่งของมันค่อนข้างแตกต่างกัน นั่นคือเหตุผลที่มันก่อให้เกิดความโกลาหลทั่วโลก ความแตกต่างระหว่าง CentOS และ CentOS Stream ได้รับการอธิบายอย่างละเอียดในบล็อกวิศวกรของ Red Hat “บล็อกวิศวกร Akahato: ความสัมพันธ์ระหว่าง Fedora/CentOS Stream/CentOS/RHEL” โปรดดูหากคุณสนใจ
ระยะเวลาการสนับสนุนสำหรับการกระจาย Linux แต่ละตัว
บทความนี้แนะนำระยะเวลาการสนับสนุนสำหรับการกระจาย Linux ที่อิงจาก RHEL เวอร์ชัน CentOS เดียวที่ยังได้รับการสนับสนุนในปัจจุบันคือ CentOS 7 ซึ่งจะได้รับการสนับสนุนจนถึงวันที่ 30 มิถุนายน 2024 ไม่มี CentOS 9 ดังนั้น หากคุณกำลังใช้ CentOS อยู่ คุณจะต้องย้ายไปยังการกระจาย Linux อื่น ๆ
เวอร์ชัน | สิ้นสุดการสนับสนุน(*1) |
---|---|
CentOS 7 | 2024/06/30 |
CentOS 8 | 2021/12/31 |
CentOS Stream 8 | 2024/05/31 |
CentOS Stream 9 | ยังไม่กำหนด (กำหนดให้เหมือนกับ RHEL9) |
Red Hat Enterprise Linux 7 | 2024/06/30 |
Red Hat Enterprise Linux 8 | 2029/05/31 |
Red Hat Enterprise Linux 9 | 2032/05/31 |
Oracle Linux 7 | 2024/12 |
Oracle Linux 8 | 2029/07 |
Oracle Linux 9 | 2032/06 |
*1: การสิ้นสุดการสนับสนุนสำหรับ Oracle Linux คือการสิ้นสุดของ Premier Support การสนับสนุนเพิ่มเติมและการสนับสนุนแบบยั่งยืนจะถูกจัดหาให้นานกว่านี้
ตัวเลือกการย้ายของ CentOS
มาพิจารณาการกระจาย Linux ที่เป็นตัวเลือกสำหรับการย้ายจาก CentOS โดยพิจารณาความง่ายในการย้าย ซีรีส์ RHEL เป็นตัวเลือกที่ดีที่สุด และตัวเลือกหลักมีดังนี้:
- CentOS Stream
- Red Hat Enterprise Linux
- Oracle Linux
- AlmaLinux
- Rocky Linux
- MIRACLE LINUX
- Amazon Linux
AlmaLinux และ Rocky Linux เป็นการกระจาย Linux ที่เกิดจากการต่อต้านการสิ้นสุดของ CentOS ทั้งคู่ได้รับการสนับสนุนจากบริษัทใหญ่และยังมีให้บริการบนคลาวด์สาธารณะ
การเลือกตัวใดขึ้นอยู่กับปัจจัยเช่นวัตถุประสงค์และงบประมาณของคุณ ดังนั้นจึงยากที่จะบอกว่าตัวใดดีกว่าอย่างไม่มีเงื่อนไข ตารางต่อไปนี้เปรียบเทียบจากมุมมองของการใช้งานระดับองค์กร สำหรับการใช้งานระดับองค์กร ปัจจัยที่สำคัญรวมถึงระยะเวลาการสนับสนุน การมีหรือไม่มีบริการสนับสนุนแบบเสียเงิน การมีหรือไม่มีฮาร์ดแวร์ที่สนับสนุน การสนับสนุนแพ็คเกจเชิงพาณิชย์ และค่าใช้จ่าย
การกระจาย | ใบอนุญาต/การสมัครสมาชิก | การสนับสนุนแบบเสียเงิน | วิธีการย้าย | ข้อเสียและจุดลบ |
---|---|---|---|---|
CentOS Stream | ไม่จำเป็น | ไม่มี | การเปลี่ยนที่เก็บ | ดูเหมือนจะมีความเสถียรสูง แต่ต้องระวัง มันไม่เข้ากันได้กับ RHEL แบบดั้งเดิม ดังนั้นไม่มีฮาร์ดแวร์ที่สนับสนุนและแพ็คเกจเชิงพาณิชย์ไม่ได้รับการสนับสนุน คุณสามารถโน้มน้าวเจ้านายหรือลูกค้าได้หรือไม่? |
Red Hat Enterprise Linux | จำเป็น | สามารถ | มีเครื่องมือการย้าย | ผู้นำในอุตสาหกรรม แต่ต้องสมัครสมาชิกและข้อตกลง Red Hat Enterprise |
Oracle Linux | ไม่จำเป็น แต่บางฟีเจอร์มีให้เฉพาะผู้ใช้ที่สนับสนุนแบบเสียเงิน | สามารถ | มีเครื่องมือการย้าย | มีประวัติยาวนานและใช้สำหรับแอปพลิเคชันที่สำคัญเช่น Exadata ไม่เป็นที่รู้จักในหมู่ผู้ใช้ผลิตภัณฑ์ Oracle |
AlmaLinux/Rocky Linux | ไม่จำเป็น | มีบริการสนับสนุนแบบเสียเงิน (รวมถึงการสนับสนุนจากบุคคลที่สาม) | มีเครื่องมือการย้าย | เป็นการกระจายใหม่ ดังนั้นต้องจับตาดู |
Amazon Linux | ไม่จำเป็น | สามารถ | ไม่มีเครื่องมือที่จัดหาโดยผู้จำหน่าย | สามารถใช้งานในสถานที่และมีความเข้ากันได้สูงกับ AWS เนื่องจากอิงจาก Fedora ความเข้ากันได้ไม่สูงและระยะเวลาการสนับสนุนสั้นประมาณ 5 ปี |
MIRACLE LINUX | ไม่จำเป็น | สามารถ | มีเครื่องมือการย้าย | แม้ว่าจะมีประวัติยาวนาน แต่ไม่เป็นที่รู้จักในหมู่ผู้จำหน่ายในประเทศ |
เปลี่ยนจาก CentOS ไปเป็น Oracle Linux โดยใช้เครื่องมือการย้าย
Oracle Linux มีสคริปต์ centos2ol.sh
ที่เปลี่ยน CentOS ไปเป็น Oracle Linux ในสถานที่ ครั้งนี้ เราจะใช้สคริปต์นี้เพื่อเปลี่ยน CentOS 8 ไปเป็น Oracle Linux 8 ขั้นตอนสำหรับการเปลี่ยนไปใช้ CentOS 7 เกือบจะเหมือนกัน
Oracle ได้เผยแพร่เอกสารหลายฉบับ ดังนั้นในคอลัมน์นี้เราจะเจาะลึกบางส่วนในขณะที่เน้นประเด็นหลัก
- การเปลี่ยนจาก CentOS 8 ไปเป็น Oracle Linux 8
- การเปลี่ยนจาก CentOS Linux ไปเป็น Oracle Linux
- Github: เปลี่ยนจาก CentOS/Rocky Linux ไปเป็น Oracle Linux
เพื่อรันสคริปต์การย้าย:
ขั้นตอนในการรันสคริปต์การย้ายมีดังนี้ ขั้นตอนการเตรียมการ 1 ถึง 3 ต้องใช้คำสั่งหลายคำสั่ง อย่างไรก็ตาม ขั้นตอนการย้าย 4 และ 5 สามารถดำเนินการได้ด้วยจำนวนคำสั่งขั้นต่ำ
- ตรวจสอบข้อจำกัด
- สำรองระบบ (ละไว้ในข้อความ)
- เตรียม CentOS ต้นทาง
- รันสคริปต์การย้าย
- การตรวจสอบหลังการย้าย
ตรวจสอบข้อจำกัด
ข้อจำกัดของเครื่องมือการย้ายมีดังนี้ ในตอนนี้ คุณเพียงแค่ต้องตระหนักถึงข้อจำกัดเหล่านี้ และเราจะตรวจสอบในส่วนถัดไป “การเตรียม CentOS ต้นทาง”
- แหล่งที่มาคือ CentOS 6, 7, 8 หรือ Rocky Linux 8, 9
- การเข้าถึงที่เก็บ Yum ของ CentOS และ Oracle Linux ไม่ว่าจะโดยตรงหรือผ่านพร็อกซี่
- อินสแตนซ์ไม่ได้ลงทะเบียนกับเครื่องมือจัดการแพ็คเกจของบุคคลที่สามเช่น Spacewalk
- หากคุณติดตั้งแพ็คเกจจากแหล่งอื่นนอกเหนือจากที่เก็บอย่างเป็นทางการของ CentOS อาจเข้ากันได้ แต่เราไม่รับประกันว่ามันจะทำงาน บางซอฟต์แวร์
/etc/oracle-release
อาจก่อให้เกิดปัญหาหากติดตั้ง - หากติดตั้งโมดูลเคอร์เนลบางตัว เช่น ผลิตภัณฑ์แอนตี้ไวรัสเชิงพาณิชย์หรือไดรเวอร์ฮาร์ดแวร์ อาจไม่ทำงานหลังจากเปลี่ยน
- สคริปต์การย้ายเปิดใช้งานเฉพาะที่เก็บพื้นฐาน เช่น base, updates และ BaseOS หากคุณติดตั้งแพ็คเกจจากที่เก็บอื่น คุณอาจต้องเปิดใช้งานที่เก็บเพิ่มเติม
- /var/cache มีพื้นที่ว่างอย่างน้อย 5GB
การเตรียม CentOS ต้นทาง
ที่นี่เราจะแน่ใจว่าเราไม่ละเมิดข้อจำกัดของสคริปต์
โปรดทราบว่าขั้นตอนการเตรียมการต้องใช้สิทธิ์ผู้ดูแลระบบ ดังนั้นคุณต้องใส่ sudo ก่อนคำสั่งหรือใช้ su เพื่อรันในฐานะผู้ใช้ root ผมได้ละ sudo เพื่อเน้นความเรียบง่ายของลักษณะที่ปรากฏ นอกจากนี้ CentOS 8 แนะนำ dnf แทน yum แต่ผมยึดติดกับ yum เพราะมันเข้ากันได้
1. ตรวจสอบเวอร์ชัน CentOS
ล็อกอินไปที่แหล่งที่มาและตรวจสอบเวอร์ชัน CentOS หากเป็น 8 ตามที่แสดงด้านล่าง ไม่มีปัญหา
# cat /etc/centos-release
CentOS Linux release 8.3.2011
2. ตรวจสอบการเชื่อมต่อกับที่เก็บ Yum ของ CentOS
ตรวจสอบว่าคุณสามารถเชื่อมต่อกับที่เก็บ Yum ของ CentOS ได้หรือไม่ CentOS 8 ไม่มีที่เก็บบนไซต์มิเรอร์อีกต่อไป ดังนั้นหากคุณไม่สามารถเชื่อมต่อได้ คุณจะได้รับข้อผิดพลาดต่อไปนี้:
# yum check-update
CentOS Linux 8 - AppStream 51 B/s | 38 B 00:00
エラー: repo 'appstream' のメタデータのダウンロードに失敗しました : Cannot prepare internal mirrorlist: No URLs in mirrorlist
หากเกิดข้อผิดพลาด เปลี่ยนที่เก็บที่คุณชี้ไปโดยรันคำสั่งต่อไปนี้:
# sed -i -e 's/^mirrorlist/#mirrorlist/g' -e 's/^#baseurl=http:\/\/mirror/baseurl=http:\/\/vault/g' /etc/yum.repos.d/CentOS-*repo
หากที่เก็บพร้อมใช้งาน เมทาดาทาของที่เก็บจะถูกดาวน์โหลดและแพ็คเกจที่สามารถอัปเดตได้จะแสดงตามที่แสดงด้านล่าง
# yum check-update
CentOS Linux 8 - AppStream 16 MB/s | 8.4 MB 00:00
CentOS Linux 8 - BaseOS 9.2 MB/s | 4.6 MB 00:00
CentOS Linux 8 - Extras 46 kB/s | 10 kB 00:00
NetworkManager.x86_64 1:1.32.10-4.el8 baseos
NetworkManager-libnm.x86_64 1:1.32.10-4.el8 baseos
3. ตรวจสอบว่าไม่มีแพ็คเกจที่มีปัญหา
ตรวจสอบเคอร์เนลและแพ็คเกจที่ติดตั้งนอกที่เก็บพื้นฐาน (anaconda, base, baseos, updates, AppStream ฯลฯ) เคอร์เนลเป็นปัญหาโดยเฉพาะ ดังนั้นให้ลบเคอร์เนล centosplus หากมีอยู่
แสดงเคอร์เนลที่ติดตั้ง ชื่อที่เก็บที่มันถูกติดตั้งจากจะแสดงที่ด้านขวาสุด ตัวอย่างนี้ไม่มีปัญหา
# yum list installed kernel
kernel.x86_64 4.18.0-240.el8 @anaconda
เพื่อตรวจสอบไม่เพียงแค่เคอร์เนล แต่ยังรวมถึงแพ็คเกจที่ติดตั้งจากนอกที่เก็บพื้นฐาน ใช้คำสั่งต่อไปนี้ หากมีแพ็คเกจที่ติดตั้งจากที่เก็บของบุคคลที่สามเช่น EPEL แพ็คเกจที่เกี่ยวข้องจะถูกแสดง อย่างไรก็ตาม แพ็คเกจใน user space มักไม่ค่อยเป็นปัญหา
# rpm -qa --qf '%{NAME}-%{VERSION}-%{RELEASE}\t%{VENDOR}\n' | grep -v "CentOS"
4. ตรวจสอบที่เก็บพื้นฐาน
ตรวจสอบว่าที่เก็บพื้นฐานถูกเปิดใช้งาน หากถูกปิดใช้งาน ให้เปิดใช้งาน
# yum repolist
repo id repo の名前
appstream CentOS Linux 8 - AppStream
baseos CentOS Linux 8 - BaseOS
extras CentOS Linux 8 - Extras
หากมีที่เก็บใดถูกปิดใช้งาน ให้เปิดใช้งาน
# dnf config-manager --enable BaseOS AppStream extras
นอกจากนี้ หากข้อความต่อไปนี้ที่เริ่มต้นด้วย “This system is” ถูกแสดงในตอนแรก ระบบนั้นถูกลงทะเบียนกับ Spacewalk ฯลฯ สคริปต์การย้ายไม่สามารถใช้งานได้ ดังนั้นให้ลบออกจากการจัดการหรือยอมแพ้การใช้สคริปต์
# yum repolist
...
This system is receiving updates from Red Hat Satellite or Spacewalk server
repo id repo name
5. อัปเดตแพ็คเกจ
อัปเดตแพ็คเกจเป็นเวอร์ชันล่าสุด แม้ว่าการอัปเดตเป็นเวอร์ชันล่าสุดไม่จำเป็น แต่มันจะถูกอัปเดตเมื่อคุณรันสคริปต์การย้าย ดังนั้นผลลัพธ์จะเหมือนกันในท้ายที่สุด
# yum update -y
6. ตรวจสอบพื้นที่ว่างบนดิสก์
ตรวจสอบว่า /var/cache มีพื้นที่ว่างอย่างน้อย 5GB
# df -h /var/cache
ファイルシス サイズ 使用 残り 使用% マウント位置
/dev/mapper/cl_centos8-root 47G 1.7G 46G 4% /
7. ปิดการอัปเดตแพ็คเกจอัตโนมัติ
หากการอัปเดตแพ็คเกจอัตโนมัติถูกเปิดใช้งานในขณะที่สคริปต์การย้ายกำลังรัน มันจะไม่ทำงานอย่างถูกต้อง ดังนั้นต้องปิดการใช้งาน CentOS มีการอัปเดตแพ็คเกจอัตโนมัติสองประเภท:
- yum-cron (CentOS 7) หรือ dnf-automatic (CentOS 8)
- Packagekit ที่ встроено ในสภาพแวดล้อมเดสก์ท็อป
หากคุณไม่ได้ติดตั้งเดสก์ท็อป ตรวจสอบ yum-cron หรือ dnf-automatic หากคุณติดตั้งเดสก์ท็อป คุณควรตรวจสอบทั้งคู่
7-1. ปิด dnf-automatic
ตรวจสอบว่า dnf-automatic ถูกติดตั้งหรือไม่ หากไม่มีอะไรแสดงตามด้านล่าง ให้ไปที่ “7-2. ปิด Packagekit”
# rpm -qa | grep dnf-automatic
★何も表示されなければインストールされていません
เมื่อติดตั้ง ตรวจสอบการตั้งค่า timer ในตัวอย่างต่อไปนี้ การดาวน์โหลดอัตโนมัติ (dnf-automatic-download.timer) ถูกเปิดใช้งาน
# systemctl list-unit-files --type=timer | grep dnf-auto
dnf-automatic-download.timer enabled
dnf-automatic-install.timer disabled
dnf-automatic-notifyonly.timer disabled
dnf-automatic.timer disabled
หากมีตัวใดถูกเปิดใช้งาน ปิดทั้งหมด
# systemctl disable dnf-automatic-download.timer --now
7-2. ปิด Packagekit
หากคุณติดตั้งสภาพแวดล้อม GUI ตรวจสอบ Packagekit
# systemctl status packagekit
เมื่อมันระบุว่า “active (running)” ตามที่แสดงด้วยเครื่องหมาย ★ มันกำลังทำงานอยู่ หากบริการ Packagekit เองไม่มีอยู่ มันจะระบุว่า “Unit packagekit.service could not be found.” ซึ่งไม่เกี่ยวข้องในกรณีนี้
● packagekit.service - PackageKit Daemon
Loaded: loaded (/usr/lib/systemd/system/packagekit.service; static; vendor preset: disabled)
Active: ★active (running)★ since Tue 2023-08-15 09:31:27 GMT; 59s ago
Main PID: 21960 (packagekitd)
Tasks: 3
CGroup: /system.slice/packagekit.service
└─21960 /usr/libexec/packagekitd
Dec 15 09:31:26 centos7 systemd[1]: Starting PackageKit Daemon...
Dec 15 09:31:27 centos7 PackageKit[21960]: daemon start
Dec 15 09:31:27 centos7 systemd[1]: Started PackageKit Daemon.
เมื่อ Packagekit กำลังทำงาน หยุดบริการและปิดการเริ่มต้นอัตโนมัติ
# systemctl disable packagekit --now
8. ดาวน์โหลดสคริปต์การย้าย
ดาวน์โหลดสคริปต์การย้าย หากคุณต้องการพร็อกซี่เพื่อเข้าถึงอินเทอร์เน็ต ระบุเซิร์ฟเวอร์พร็อกซี่ในตัวเลือก --proxy
หรือตัวแปรสภาพแวดล้อม https_proxy
# curl -O https://raw.githubusercontent.com/oracle/centos2ol/main/centos2ol.sh
ตรวจสอบตัวเลือกที่มีอยู่
# bash centos2ol.sh -h
Usage: centos2ol.sh [OPTIONS]
OPTIONS
-h
Display this help and exit
-k
Do not install the UEK kernel and disable UEK repos
-r
Reinstall all CentOS RPMs with Oracle Linux RPMs
Note: This is not necessary for support
-V
Verify RPM information before and after the switch
การรันสคริปต์การย้าย
ตอนนี้ทุกอย่างพร้อมแล้ว รันสคริปต์การย้ายเพื่อเปลี่ยนไปเป็น Oracle Linux เวลาที่ใช้ในการรันขึ้นอยู่กับจำนวนแพ็คเกจที่ติดตั้ง ความเร็วของสาย และประสิทธิภาพของเครื่อง ในสภาพแวดล้อมที่ผมทดสอบ ใช้เวลาประมาณ 10 ถึง 60 นาที
# bash centos2ol.sh
หากสคริปต์รันสำเร็จ ข้อความต่อไปนี้จะถูกแสดง:
Sync successful.
Updating the GRUB2 bootloader.
Generating grub configuration file ...
done
Switching default boot kernel to the UEK.
Removing yum cache
Switch complete.
Oracle recommends rebooting this system.
ทำตามข้อความเพื่อรีสตาร์ทระบบ
# systemctl reboot
การตรวจสอบหลังการย้าย
หลังจากรีบูต ตรวจสอบว่าระบบของคุณเป็นอย่างไร
- /etc/oracle-release ถูกเพิ่มและ /etc/centos-release ถูกลบออก
$ ls -l /etc/*-release
-rw-r--r--. 1 root root 32 8月 7 00:03 /etc/oracle-release
-rw-r--r--. 1 root root 489 8月 7 00:03 /etc/os-release
-rw-r--r--. 1 root root 45 8月 7 00:03 /etc/redhat-release
lrwxrwxrwx. 1 root root 14 8月 7 00:03 /etc/system-release -> oracle-release
- ก่อนการย้าย เวอร์ชันคือ CentOS 8.3 แต่ตอนนี้เป็น Oracle Linux 8.8 ล่าสุด หากคุณย้ายโดยใช้สคริปต์การย้าย มันจะกลายเป็นเวอร์ชันล่าสุด
$ cat /etc/oracle-release
Oracle Linux Server release 8.8
- เคอร์เนลเริ่มต้นคือ UEK ไม่ใช่ RHCK หากคุณไม่ต้องการใช้ UEK ระบุ
centos2ol.sh -k
เมื่อรันสคริปต์ดังนี้:
$ uname -r
5.4.17-2136.322.6.2.el8uek.x86_64
- ตรวจสอบว่าแพ็คเกจ CentOS ยังคงอยู่หรือไม่ เคอร์เนลต่อไปนี้ถูกแสดง สิ่งเหล่านี้ไม่ได้ใช้งาน ดังนั้นสามารถลบได้
$ rpm -qa --qf '%{NAME}-%{VERSION}-%{RELEASE}\t%{VENDOR}\n' | grep CentOS | sort -n
kernel-4.18.0-240.el8 CentOS
kernel-core-4.18.0-240.el8 CentOS
kernel-modules-4.18.0-240.el8 CentOS
- ไปอีกขั้นและแสดงรายการแพ็คเกจที่เกี่ยวข้องกับเคอร์เนล เราเห็นว่าเคอร์เนล CentOS ก่อนหน้าและ RHCK และ UEK ล่าสุดสำหรับ Oracle Linux ถูกติดตั้ง
# rpm -qa --qf '%{NAME}-%{VERSION}-%{RELEASE}\t%{VENDOR}\n' | grep kernel- | sort -n
kernel-4.18.0-240.el8 CentOS
kernel-4.18.0-477.21.1.el8_8 Oracle America
kernel-core-4.18.0-240.el8 CentOS
kernel-core-4.18.0-477.21.1.el8_8 Oracle America
kernel-modules-4.18.0-240.el8 CentOS
kernel-modules-4.18.0-477.21.1.el8_8 Oracle America
kernel-tools-4.18.0-477.21.1.el8_8 Oracle America
kernel-tools-libs-4.18.0-477.21.1.el8_8 Oracle America
kernel-uek-5.4.17-2136.322.6.2.el8uek Oracle America
- ตรวจสอบที่เก็บที่เปิดใช้งาน คุณจะเห็นว่ามันถูกแทนที่ด้วยที่เก็บของ Oracle Linux
yum repolist
repo id repo の名前
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)
สรุป
โดยใช้สคริปต์การย้าย คุณจะเห็นว่าการเปลี่ยนจาก CentOS ไปเป็น Oracle Linux นั้นง่ายมาก ส่วนที่ยุ่งยากที่สุดคืองานตรวจสอบเบื้องต้น นอกจากนี้ แม้ว่าจะไม่ได้อธิบายในข้อความหลัก อย่าลืมสำรองข้อมูลก่อนรัน
สรุป
- การสนับสนุน CentOS กำลังจะสิ้นสุดในไม่ช้า ดังนั้นคุณต้องย้ายอย่างรวดเร็ว
- Oracle Linux เป็นเป้าหมายการย้ายที่น่าจะเป็นไปได้
- สคริปต์การย้าย centos2ol.sh ทำให้การเปลี่ยนจาก CentOS ไปเป็น Oracle Linux ง่ายขึ้น
- เวลาในการย้ายประมาณ 10 ถึง 60 นาทีต่อเซิร์ฟเวอร์ ขึ้นอยู่กับจำนวนแพ็คเกจที่ติดตั้ง ประสิทธิภาพของเซิร์ฟเวอร์ และความเร็วของสาย
- สคริปต์มีข้อจำกัดบางประการ เช่น การสามารถเชื่อมต่อกับที่เก็บอินเทอร์เน็ต
อุตสาหกรรมโคลน RHEL มีความโกลาหลตั้งแต่ปลายปี 2020 แต่ในปี 2023 มีความโกลาหลอีกครั้ง Red Hat ได้เผยแพร่ซอร์สโค้ด RHEL ก่อนหน้านี้ แต่ได้ประกาศว่าจะไม่เปิดเผยต่อสาธารณะในอนาคต (ดูที่ลิงก์ด้านล่าง) เพื่อตอบสนอง ผู้จำหน่ายบางรายได้ประกาศมาตรการตอบโต้ Oracle ไม่เพียงแต่พัฒนา Oracle Linux มาหลายปี แต่ยังรวมถึง Solaris ดังนั้นคุณอาจรู้สึกปลอดภัยในด้านนี้