Những gì sau đây Các gói sau đây đã được giữ lại có nghĩa là gì?


72

Khi thực hiện, apt-get upgradeđôi khi tôi nhận được thông báo "Các gói sau đã được giữ lại". Ví dụ:

$ sudo apt-get upgrade                                                                                                
Reading package lists... Done                                                                                                          
Building dependency tree                                                                                                               
Reading state information... Done                                                                                                      
The following packages have been kept back:                                                                                            
  linux-headers-server linux-image-server linux-server                                                                                 
0 upgraded, 0 newly installed, 0 to remove and 3 not upgraded.

Điều này có nghĩa là chính xác? Rõ ràng các gói đã được giữ lại và không được cài đặt, nhưng tại sao?

Câu hỏi tiếp theo sẽ là: làm thế nào để nâng cấp các gói được giữ lại này?


2
Một lời giải thích rất rõ ràng có thể được tìm thấy ở đây: debian
ad dùng.org / article / 69 / ám

Tôi đã tóm tắt các ý kiến ​​và tài liệu kỹ thuật về: Các gói sau đã được giữ lại Tôi mời bạn đọc trong bài viết của tôi và để lại nhận xét để điều này có thể được cải thiện. Cảm ơn bạn đã dành thời gian để giải quyết kiến ​​nghị này. Ngoài ra, tôi muốn bạn tìm thấy bài viết hữu ích. Đây là liên kết của nó: guillermo.lopez.co.cr/ Từ Hãy trích dẫn bài viết này như một tài nguyên khi ai đó cần giúp đỡ về chủ đề này.
ithan

Câu trả lời:


63

Nếu nâng cấp sẽ yêu cầu một gói khác bị xóa hoặc gói mới được cài đặt, gói sẽ được "giữ lại". Như trang hướng dẫn nâng cấp apt-get giải thích:

Các gói hiện được cài đặt với các phiên bản mới có sẵn được lấy và nâng cấp; trong mọi trường hợp, các gói hiện đang được cài đặt được gỡ bỏ hoặc các gói chưa được cài đặt được lấy và cài đặt.

Để vượt qua điều này, bạn có thể làm

sudo apt-get --with-new-pkgs upgrade

Điều này cho phép các gói mới được cài đặt. Nó sẽ cho bạn biết những gói nào sẽ được cài đặt và nhắc bạn trước khi thực sự cài đặt.


6
Đẹp, đó là lời giải thích rõ ràng nhất. Trang người đàn ông bạn liên kết đến trên die.net không bao gồm tùy chọn --with-new-pkgs. Cái này có: manpages.debian.org/cgi-bin/man.cgi?query=apt-get
Charles Roper

1
Nhưng tôi đã cập nhật và nâng cấp tất cả các gói, vậy tại sao các gói đó không nâng cấp?
Nullpulum

2
@Nullpulum "apt-get nâng cấp" sẽ không cài đặt các gói mới (trừ khi bạn cung cấp cờ). Nếu không có cờ, nếu việc nâng cấp gói hiện có sẽ yêu cầu cài đặt gói mới, việc nâng cấp đó sẽ không xảy ra.
Chad

18

Báo cáo cơ bản là apt-get upgradesẽ không nâng cấp các gói mà người quản lý gói muốn xóa và cài đặt lại gói. Điều này xảy ra trong các bản vá bảo mật rất nhiều bởi vì, thông thường, nó thực sự là các thư viện tiền thân cho việc biên dịch phân phối cuối cùng đã được vá. Chức năng "đi trước và xóa mọi thứ" vẫn tồn tại apt-get dist-upgradenhưng hãy chắc chắn chạy apt-get updatetrước chỉ trong trường hợp những kẻ ngược dòng tìm ra thứ gì đó kể từ lần cuối bạn thử. Đôi khi họ bỏ lỡ mọi thứ và sửa chữa chúng một cách nhanh chóng.


3

Hãy thử apt-get dist-upgrade. Từ trang người đàn ông:

dist-upgrade

dist-upgradeNgoài việc thực hiện chức năng của upgrade, cũng xử lý thông minh các phụ thuộc thay đổi với các phiên bản mới của gói; apt-get có một hệ thống giải quyết xung đột "thông minh" và nó sẽ cố gắng nâng cấp các gói quan trọng nhất với chi phí của các gói ít quan trọng hơn nếu cần thiết. Vì vậy, dist-upgradelệnh có thể loại bỏ một số gói. Các /etc/apt/sources.listtập tin có chứa một danh sách các địa điểm mà từ đó để lấy các tập tin gói mong muốn. Xem thêm apt_preferences(5)để biết cơ chế ghi đè cài đặt chung cho các gói riêng lẻ.

Mặc dù lệnh này được sử dụng để nâng cấp lên phiên bản chính mới của hệ điều hành, nhưng nó không thực hiện điều này theo mặc định. Tập tin /etc/apt/sources.listphải được thay đổi thành phiên bản mới và sau đó a dist-upgradeđược sử dụng.


0

Cứ làm đi

sudo apt-get install linux-headers-server linux-image-server linux-server

để nâng cấp các gói được tổ chức.

Sau đó chạy apt-get upgradevà bạn sẽ ổn thôi.


5
Điều này là không đúng. apt-get dist-upgradesẽ KHÔNG nâng cấp hệ điều hành của bạn lên phiên bản mới. man apt-getđể thấy sự khác biệt
BT643

@ BT643 (và những người nâng cao nhận xét) vui lòng tải xuống câu trả lời sai thay vì chỉ để lại nhận xét. Đặc biệt là những câu trả lời sai một cách trắng trợn như thế này mà tồn tại một quan niệm sai lầm phổ biến. Chúng tôi phụ thuộc vào phiếu bầu để đưa nội dung tốt lên phía trước nhưng cũng để đẩy nội dung sai xuống.
terdon

1
@terdon Tôi đã thử nhưng không có đủ đại diện :) (cần 125 để tải xuống).
BT643

Không phải phần đầu tiên (cài đặt / nâng cấp chỉ là các gói bị giữ lại) là một câu trả lời hay sao? Sau đó tiến hành nâng cấp. Xóa lời khuyên vi phạm về việc nâng cấp âm thanh có vẻ là một ý tưởng tốt hơn là chỉ bỏ qua một câu trả lời đúng một phần ...
Xen2050

Trước tiên hãy xem xét sử dụng: sudo apt-get --with-new-pkgs upgradesẽ không có tác dụng phụ khiến các gói được đánh dấu là cài đặt thủ công
l --marc l
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.