Fix lỗi Failed to download metadata for repo AppStream
Hướng dẫn Linux Server · cập nhật 27/07/2026
Để sửa lỗi Failed to download metadata for repo 'AppStream' trên CentOS 8, bạn trỏ kho gói từ mirror.centos.org sang vault.centos.org bằng hai lệnh sed, rồi chạy lại yum update. Mất chưa tới một phút.
Lỗi hiện ra mỗi lần chạy yum hoặc dnf:
Failed to download metadata for repo 'AppStream'
CentOS-8: AppStream 70 B/s | 38 B 00:00
Error: Failed to download metadata for repo 'AppStream': Cannot prepare internal mirrorlist: No URLs in mirrorlist
- Vào thư mục chứa file cấu hình kho gói.
- Chạy hai lệnh sed để đổi địa chỉ kho.
- Chạy lại yum update.
CentOS 8 hết hỗ trợ từ 31/12/2021. Bài này giúp máy chủ cũ cài được gói, nhưng kho vault không còn nhận bản vá mới. Nên tính đường chuyển hệ điều hành.
Vì sao CentOS 8 không tải được metadata
CentOS 8 ngừng hỗ trợ ngày 31/12/2021. Sau mốc đó, Red Hat gỡ toàn bộ kho gói khỏi mirror.centos.org và chuyển vào kho lưu trữ vault.centos.org. File cấu hình trên máy vẫn trỏ địa chỉ cũ nên yum hỏi danh sách mirror và nhận về danh sách rỗng, dẫn tới thông báo No URLs in mirrorlist.
Đây không phải lỗi mạng hay lỗi cấu hình sai. Máy đang hỏi đúng địa chỉ, chỉ là địa chỉ đó không còn gì để trả về.
Cách sửa lỗi AppStream trên CentOS 8
Cách xử lý là sửa file cấu hình để yum hỏi thẳng kho lưu trữ thay vì hỏi danh sách mirror. Ba bước dưới đây chạy bằng quyền root qua SSH, không cần khởi động lại máy hay dừng dịch vụ nào.
1. Vào thư mục cấu hình kho gói
cd /etc/yum.repos.d/
Thư mục này chứa các file CentOS-*.repo khai địa chỉ kho gói cho yum.
2. Trỏ kho sang vault.centos.org
sed -i 's/mirrorlist/#mirrorlist/g' /etc/yum.repos.d/CentOS-*
sed -i 's|#baseurl=http://mirror.centos.org|baseurl=http://vault.centos.org|g' /etc/yum.repos.d/CentOS-*
Lệnh đầu vô hiệu hoá dòng mirrorlist bằng cách thêm dấu thăng. Lệnh thứ hai bỏ dấu thăng ở dòng baseurl và đổi tên miền sang vault.
3. Chạy lại yum update
yum update -y
Yum giờ tải được danh sách gói. Lần chạy đầu lâu hơn bình thường vì phải dựng lại bộ nhớ đệm metadata.
Kiểm tra kết quả
Xác nhận kho đã trỏ đúng và yum hoạt động lại bằng hai lệnh sau. Nếu cả hai chạy trơn thì máy đã cài được gói bình thường.
yum repolist
yum install -y wget
yum repolist phải liệt kê các kho với số gói khác 0. Lệnh cài thử wget chạy xong không báo lỗi nghĩa là kho hoạt động.
Xử lý các lỗi thường gặp
Ba tình huống dưới đây hay gặp sau khi chạy hai lệnh sed.
Vẫn báo lỗi cũ. Bộ nhớ đệm metadata còn giữ kết quả hỏng. Xoá rồi thử lại:
yum clean all
yum makecache
Báo 404 Not Found khi tải gói. Kho vault chỉ giữ bản cuối cùng của CentOS 8, tức 8.5.2111. Nếu máy đang ở bản thấp hơn, sửa file repo để trỏ thẳng vào thư mục 8.5.2111 thay vì biến $releasever.
Kho của bên thứ ba cũng lỗi. Hai lệnh sed chỉ sửa file CentOS-*. Kho EPEL hay Remi phải sửa riêng, hoặc tắt tạm bằng --disablerepo.
Nên chuyển sang hệ điều hành nào
Sửa xong thì yum chạy lại được, nhưng kho vault chỉ là bản lưu trữ đóng băng. Không có bản vá bảo mật mới, và mọi lỗ hổng phát hiện sau 2021 đều không được vá.
Nếu máy chủ còn chạy dịch vụ thật, nên chuyển sang AlmaLinux 8 hoặc Rocky Linux 8. Cả hai tương thích nhị phân với CentOS 8, chuyển được bằng script chính thức mà không phải cài lại máy. Kỹ thuật BizMaC hỗ trợ chuyển khi bạn gửi yêu cầu từ tài khoản đang dùng dịch vụ.