Khắc phục lỗi YUM trên CentOS 7 sau khi End-of-Life (EOL)
Cách sửa lỗi yum update CentOS 7 sau khi EOL
Sau khi CentOS 7 End-of-Life, các server mirror mặc định đã bị tắt nên lệnh yum update sẽ báo lỗi 404 (Could not retrieve mirrorlist). Cách khắc phục nhanh nhất là sửa file repo để chuyển mirrorlist sang kho lưu trữ cũ vault.centos.org bằng lệnh sed, sau đó chạy yum clean all và yum makecache.
Kể từ ngày 30/06/2024, dự án CentOS 7 đã chính thức bị khai tử. Nếu bạn vẫn đang duy trì các ứng dụng trên VPS Linux chạy hệ điều hành này, bạn sẽ ngay lập tức đối mặt với việc không thể chạy lệnh yum update hay yum install để cài đặt phần mềm. Bài viết này sẽ hướng dẫn bạn cách "cấp cứu" hệ thống YUM để tiếp tục duy trì máy chủ.
1. Dấu hiệu lỗi YUM sau khi CentOS 7 EOL
Khi bạn cố gắng gõ lệnh cập nhật hoặc cài đặt một gói mới, quá trình sẽ bị treo một lúc và trả về màn hình Terminal các thông báo lỗi HTTP 404 như sau:
2. Nguyên nhân YUM không hoạt động
Hệ thống quản lý gói YUM hoạt động dựa trên các file cấu hình (nằm trong /etc/yum.repos.d/) trỏ đến địa chỉ mirrorlist.centos.org.
Vì CentOS 7 đã End-of-Life, tổ chức CentOS đã gỡ bỏ hoàn toàn các domain mirror mặc định này. Tuy nhiên, toàn bộ dữ liệu gói tin cũ không bị xóa mất mà được chuyển sang một kho lưu trữ đóng băng mang tên CentOS Vault. Do đó, YUM báo lỗi 404 đơn giản vì nó đang tìm dữ liệu ở sai địa chỉ.
3. Hướng dẫn sửa YUM repo (Step-by-step)
Để khắc phục, chúng ta cần cấu hình lại YUM để nó trỏ thẳng đến địa chỉ vault.centos.org.
- Bước 1: Sao lưu file cấu hình hiện tại
Thao tác này đảm bảo bạn có thể khôi phục lại nguyên trạng nếu có lỗi xảy ra.
BACKUP REPOsudo cp -r /etc/yum.repos.d/ /etc/yum.repos.d.bak - Bước 2: Thay thế URL bằng lệnh sed
Chạy 2 lệnh dưới đây để tự động tìm và thay thế (replace) toàn bộ URL cũ thành địa chỉ của CentOS Vault trong tất cả các file cấu hình.
UPDATE REPO URLsudo 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
Xóa các dữ liệu đệm cũ bị lỗi và tải lại danh sách gói mới từ Vault.
REBUILD CACHEsudo yum clean all sudo yum makecache
4. Kiểm tra YUM sau khi sửa
Để xác minh việc cấu hình đã thành công, hãy chạy lệnh liệt kê các kho lưu trữ, sau đó thử chạy lệnh update để hệ thống xác nhận (confirm) lại việc tải gói tin:
# Kiểm tra danh sách repo
yum repolist
# Chạy thử lệnh update
sudo yum update -y
Nếu danh sách các kho (Base, Extras, Updates) hiện ra kèm theo số lượng gói tin mà không có báo lỗi màu đỏ nào, hệ thống của bạn đã được "cứu sống". Bạn có thể tiếp tục dùng yum install bình thường.
5. Giải pháp lâu dài: Có nên tiếp tục dùng CentOS 7?
Việc trỏ URL về CentOS Vault chỉ là biện pháp chữa cháy tạm thời. Kho Vault là dữ liệu "chết", nghĩa là từ nay về sau, máy chủ của bạn sẽ không bao giờ nhận được bất kỳ bản vá bảo mật nào nữa.
Đối với môi trường Production, việc chạy một hệ điều hành EOL là một rủi ro an ninh mạng khổng lồ. Lời khuyên từ các chuyên gia hệ thống là hãy lên kế hoạch sao lưu dữ liệu và Migrate (Di chuyển) sang các hệ điều hành thế hệ mới tương thích 1:1 với CentOS như AlmaLinux 8/9 hoặc Rocky Linux.
6. Kết luận
Bằng cách chuyển hướng Repository sang kho lưu trữ Vault, bạn đã có thể khắc phục thành công lỗi 404 của YUM trên CentOS 7. Hãy sử dụng khoảng thời gian "câu giờ" quý giá này để lên phương án chuyển đổi máy chủ lên các nền tảng mới an toàn hơn.
Đừng để dữ liệu doanh nghiệp gặp rủi ro trên một hệ điều hành đã khai tử. Tại VietHosting, chúng tôi cung cấp hạ tầng KVM VPS và Máy chủ riêng tối ưu sẵn cho AlmaLinux 9 và Rocky Linux, đi kèm dịch vụ hỗ trợ chuyển đổi dữ liệu an toàn.