Що означає "Наступні пакети збережено"?


72

Роблячи apt-get upgradeІноді, я інколи отримую повідомлення про те, що "Наступні пакунки збережені назад". Наприклад:

$ 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.

Що це означає саме? Очевидно, що пакети були затримані та не встановлені, але чому?

Наступним питанням буде: як можна оновити ці збережені назад пакети?


2
Дуже чітке пояснення можна знайти тут: debian-administration.org/article/69/…
jplandrain

Я узагальнив коментарі та технічну документацію щодо: Наступні пакунки збереглися назад. Запрошую вас прочитати в моїй статті та залишити коментарі, щоб це можна було покращити. Дякуємо за Ваш час для вирішення цієї петиції. Також бажаю вам знайти корисну публікацію. Це його посилання: guillermo.lopez.co.cr/… Будь ласка, цитуйте цю статтю як ресурс, коли комусь потрібна допомога з цієї теми.
ithan

Відповіді:


63

Якщо оновлення вимагатиме видалення іншого пакета або встановлення нового пакета, пакет буде "збережено назад". Як пояснює головна сторінка для оновлення apt-get :

Пакети, які зараз встановлені з новими версіями, доступні для отримання та оновлення; в даний час жодним чином не видаляються встановлені пакети, або пакети, які не встановлені, отримані та встановлені.

Щоб пройти це, ви можете зробити

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

Це дозволяє встановлювати нові пакети. Це дозволить вам дізнатися, які пакунки будуть встановлені, і підкаже вам, перш ніж здійснити інсталяцію.


6
Приємно, це все найясніше пояснення. Сторінка man, на яку ви пов’язані на die.net, не містить опції --with-new-pkgs. Це: manpages.debian.org/cgi-bin/man.cgi?query=apt-get
Чарльз Ропер

1
Але я оновлюю та оновлюю всі пакети, то чому б цей пакет не оновити?
Nullpointer

2
@Nullpointer "apt-get upgrade" не встановлюватиме нові пакети (якщо ви не вказали прапор). Без прапора, якщо оновлення існуючого пакета вимагатиме встановлення нового пакету, оновлення не відбудеться.
Чад

18

Основний звіт полягає в тому apt-get upgrade, що не буде оновлено пакунки, для яких менеджер пакунків хотів би видалити та перевстановити пакет. Це відбувається в патчах безпеки багато, тому що часто це були бібліотеки, які були попередником остаточної компіляції, що розподіляється. Функціонал "продовжуй і видаляй речі" працює, apt-get dist-upgradeале обов'язково запускай apt-get updateпершим, на випадок, якщо хлопці вище за течію щось зрозуміли з моменту, коли ти востаннє намагався. Іноді вони пропускають речі і швидко їх виправляють.


3

Спробуйте apt-get dist-upgrade. На чоловіковій сторінці:

dist-upgrade

dist-upgradeна додаток до виконання функції upgrade, також інтелектуально обробляє зміни, що змінюються, з новими версіями пакетів; apt-get має "розумну" систему вирішення конфліктів, і вона спробує оновити найважливіші пакети за рахунок менш важливих пакетів, якщо це необхідно. Отже, dist-upgradeкоманда може видалити деякі пакети. /etc/apt/sources.listФайл містить список місць , з яких можна витягти потрібні файли пакета. Дивіться також apt_preferences(5)про механізм зміни загальних параметрів для окремих пакетів.

У той час як ця команда буде використовуватися для оновлення до нової основної версії операційної системи, це НЕ робити це за замовчуванням. Файл /etc/apt/sources.listпотрібно змінити на нову версію, а потімdist-upgrade використовувати a .


0

Просто роби

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

оновити збережені пакети.

Тоді біжіть apt-get upgradeі вам буде добре.


5
Це неправильно. НЕapt-get dist-upgrade буде оновлено вашу ОС до нової версії. щоб побачити відмінності. man apt-get
BT643

@ BT643 (і ті, хто підтримав коментар), будь ласка, спростуйте неправильні відповіді, а не просто залишайте коментар. Особливо кричущо невірні відповіді на кшталт цієї, що увічнили поширену помилку. Ми залежимо від голосів, щоб викласти хороший вміст на фронт, а також відтіснити неправильний вміст.
terdon

1
@terdon Я намагався, але мені не вистачає респ :) (потрібно 125, щоб зняти участь).
BT643

Чи не перша частина (встановити / оновити лише затримані пакети) є гарною відповіддю? Потім продовжуйте оновлення. Видалення образливих порад щодо дистриб'юторського оновлення звучить як краща ідея, ніж просто заборона частково правильної відповіді ...
Xen2050

Спочатку подумайте про використання: sudo apt-get --with-new-pkgs upgradeщо не вплине на спричинення того, що пакети будуть позначені як встановлені вручну
l --marc l
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.