Đầu ra của apt-get upgrade
là:
The following packages have been kept back:
certbot python-acme python-certbot python-certbot-apache python-cryptography python-openssl
Điều đó có nghĩa là gì? Tôi có nên hành động? Nếu vậy thì sao?
Đầu ra của apt-get upgrade
là:
The following packages have been kept back:
certbot python-acme python-certbot python-certbot-apache python-cryptography python-openssl
Điều đó có nghĩa là gì? Tôi có nên hành động? Nếu vậy thì sao?
Câu trả lời:
Tôi đã có cùng một vấn đề, nhiều lần. KHÔNG làm
sudo apt-get dist-upgrade
trước. Rất quan trọng. **** LƯU Ý: Giải pháp này dành cho các máy dựa trên Debian nhưng sẽ không hoạt động trên KDE Neon . Để cập nhật KDE Neon, bạn phải sử dụngsudo pkcon update
. ****
Nó có thể làm cho hệ thống của bạn rất không ổn định, các chương trình có thể bị sập và bạn có thể mất rất nhiều chức năng trong HĐH.
Bạn PHẢI cài đặt từng gói riêng lẻ, TUY NHIÊN , trong quá trình đó, các phụ thuộc khác cũng sẽ được cài đặt tự động và vấn đề của bạn sẽ được giải quyết chỉ sau vài phút.
Tôi đã không có vấn đề với giải pháp sau đây. Nó khá nhanh chóng và dễ dàng.
apt list --upgradable
sudo apt-get install package-name-here
apt list --upgradable
apt list --upgradable
sau mỗi gói cài đặt. Điều này chỉ nên mất một vài phút để hoàn thành.
sudo apt-get autoclean
sudo apt-get update && sudo apt-get dist-upgrade
Nếu giải pháp này hiệu quả với bạn, xin đừng quên nâng cấp nó để giải pháp chính xác có sẵn cho người khác và nằm ở đầu danh sách câu trả lời.
Nếu vì lý do nào đó, giải pháp này không phù hợp với bạn, vui lòng xem câu trả lời của người dùng GAD3R bên dưới. Nó cũng là một giải pháp tốt.
Cảm ơn.
Điều đó có nghĩa là gì?
The following packages have been kept back:
Câu trả lời là đây
Điều này có nghĩa là có những phiên bản mới của các gói này sẽ không được cài đặt vì một số lý do. Lý do có thể là phụ thuộc bị hỏng (gói mà phụ thuộc không có phiên bản để tải xuống) hoặc phụ thuộc mới (gói đã phụ thuộc vào gói mới kể từ phiên bản trước).
Tôi có nên hành động?
Bạn cần sử dụng dist-upgrade
để cài đặt các phụ thuộc mới và nâng cấp các gói:
sudo apt-get dist-upgrade
Vấn đề có thể được giải quyết bằng cách chạy dist-upgrade
nếu không bạn cần phải:
Sửa lỗi phụ thuộc bị hỏng
sudo apt-get -f install
Xóa một số gói không còn được cài đặt trên hệ thống của bạn:
sudo apt-get autoclean
Giữ gói mong muốn ở trạng thái chờ:
echo "<package_name> hold" | dpkg --set-selections
Cấu hình lại gói được đặt tên:
dpkg-reconfigure <package_name>
Đầu tiên như đã đề cập ở trên, xin vui lòng KHÔNG nâng cấp bất kỳ hệ thống sản xuất nào! Mặc dù nâng cấp từ xa sẽ "giải quyết" các gói được giữ lại, nhưng nó chắc chắn không phải là giải pháp cho vấn đề này và rất có thể sẽ khiến bạn đau buồn hơn là tốt nếu bạn chạy nó mà không biết những tác động trên hệ thống của mình.
Nếu nâng cấp gói yêu cầu cài đặt các gói bổ sung, nó sẽ được "giữ lại" khi chạy sudo apt-get upgrade
.
Như đã đề cập ở trên, bạn có thể cài đặt các gói "giữ lại" này bằng tay bằng cách chạy rõ ràng sudo apt-get install [paste kept back packages here]
nhưng điều này sẽ đánh dấu các gói này là "cài đặt thủ công" thường không phải là những gì chúng ta muốn.
Để tự động cài đặt bất kỳ gói bổ sung nào cần thiết để nâng cấp các gói "giữ lại" trong khi không đánh dấu các gói "giữ lại" như cài đặt thủ công chỉ cần chạy sudo apt-get --with-new-pkgs upgrade
.
Tôi bao gồm câu trả lời này trong blog của tôi. Nếu bạn muốn thấy rằng bạn có thể đến đó từ liên kết này .
Lỗi trên rất phổ biến trong thiết bị đầu cuối Ubuntu khi bạn cố nâng cấp ( apt-get upgrade
). Điều này thường xảy ra vì sự phụ thuộc của một gói bạn cài đặt đã thay đổi. Để nâng cấp, trước tiên bạn cũng cần nâng cấp chúng. Vì vậy, nó rất đơn giản để giải quyết điều đó. Bạn sẽ có thể thấy các gói được giữ lại bên dưới thông báo lỗi này. như một ví dụ tôi có thể thấy các gói sau trong danh sách:
gnome-software gnome-software-common linux-generic linux-headers-generic
linux-image-generic snapd ubuntu-core-launcher ubuntu-software
Đừng chỉ gõ sudo apt-get dist-upgrade
Nó rất nguy hiểm vì nó cài đặt tất cả các bản cập nhật đang chờ xử lý. Điều này có thể đưa môi trường làm việc của bạn đến một trạng thái không ổn định cao.
Do đó, ý kiến của tôi là sử dụng nổi tiếng
sudo apt-get install [package]
Bạn có thể thay thế [package]
bằng bất kỳ gói nào trong thông báo lỗi. Ngoài ra, bạn có thể đặt chúng như là một danh sách (chỉ cần sao chép và dán nó). Như một ví dụ trong trường hợp của tôi, tôi có thể nhập
sudo apt-get install gnome-software gnome-software-common linux-generic linux-headers-generic
linux-image-generic snapd ubuntu-core-launcher ubuntu-software
Nếu bạn muốn làm
sudo apt-get dist-upgrade
vì một số lý do, chỉ cần đảm bảo kiểm tra danh sách các gói bằng cách sử dụng tùy chọn mô phỏng -s
( sudo apt-get -s dist-upgrade
) hoặc không có -s
tùy chọn bạn có thể chấm dứt thực thi trước khi chấp nhận. (bạn luôn có thể chọn tùy chọn không)
Gần đây, một bản cập nhật bảo mật Debian đã giới thiệu một vài phụ thuộc mới. Trong trường hợp này, linux-image
gói bắt đầu yêu cầu linux-firmware
, trong số một vài người khác. Vì vậy, họ đã được giữ lại và không được cài đặt bởi unattended-upgrade
. Sau một số thử nghiệm và xác nhận tôi đã có thể lựa chọn cài đặt chỉ những gói, trong khi không cảm động cập nhật đang chờ khác:
apt-get -yy install $(apt-get -s upgrade | sed '1,/kept back/d;/will be upgraded/,$d')
Bài viết này tóm tắt độc đáo tại sao điều này xảy ra:
Nếu các phụ thuộc đã thay đổi trên một trong các gói bạn đã cài đặt để gói mới phải được cài đặt để thực hiện nâng cấp thì nó sẽ được liệt kê là "giữ lại".
Giải pháp cho vấn đề này là cài đặt chúng một cách rõ ràng với
sudo apt install [packages]
Bạn có thể muốn đánh dấu các gói này là tự động cài đặt, trừ khi bạn quan tâm đến chúng và không chỉ để đáp ứng sự phụ thuộc.
sudo apt-mark auto [packages]
Để ngăn chặn điều này xảy ra ở nơi đầu tiên, tôi khuyên bạn nên sử dụng
sudo apt --with-new-pkgs upgrade
để nâng cấp các gói trong tương lai, cho phép cài đặt các gói mới để đáp ứng các thay đổi trong phụ thuộc.
--with-new-pkgs
! Và hãy để tôi nhấn mạnh một lần nữa rằng, " ĐỪNG nâng cấp bất kỳ hệ thống sản xuất nào! chạy nó mà không biết những tác động trên hệ thống của bạn. "