Показывает ли список обновлений sudo apt обновления ядра?

Мне было интересно, показывает ли

sudo apt list --upgradeable 

обновления ядра в списке или нет?

8
задан 25 November 2016 в 03:07

3 ответа

Да это делает. После выполнения sudo apt-get update если существует обновление ядра, то apt list --upgradeable должен показать некоторые пакеты как linux-headers-4.4.0-something и linux-image-4.4.0-something.

6
ответ дан 25 November 2016 в 03:07

На самом деле я не вижу пакетов ядра через apt list --upgradable. Сравните:

apt list --upgradable | wc -l
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
141

Против:

apt --recon upgrade | grep ^Inst | wc -l
WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
145

И последнее значение соответствует результату обновления, когда я проверяю журнал /var/log/apt/history и вычисляю значения для Install: и Upgrade: строки. Пакеты ядра помещаются в Install: строка туда.

1
ответ дан 29 September 2019 в 14:34

Только обновленные метапакеты ядра обычно показывают в выводе apt list --upgradeable.

Почти все обновления ядра обеспечиваются как новые пакеты, а не как новые версии существующих пакетов, таким образом, можно сохранить старые ядра некоторое время в случае, если обновление повреждает что-то и необходимо загрузить систему с более старым ядром. Это пакеты, которые имеют номера версий на их имена, как linux-image-4.15.0-60-generic.

Для создания его так, Вы получаете такие обновления пакетов, существуют метапакеты ядра, что сервер единственная цель объявить пакеты, которые на самом деле обеспечивают ядро как зависимости. Когда новые пакеты ядра выпущены, метапакеты самостоятельно обновляются для зависимости от него.

Те метапакеты показывают как обновляемые в выводе apt list --upgradeable, который корректен, потому что Вам уже установили их, и новая версия доступна. Новые пакеты не перечислены здесь, потому что у Вас еще нет их. Как pbojczuk наблюдаемый, те пакеты не будут обновленными, они собираются быть установленными.

Для тех пакетов возможно появиться в выводе apt list --upgradeable, но редкий. Это могло произойти, если бы обновление было выпущено для решения проблемы, которая не изменяет само ядро. Например, если бы была ошибка в установке или сценариях удаления для пакета, который обеспечивает файлы ядра, то фиксация для той ошибки была бы, вероятно, обеспечена как обновление того пакета, не как отдельный пакет ядра с версией на имя.


Вы видите то, что будет на самом деле сделано путем выполнения apt -s upgrade.

После выполнения sudo apt update получать информацию о том, что пакеты доступны от где и в какой версии, выполняя apt list --upgradeable перечисляет метапакеты, но не пакеты, которые на самом деле обеспечивают новое ядро и связанные файлы:

ek@Kip:~$ apt list --upgradeable
Listing... Done
linux-generic/bionic-proposed 4.15.0.60.62 i386 [upgradable from: 4.15.0.59.61]
linux-headers-generic/bionic-proposed 4.15.0.60.62 i386 [upgradable from: 4.15.0.59.61]
linux-image-generic/bionic-proposed 4.15.0.60.62 i386 [upgradable from: 4.15.0.59.61]
linux-libc-dev/bionic-proposed 4.15.0-60.67 i386 [upgradable from: 4.15.0-59.66]

Если бы Вы хотите видеть все, что было бы установлено путем выполнения sudo apt upgrade на самом деле не выполняя его, можно сказать apt выполнять моделирование, с помощью apt -s upgrade:

ek@Kip:~$ apt -s upgrade
NOTE: This is only a simulation!
      apt needs root privileges for real execution.
      Keep also in mind that locking is deactivated,
      so don't depend on the relevance to the real current situation!
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
The following NEW packages will be installed:
  linux-headers-4.15.0-60 linux-headers-4.15.0-60-generic linux-image-4.15.0-60-generic
  linux-modules-4.15.0-60-generic linux-modules-extra-4.15.0-60-generic
The following packages will be upgraded:
  linux-generic linux-headers-generic linux-image-generic linux-libc-dev
4 upgraded, 5 newly installed, 0 to remove and 0 not upgraded.
Inst linux-modules-4.15.0-60-generic (4.15.0-60.67 Ubuntu:18.04/bionic-proposed [i386])
Inst linux-image-4.15.0-60-generic (4.15.0-60.67 Ubuntu:18.04/bionic-proposed [i386])
Inst linux-modules-extra-4.15.0-60-generic (4.15.0-60.67 Ubuntu:18.04/bionic-proposed [i386])
Inst linux-generic [4.15.0.59.61] (4.15.0.60.62 Ubuntu:18.04/bionic-proposed [i386]) []
Inst linux-image-generic [4.15.0.59.61] (4.15.0.60.62 Ubuntu:18.04/bionic-proposed [i386]) []
Inst linux-headers-4.15.0-60 (4.15.0-60.67 Ubuntu:18.04/bionic-proposed [all]) []
Inst linux-headers-4.15.0-60-generic (4.15.0-60.67 Ubuntu:18.04/bionic-proposed [i386]) []
Inst linux-headers-generic [4.15.0.59.61] (4.15.0.60.62 Ubuntu:18.04/bionic-proposed [i386])
Inst linux-libc-dev [4.15.0-59.66] (4.15.0-60.67 Ubuntu:18.04/bionic-proposed [i386])
Conf linux-modules-4.15.0-60-generic (4.15.0-60.67 Ubuntu:18.04/bionic-proposed [i386])
Conf linux-image-4.15.0-60-generic (4.15.0-60.67 Ubuntu:18.04/bionic-proposed [i386])
Conf linux-modules-extra-4.15.0-60-generic (4.15.0-60.67 Ubuntu:18.04/bionic-proposed [i386])
Conf linux-generic (4.15.0.60.62 Ubuntu:18.04/bionic-proposed [i386])
Conf linux-image-generic (4.15.0.60.62 Ubuntu:18.04/bionic-proposed [i386])
Conf linux-headers-4.15.0-60 (4.15.0-60.67 Ubuntu:18.04/bionic-proposed [all])
Conf linux-headers-4.15.0-60-generic (4.15.0-60.67 Ubuntu:18.04/bionic-proposed [i386])
Conf linux-headers-generic (4.15.0.60.62 Ubuntu:18.04/bionic-proposed [i386])
Conf linux-libc-dev (4.15.0-60.67 Ubuntu:18.04/bionic-proposed [i386])

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

Вывод, который я показал, от машины на который -proposed репозитории включены, и новые ядра установлены от них. (Обратите внимание, что это обычно не хорошая идея о производственных машинах, потому что те ядра вполне еще не полностью тестируются на Ubuntu.), Но Вы будете видеть, что подобный вывод с полностью стабильными пакетами ядра обеспечивает в -security или -updates.

1
ответ дан 29 September 2019 в 14:34

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

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