Trong trường hợp của tôi, tôi thấy rằng đã xảy ra sự cố và nhiều gói đã được cập nhật mà không bị xóa các phiên bản cũ hơn. Nỗ lực xây dựng lại RPM DB không giải quyết được vấn đề.
Một giải pháp đang hoạt động đơn giản là xóa phiên bản cũ hơn và cài đặt lại phiên bản mới hơn.
Nhìn vào đầu ra lỗi, mỗi dòng về cơ bản cho biết Gói Cập nhật trùng lặp với Gói trước , nghĩa là:
kernel-headers-2.6.32-431.17.1.el6.x86_64 is a duplicate with kernel-headers-2.6.32-358.23.2.el6.x86_64
Những điều sau đây có vẻ hiệu quả với tôi:
rpm --erase --nodeps --noscript kernel-headers-2.6.32-358.23.2.el6.x86_64
Lệnh yêu cầu RPM xóa Gói trước đó cụ thể mà không xóa bất kỳ phụ thuộc nào hoặc chạy bất kỳ tập lệnh nào được liên kết với tác vụ.
Tiếp theo gói cần phải được cài đặt lại:
yum reinstall kernel-headers
Lần này không cần chỉ định phiên bản gói chính xác vì yum sẽ tìm phiên bản mới nhất và cài đặt lại.
Yum sẽ xuất kết quả của hoạt động Kiểm tra Yum của nó trong mỗi lần chạy. Tiếp tục làm điều này cho đến khi không có gói trùng lặp được liệt kê.
Lưu ý rằng bạn có thể truy vấn cơ sở dữ liệu RPM trực tiếp. Ví dụ, nếu bạn thấy nhiều thông báo bao gồm chuỗi glibc, bạn có thể nhận được một danh sách đơn giản các gói có chuỗi đó trong tên của chúng như sau:
rpm -qa | grep glibc | sort
Mà có thể tạo ra một cái gì đó như:
glibc-2.17-157.el7_3.5.x86_64
glibc-common-2.17-157.el7_3.4.x86_64
glibc-common-2.17-157.el7_3.5.x86_64
glibc-devel-2.17-157.el7_3.5.x86_64
glibc-headers-2.17-157.el7_3.5.x86_64
Bây giờ rõ ràng hơn là phải loại bỏ phiên bản trước của glibc-common:
rpm --erase --nodeps --noscript glibc-common-2.17-157.el7_3.4.x86_64
yum reinstall glibc-common