ฉันต้องการนำหน้าโพสต์นี้ด้วยข้อจำกัดความรับผิดชอบนี้: ฉันค่อนข้างไม่คุ้นเคยกับการทำงานของ yum และฉันไม่คุ้นเคยกับรายละเอียดของการเปลี่ยนแปลงที่จำเป็นตั้งแต่ CentOS 8 กลายเป็น EOL

ประมาณหนึ่งเดือนก่อน บิลด์คอนเทนเนอร์ของฉันไม่สามารถเรียกใช้ได้สำเร็จ เนื่องจากเมื่อฉันจะอัปเดต ฉันได้รับข้อผิดพลาด ฉันพบวิธีแก้ปัญหาที่นี่ และเพิ่มสิ่งนี้ลงในบิลด์คอนเทนเนอร์ของฉัน:

sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-Linux-*
sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-Linux-*

สิ่งนี้ทำให้ฉันผ่านไปได้สักพักหนึ่งจนถึงวันนี้และดูเหมือนว่าจะพังอีกครั้ง

bash-4.4# yum update
CentOS Linux 8 - AppStream                                                                                                                                                                                   149 kB/s | 8.4 MB     00:58
CentOS Linux 8 - BaseOS                                                                                                                                                                                      113 kB/s | 4.6 MB     00:41
CentOS Linux 8 - Extras                                                                                                                                                                                      716  B/s |  10 kB     00:14
CentOS Linux 8 - PowerTools                                                                                                                                                                                  0.0  B/s |   0  B     01:26
Errors during downloading metadata for repository 'powertools':
  - Curl error (28): Timeout was reached for http://vault.centos.org/centos/8/PowerTools/x86_64/os/repodata/981185e5d80d51024e5246ed47f7f69605160518c22103379bb71376e2dccb14-filelists.xml.gz [Operation too slow. Less than 1000 bytes/sec transferred the last 30 seconds]
  - Curl error (28): Timeout was reached for http://vault.centos.org/centos/8/PowerTools/x86_64/os/repodata/4b94ac0555ec1e15718dd9d77f995ec7096d98974b4c7a427b8e03c20e9c663d-primary.xml.gz [Operation too slow. Less than 1000 bytes/sec transferred the last 30 seconds]

ดังนั้นฉันจึงพบวิธีแก้ไขปัญหาอื่น ๆ แต่ไม่มีวิธีใดที่ได้ผล ตัวอย่างเช่น ฉันพบโพสต์นี้: การอัปเกรด CentOS 8 - วิธีแก้ไขคำเตือน: การโหลดล้มเหลว '/etc/yum.repos.d/CentOS-AppStream.repo' การข้าม

มันมีฉันดังต่อไปนี้:

dnf --disablerepo '*' --enablerepo extras swap centos-linux-repos centos-stream-repos

dnf distro-ซิงค์

แต่ด้วยสิ่งนี้ ฉันได้รับสิ่งนี้:

    bash-4.4# dnf --disablerepo '*' --enablerepo extras swap centos-linux-repos centos-stream-repos
CentOS Linux 8 - Extras                                                                                                                                                                                       22 kB/s |  10 kB     00:00
Error:
 Problem 1: conflicting requests
  - nothing provides centos-gpg-keys = 1:8-3.el8 needed by centos-stream-repos-8-3.el8.noarch
 Problem 2: package centos-linux-release-8.3-1.2011.el8.noarch requires centos-repos(8), but none of the providers can be installed
  - conflicting requests
  - problem with installed package centos-linux-release-8.3-1.2011.el8.noarch
  - nothing provides centos-gpg-keys = 1:8-3.el8 needed by centos-stream-repos-8-3.el8.noarch
(try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)

หากฉันให้เงื่อนไขว่าฉันไม่สามารถเปลี่ยนอิมเมจพื้นฐานของฉันสำหรับคอนเทนเนอร์นี้ (CentOS 8) วิธีแก้ปัญหาระยะสั้นสำหรับสิ่งนี้คืออะไร ฉันรู้ว่าวิธีแก้ปัญหาระยะยาวคือเปลี่ยนระบบปฏิบัติการ แต่ฉันต้องเดินกะเผลกในช่วงเวลาสั้นๆ

ขอบคุณล่วงหน้า!

answer

อินฟราที่อยู่เบื้องหลัง vault.centos.org มักจะไม่สม่ำเสมอ

RedHat มีแรงจูงใจน้อยมากที่จะสนับสนุน เป็นเวอร์ชันชุมชนที่เก็บถาวรของระบบปฏิบัติการหลัก ซึ่งเป็นเวอร์ชันชุมชนเดียวกันกับที่สร้าง EOL เพื่อสนับสนุน CentOS Stream

ตามรายละเอียดที่นี่คุณอาจต้องการใช้vault.epel.cloudอันไหนน่าเชื่อถือกว่า

sed -i 's|baseurl=http://vault.centos.org|baseurl=http://vault.epel.cloud|g' /etc/yum.repos.d/CentOS-Linux-*

ย้ายคอนเทนเนอร์ของคุณออกจาก CentOS 8 เนื่องจากหมดอายุการใช้งาน อย่าใช้ห้องนิรภัย

หลายตัวเลือก Universal Base Image (UBI 8) โดยตรงจาก Red Hat คอนเทนเนอร์ที่ใช้ EL8 จากการสร้างใหม่ อย่างน้อย Alma และ Rocky ก็มีสิ่งเหล่านี้เช่นกัน