Почему делает ядро 4.4.0-135, нуждаются в явном обновлении вместо обычного способного обновления?

На нескольких Ubuntu (16.04 LTS, Гостеприимные) системы apt list --upgradable говорит мне, что обновления ядра доступны:

$ apt list --upgradable
initramfs-tools/xenial-updates,xenial-updates 0.122ubuntu8.12 all [upgradable from: 0.122ubuntu8.11]
initramfs-tools-bin/xenial-updates 0.122ubuntu8.12 amd64 [upgradable from: 0.122ubuntu8.11]
initramfs-tools-core/xenial-updates,xenial-updates 0.122ubuntu8.12 all [upgradable from: 0.122ubuntu8.11]
linux-generic/xenial-updates 4.4.0.135.141 amd64 [upgradable from: 4.4.0.134.140]
linux-headers-generic/xenial-updates 4.4.0.135.141 amd64 [upgradable from: 4.4.0.134.140]
linux-image-generic/xenial-updates 4.4.0.135.141 amd64 [upgradable from: 4.4.0.134.140]

Однако a apt upgrade не обновляет ядро. Вместо этого явное apt upgrade linux-generic (или один из других пакетов), необходимо и установил бы 4.4.0-135 пакеты:

$ apt-get upgrade linux-generic --dry-run
  .. snip ..
The following NEW packages will be installed:
  linux-headers-4.4.0-135 linux-headers-4.4.0-135-generic linux-image-4.4.0-135-generic linux-image-extra-4.4.0-135-generic
The following packages will be upgraded:
  initramfs-tools initramfs-tools-bin initramfs-tools-core linux-generic linux-headers-generic linux-image-generic
6 upgraded, 4 newly installed, 0 to remove and 0 not upgraded.

Это необычно. Почему делает linux-generic внезапно потребность a -version пакет? -130, -133 и 134 для версий не были нужны явное обновление или a dist-upgrade, и, где установлено любой с apt upgrade или unattended-upgrade. Есть ли что-то специальное о 4.4.0-135?

(Примечание: Я знаю, как обновить ядро, я хотел бы знать почему 4.4.0-135 не следует за обычным apt upgrade политика)

0
задан 14 September 2018 в 02:41

2 ответа

В Ubuntu мы не обновляем Ядро. На самом деле мы устанавливаем более новую версию и сохраняем старую версию на всякий случай любого отказа в загружающейся системе с новым ядром и удаляем другие.

Поскольку Вы знаете устанавливающие новые пакеты, в то время как обновление системы берет использование дворца apt-get dist-upgrade.

linux-generic пакет является фиктивным пакетом. Фиктивные пакеты указывают на Вас на реальный пакет:

apt show linux-generic

Это будет всегда зависеть от последнего полного универсального ядра Linux и заголовков.

Таким образом вместо того, чтобы проверить на новую версию и установку его вручную, имея linux-generic будет заботиться об этом задании для нас.

В конце, когда Вы используете apt upgrade это установит новые пакеты в то время как apt-get потребности dist-upgrade устанавливать новые пакеты.

0
ответ дан 27 October 2019 в 23:26

apt != apt-get

Традиционное apt-get имеет следующие связанные с обновлением команды:

  • apt-get upgrade обновит пакеты до более новых версий, не устанавливая новый или удаляя другие пакеты.
  • apt-get dist-upgrade обновит пакеты также, но также может обработать обновления с изменяющимися зависимостями путем установки новый или удаления старых пакетов при необходимости.

Более новый интерфейс apt интерпретирует различные варианты:

  • apt upgrade конечно, пакеты обновлений снова, но это также может установить новые пакеты для выполнения изменяющихся зависимостей, в отличие от этого, apt-get upgrade. Это никогда не удаляет пакеты все же.
  • apt full-upgrade эквивалентно apt-get dist-upgrade в этом это может и установить и удалить пакеты, если это требуется измененными зависимостями более новой версии пакета.

Обновления ядра работают путем обновления метапакета (например. linux-image-generic) к более новой версии, которая затем имеет измененную зависимость от последнего linux-image-X.Y.Z-AAA-generic пакет. Это означает, apt-get upgrade никогда не может обновлять ядра, но apt-get dist-upgrade, apt full-upgrade или даже apt upgrade может.

1
ответ дан 27 October 2019 в 23:26

Другие вопросы по тегам:

Похожие вопросы: