remove-old-kernels не предлагает удалить ядра с другими flavour, которых нет в репозитории. Исключением должно быть только запущенное ядро. Это необходимо сделать, так как теперь происходит автоматический переход с flavour_pre на flavour_next при исчезновении из репозитория flavour_pre. Недопустимо накопление старых неподдерживаемых flavour_pre в системе.
remove-old-kernels -A?
(In reply to Vitaly Chikunov from comment #1) > remove-old-kernels -A? Не работает. Последние ядра других флейворов не удаляются даже с -b -A.
Баг что не работает опция -A?
Сейчас в c10f2 после переключения на 6.12 работает только такой сценарий: # remove-old-kernels -a -B # rpm -e kernel-image-un-def $(env LANG=C rpm -e kernel-image-un-def 2>&1 | grep kernel-modules |awk '{print $8}') По-моему, баг должен быть о том, что нужно удалять ядра всех флейворов (с -a) или указанных (-t), кроме текущего, если мы загрузились на численно более свежей версии, независимо от того, что там лежит или не лежит в репозитории.
(In reply to Vitaly Chikunov from comment #3) > Баг что не работает опция -A? Пробовал разные регистры, и --all, не работает.
В примере не опция -A.
(In reply to Leonid Krivoshein from comment #5) > (In reply to Vitaly Chikunov from comment #3) > > Баг что не работает опция -A? > Пробовал разные регистры, и --all, не работает. Сейчас перепроверил с -A, не обновляя пакетной базы, т.е. без dist-upgrade, всё работает. Возможно я натыкался на регрессию. Сейчас ещё раз перепроверю полное обновление.
-a -A -B запутывают я согласен что изъян UI/UX. Вроде опции осмысленные, если их понять, но когда "через месяц" забываешь, то уже не понятно что передавать и многие передают наугад. -B вообще не надо использовать никогда, надо её убрать.
Почему-то не работают: -t un-def -B -t un-def -a -B -a С -A работает, видимо был невнимателен.
(Продолжение про UI/UX): у -t тоже смысл меняется, это не то ядро которое мы хотим удалить а то которое хотим оставить. В общем эти утилиты это полная катастрофа.
(Ответ для Leonid Krivoshein на комментарий #4) > Сейчас в c10f2 после переключения на 6.12 работает только такой сценарий: > > # remove-old-kernels -a -B > # rpm -e kernel-image-un-def $(env LANG=C rpm -e kernel-image-un-def 2>&1 | > grep kernel-modules |awk '{print $8}') > > По-моему, баг должен быть о том, что нужно удалять ядра всех флейворов (с > -a) или указанных (-t), кроме текущего, если мы загрузились на численно > более свежей версии, независимо от того, что там лежит или не лежит в > репозитории. Нет. Я написал конкретный use case - предлагать по дефолту к удалению ядра с flavour'ами, которых нет в репозитории, помимо старых версий текущего flavour'а. И объяснил чем это вызвано.
(Ответ для Vitaly Chikunov на комментарий #1) > remove-old-kernels -A? Я предлагаю изменить дефолт.
Тестовое задание 395606
(Ответ для Vitaly Chikunov на комментарий #13) > Тестовое задание 395606 Я попробовал. Цифровые и un-def удаляет, когда их нет в репозитории, сколько ядрам дней значения не имеет, текущее загруженное ядро не трогает, другие flavour'ы не трогает. Так что в целом то, что требовалось.
Надо заревьювить код, но так как это никто другой не будет делать надо самому забыть.
(In reply to Vitaly Chikunov from comment #15) > Надо заревьювить код, но так как это никто другой не будет делать надо > самому забыть. Я смотрел его сразу мельком, одна опечатка с опцией -B есть -- вместо ;; в конце кейса ;& такое вот. https://git.altlinux.org/tasks/395606/gears/300/git?p=git;a=commitdiff;h=9ed6ec543269468962f6578a9e0c3e120a7c3d92
Спасибо, но это валидный код в bash.
update-kernel-1.21-alt1 -> sisyphus: Thu Sep 25 2025 Vitaly Chikunov <vt@altlinux> 1.21-alt1 - remove-old-kernels: Remove flavours deleted from the repository (ALT#55977). - remove-old-kernels: Treat stable kernels as single flavour.
Да, энный блин комом, и в логике оказался таки баг, 6.16 не удалилось при релизе 6.17, так как внутри latest псевдо-флейвора ядра обрабатываются как -a (даже при передаче -A).
REOPEN то я зря нажал так как это уже не проблема удаления EOL ядер.