Мне было интересно, показывает ли
sudo apt list --upgradeable
обновления ядра в списке или нет?
Да это делает. После выполнения sudo apt-get update
если существует обновление ядра, то apt list --upgradeable
должен показать некоторые пакеты как linux-headers-4.4.0-something
и linux-image-4.4.0-something
.
На самом деле я не вижу пакетов ядра через 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:
строка туда.
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
.