Ubuntu 16.04 - пакеты ядра были сохранены

18

Я побежал, sudo apt-get upgradeи я получил это:

The following packages have been kept back:  
linux-generic-hwe-16.04 linux-headers-generic-hwe-16.04 linux-image-generic-hwe-16.04 linux-signed-generic-hwe-16.04 linux-signed-image-generic-hwe-16.04  
0 upgraded, 0 newly installed, 0 to remove and 5 not upgraded.

Я боюсь, что если я запустлю sudo apt-get dist-upgradeчто-нибудь, это может пойти не так и испортить мою установку Ubuntu. Я видел подобные вопросы здесь, но я думаю, что они отличаются от моей проблемы. Что я должен делать ?

NikosL24
источник
@ Ярон Я не думаю, что это то же самое.
NikosL24
Это то же самое. Прочитайте ответы.
pzkpfw
Apt никогда не выполняет операций, кроме тех, которые явно запрашиваются, без обратной связи с пользователем просто ответьте на вопрос n«нет» (или эквивалент языка, который использует Apt). Если вы все еще не уверены в том, что может произойти во время операции Apt, вы можете использовать параметры командной строки -s/ --simulate/ --just-print/ --dry-run/ --recon/, --no-actчтобы увидеть, что будет делать Apt, фактически не делая этого.
Дэвид Фёрстер

Ответы:

6

Хотя на общую тему « пакеты были сохранены » здесь уже отвечали: сегодня происходит нечто странное ... когда я выполнил sudo apt updateнесколько часов назад, для установки было предложено новое ядро ​​4.8.0-42. Я выполнил sudo apt dist-upgradeи после перезапуска системы (рабочая станция Ubuntu 16.10) запустил это новое ядро.

Несколько часов спустя я хотел обновить установку своего сервера Ubuntu, но новое ядро ​​не предлагалось. Чтобы перепроверить ситуацию, я восстановил вчерашний образ резервной копии системы clonezilla на рабочей станции Ubuntu, чтобы перепроверить ситуацию. На этот раз новое ядро ​​больше не предлагалось. Похоже, что ядро ​​4.8.0-42 было случайно перенесено в основной репозиторий и находится на пути к возвращению в предложенный репозиторий - возможно, Canonical обнаружил ошибку.

Вы выбрали HWE-стек Ubuntu 16.04, что означает, что вы используете ядро ​​4.8 Ubuntu 16.10. Следовательно, сначала все происходит с ядром в Ubuntu 16.10, что объясняет возможную задержку процесса обновления для репозиториев Ubuntu 16.04 LTS.

Когда вы запускаете sudo apt updateнемного позже, полученное сообщение больше не должно появляться. Вывод: не запускайте sudo apt dist-upgradeи дождитесь правильного обновления репозиториев, когда сообщение об отложенных пакетах ядра больше не появляется. Кстати, то же самое произошло с версией ядра 4.8.0-40 уже некоторое время назад.

сл-NetBox
источник
Индекс пакетов сообщает 4.8.0-42: packages.ubuntu.com/xenial-updates/linux-generic-hwe-16.04 ... какое зеркало вы используете?
Муру
Это определенно реальная вещь / проблема. Я обновил свою систему вчера, используя обычный процесс. Сегодняшние apt-cache policy linux-generic-hwe-16.04шоу *** 4.8.0.42.14 100 100 /var/lib/dpkg/status Другими словами, он осиротел.
Органический мрамор
@ cl-netbox Я сделал обновление sudo apt-get прямо сейчас, и пакеты исчезли.
NikosL24
12

Если обновление существующего пакета потребует установки «нового» пакета (например, еще не установленного), то этот конкретный существующий пакет будет «сохранен».

По словам человека apt-get , upgradeпо умолчанию не устанавливаются другие еще не установленные пакеты:

Обновить

... ни при каких обстоятельствах установленные в настоящее время пакеты не удаляются или пакеты, которые еще не установлены, извлекаются и устанавливаются

--with-новый-pkgs

Разрешить установку новых пакетов при использовании вместе с обновлением. Это полезно, если обновление установленного пакета требует установки новых зависимостей. Вместо того, чтобы задерживать пакет, обновление обновит пакет и установит новые зависимости. ...

поэтому --with-new-pkgsнеобходимо добавить, чтобы разрешить включение связанных других пакетов.

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

--with-new-pkgs позволяет устанавливать связанные "еще не установленные" пакеты с помощью интерактивной подсказки Y / n.

Кроме того, в качестве дополнительного преимущества, sudo apt-get --with-new-pkgs upgradeНЕ имеет побочного эффекта от того, что пакеты помечаются как установленные вручную.


Обновить

Ubuntu 18.04 предоставляет новый, оптимизированный синтаксис, aptкоторый можно использовать вместо apt-get.

sudo apt full-upgrade
л - знак л
источник
Целостное «если пакет требует установки нового пакета», тогда оно будет скрыто, для меня не имеет смысла. У меня есть свой собственный пакет deb, которым я управляю, и если я добавлю зависимость, которая не установлена ​​в моей системе, то при обновлении системы все равно будет обновлен пакет, и он не будет сохранен.
shreddish
@shreddish По моему опыту, некоторые sudo apt-get upgradeсценарии нуждались в информации --with-new-pkgsна странице man. Очевидно, что управляемый вами пакет deb или используемый тестовый сценарий не вызывают необходимость в --with-new-pkgsопции с добавленной неустановленной зависимостью ... по некоторым причинам, которые еще предстоит выяснить. Было бы интересно узнать, удалось ли вам определить причину.
19
2

Будучи относительно новым пользователем Ubuntu, я столкнулся с той же проблемой и, по-видимому, решил ее. Я обнаружил, что на Ubuntu Software было три ожидающих обновления с такими же именами, как те, что перечислены в терминале, как указано ниже:

The following packages have been kept back:
linux-generic-hwe-16.04 linux-headers-generic-hwe-16.04 linux-image-generic-hwe-16.04
0 upgraded, 0 newly installed, 0 to remove and 3 not upgraded.

После установки этих обновлений от Ubuntu Software я вернулся в Терминал и сделал sudo apt-get updateи sudo apt-get upgrade. Результат:

The following packages were automatically installed and are no longer required:
  linux-headers-4.8.0-41 linux-headers-4.8.0-41-generic linux-headers-4.8.0-44 linux-headers-4.8.0-44-generic linux-image-4.8.0-41-generic
  linux-image-4.8.0-44-generic linux-image-extra-4.8.0-41-generic linux-image-extra-4.8.0-44-generic
Use 'sudo apt autoremove' to remove them.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

Не будучи экспертом, я думаю, что установка обновлений из Ubuntu Software, похоже, решает проблему. И проблема, похоже, в том, что нет полного взаимодействия между программным обеспечением Ubuntu и пакетами обновления и обновления apt-get. Я уверен, что вы найдете лучшее объяснение, но я хотел поделиться этим с вами.

Хосе
источник
Благодарю. Как правило, Ubuntu советует нам не использовать aptitude или synaptic (удаляя их из установки по умолчанию. Может быть, это направление, в котором нужно искать ответы. Сейчас я попытаюсь избежать этих двух. Как только я увижу ваш ответ, я запускаю в Центр программного обеспечения, и это показало мне, что вещи, которые apt игнорирует. Поскольку ОС построена на Ubuntu, я остановлюсь на SC. Это немного похоже на спор с AppStore, когда homebrew предъявляет претензии.
nyxee
таким образом, этот центр программного обеспечения, кажется, очень плохое решение для тех из нас, у кого плохие убеждения. есть ли другой способ?
nyxee