Một ngày nọ, tôi đang cập nhật Ubuntu của mình . Tôi thích cách cập nhật hệ thống bằng dòng lệnh bằng cách sử dụng kết hợp giữa apt update và apt upgrade.
Tôi đã gặp một lỗi cập nhật lạ trong Ubuntu lần này. Nó cho tôi thấy rằng có những gói có thể được nâng cấp nhưng nó không thể nâng cấp những gói đó do lỗi đọc:
The following packages have been kept back:
Đây là ảnh chụp màn hình của lỗi tôi gặp phải:

Như bạn có thể thấy trong hình trên, sự cố phát sinh do fwupd là daemon của trình quản lý cập nhật firmware trong Ubuntu và các Linux khác.
Hãy để tôi chỉ cho bạn cách xử lý lỗi này trong Ubuntu và các bản phân phối Linux khác như Linux Mint , Debian , Kali Linux, v.v.
Sửa lỗi “The following packages have been kept back:“
Cách khắc phục lỗi này thực sự đơn giản. Tất cả những gì bạn phải làm là sử dụng lệnh apt install với gói hoặc các gói trong message lỗi:
sudo apt install package_name
Nếu bạn sử dụng cài đặt apt trên một gói đã được cài đặt, nó sẽ được cập nhật. Trong trường hợp của tôi, gói fwupd đã được giữ lại. Vì vậy, đây là những gì tôi đã thử:
sudo apt install fwupd
Như bạn có thể thấy trong ảnh chụp màn hình bên dưới, nó gợi ý hai gói sẽ được cài đặt và sau đó các gói đó cũng được cài đặt.

Giải thích: Lý do cho lỗi “The following packages have been kept back:” và cách khắc phục lỗi này
Bản sửa lỗi được đề xuất ở trên sẽ giải quyết được vấn đề cho bạn. Nhưng bạn có tò mò điều gì đã gây ra lỗi và nó đã được khắc phục như thế nào không? Hãy để tôi giải thích điều đó cho bạn.
Thông thường, khi bạn chạy lệnh apt update và apt upgrade, nó sẽ cập nhật tất cả các gói đã cài đặt lên phiên bản mới hơn có sẵn của chúng.
Tuy nhiên, nếu các phần phụ thuộc của gói đã cài đặt đã bị thay đổi đến mức yêu cầu cài đặt các gói mới, thì gói đã cài đặt sẽ không được nâng cấp với bản cập nhật hệ thống và bạn sẽ thấy lỗi gói được lưu lại.
Trong ví dụ ở đây, khi fwupd được cài đặt ban đầu, tpm2-tools và tpm2-abrmd không được cài đặt và fwupd không phụ thuộc vào nó. Sau đó, phiên bản fwupd mới hơn yêu cầu cài đặt các gói mới này.
Đây là cơ chế trong trình quản lý gói APT của Debian thông báo cho bạn biết rằng một gói đã được cài đặt bây giờ cần phải cài đặt thêm gói mới làm gói phụ thuộc. Khi bạn cập nhật thủ công và riêng lẻ các gói này, bạn sẽ thấy gói mới nào sẽ được cài đặt và lỗi không hiển thị nữa.
Bạn cũng có thể sử dụng apt full-lift / apt-get dist-upgrade thay vì apt install package_name trong trường hợp này nhưng tôi không khuyên bạn nên làm như vậy. Bản nâng cấp đầy đủ apt có thể tự động loại bỏ các gói mà nó cho là không cần thiết trong khi xử lý các phần phụ thuộc. Điều này có thể dẫn đến những tình huống không mong muốn.
Bạn đã sửa lỗi này chưa?
Giải pháp này có giúp bạn loại bỏ lỗi “The following packages have been kept back:” không? Nếu không, hãy cho tôi biết và tôi sẽ cố gắng giúp bạn thêm.