Я пытаюсь создать собственный образ, используя diskimage-builder
и, среди прочего, этот инструмент обновляет все пакеты в образе до последней версии, включая ядро. Он также использует package-cleanup
удалить старые ядра.
Тем не мение, package-cleanup
имеет логику, предотвращающую удаление текущего ядра; это имеет смысл на обычном хосте, но когда вы работаете внутри chroot для создания файловой системы, это не так.
Временно исправляем package-cleanup
отключить эту логику показывает, что yum
имеет ту же логику, и я верю rpm
тоже!
Соответствующая информация о дистрибутиве / пакете:
Теперь, очевидно, если я обновлю хост сборки до последней версии ядра, эта проблема исчезнет ... но только до тех пор, пока версия ядра на хосте и в исходном образе снова не станет одинаковой и не будет выпущено более новое ядро, которое diskimage-builder
затем добавляет.
Чтобы еще больше усложнить ситуацию, когда diskimage-builder
устанавливает более новое ядро, grubby
запускается для создания соответствующей конфигурации grub, но это не удается по связанным причинам; он обращает внимание на работающее в данный момент ядро, даже если это не имеет значения. Это означает, что в новом образе не только остается старое ядро, но и по умолчанию. И так случилось, что 3.10.0-957.12.2 не загружается на одной из моих целевых систем (VMware), поэтому для меня это такая проблема.
Есть ли здесь лучшее решение? Могу я заставить package-cleanup
, yum
, или rpm
как-нибудь удалить старый пакет ядра? (В идеале package-cleanup
, поскольку он уже содержит логику для динамического определения, какие ядра оставить / удалить.)
(Инструменты, которые пытаются защитить вас от неправильных действий, на самом деле должны позволять вам переопределять их, когда вы знаете, что делаете. Кроме того, инструменты управления пакетами не должны ссылаться на текущую рабочую среду, поскольку это может быть не конечным цель.)