Khắc phục lỗi YUM trên CentOS 7 sau khi ngưng hỗ trợ (EOL)
Khi hệ điều hành CentOS 7 chính thức kết thúc vòng đời (End-of-Life), việc cập nhật và cài đặt các gói phần mềm qua YUM sẽ gặp lỗi. Bài viết này sẽ hướng dẫn bạn cách cấu hình lại YUM để tiếp tục sử dụng kho lưu trữ một cách bình thường.
Thông báo quan trọng: CentOS 7 End-of-Life
Kể từ ngày 30 tháng 6 năm 2024, CentOS 7 đã chính thức ngưng hỗ trợ (End-of-Life - EOL). Điều này có nghĩa là các kho lưu trữ (repository) mặc định đã bị vô hiệu hóa, dẫn đến việc lệnh yum update hoặc yum install sẽ báo lỗi không tìm thấy máy chủ.
1. Vấn đề gặp phải là gì?
Sau ngày EOL, khi bạn chạy các lệnh YUM, bạn sẽ nhận được các thông báo lỗi tương tự như sau:
Loading mirror speeds from cached hostfile
Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=stock error was
14: HTTP Error 404 - Not Found
...
One of the configured repositories failed (CentOS-7 - Base),
and yum doesn't have enough cached data to continue.
Nguyên nhân là do các địa chỉ mirrorlist và baseurl mặc định không còn tồn tại. Để khắc phục, chúng ta cần chuyển hướng YUM đến CentOS Vault - kho lưu trữ chính thức dành cho các phiên bản CentOS đã cũ.
2. Hướng dẫn thực hiện chi tiết
Hãy làm theo các bước dưới đây để cấu hình lại các file .repo của bạn.
- Bước 1: Sao lưu file cấu hình hiện tại
Trước khi thực hiện bất kỳ thay đổi nào, hãy sao lưu các file cấu hình YUM của bạn để đảm bảo an toàn. Mở terminal và chạy lệnh sau:
sudo cp -r /etc/yum.repos.d/ /etc/yum.repos.d.bak - Bước 2: Chuyển hướng đến CentOS Vault
Chúng ta sẽ sử dụng lệnh sed để tự động tìm và thay thế các URL cũ bằng URL của CentOS Vault trong tất cả các file cấu hình. Thao tác này sẽ vô hiệu hóa mirrorlist và trỏ baseurl đến kho lưu trữ vault.
sudo sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
sudo sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-* - Bước 3: Dọn dẹp và tạo lại cache cho YUM
Sau khi thay đổi cấu hình, bạn cần xóa cache cũ và yêu cầu YUM tạo lại cache mới từ kho lưu trữ Vault.
sudo yum clean all
sudo yum makecache - Bước 4: Kiểm tra và cập nhật
Bây giờ, hãy thử chạy lại lệnh cập nhật. Nếu mọi thứ thành công, bạn sẽ thấy danh sách các gói được tải về từ địa chỉ vault.centos.org.
sudo yum updateHệ thống của bạn bây giờ đã có thể cập nhật và cài đặt các gói từ kho lưu trữ của CentOS 7.
Lời khuyên:
Mặc dù giải pháp này giúp bạn tiếp tục sử dụng CentOS 7, chúng tôi thực sự khuyên bạn nên lên kế hoạch nâng cấp lên một hệ điều hành được hỗ trợ như AlmaLinux hoặc Rocky Linux để đảm bảo nhận được các bản vá bảo mật quan trọng.