Что означает «Следующие пакеты были сохранены»?


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/… Пожалуйста, указывайте эту статью как ресурс, когда кому-то нужна помощь по этой теме.
— итан

Ответы:


63

Если для обновления потребуется удалить другой пакет или установить новый пакет, этот пакет будет «сохранен». Как объясняет man-страница для обновления 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" не будет устанавливать новые пакеты (если вы не укажете флаг). Без флага, если обновление существующего пакета потребует установки нового пакета, это обновление не произойдет.
— Чад

Это не работает для меня (Ubuntu 19.04) и приводит к тому же сообщению, что и «apt 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 используется.


1

Просто сделать

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 (и те, кто проголосовал за комментарий), пожалуйста, уменьшайте неправильные ответы, а не оставляйте комментарий. Особенно явно неправильные ответы, подобные этому, которые увековечивают общее заблуждение. Мы рассчитываем на то, что голоса принесут хороший контент на первый план, а также подтолкнут неверный контент.
— Тердон

1
@terdon Я пытался, но мне не хватает представителей :) (нужно 125, чтобы понизить голос).
— BT643

Разве первая часть (установка / обновление только отложенных пакетов) не является хорошим ответом? Затем продолжите обновление. Удаление оскорбительного совета о dist-upgrade звучит как лучшая идея, чем просто опускание частично правильного ответа ...
— Xen2050

Сначала рассмотрите возможность использования: sudo apt-get --with-new-pkgs upgradeчто не будет иметь побочных
— эффектов, так
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.