[d-kernel] Re: Опять грабли с новой схемой сборки

Sergey Vlasov vsu at altlinux.ru
Wed Aug 13 17:53:22 MSD 2003


On Wed, 13 Aug 2003 16:23:46 +0300
Michael Shigorin <mike at osdn.org.ua> wrote:

> Смотри:
> 
> - "просто так" обновлять ядро нельзя, потому что может не
>   загрузиться как минимум -- на то есть Hold.
>   
> - при обновлении и вообще для подстраховки рекомендуется иметь
>   как минимум предыдущее работавшее ядро, следовательно, надо
>   иметь возможность держать в системе несколько ядер, где под
>   этим словом подразумевается комплект кода -- необязательно один
>   пакет (это имеет место уже довольно давно).
>   
>   Это справляет Allow-Duplicated.  При этом ломая возможность
>   положиться на зависимости субпакетов при обновлении головного
>   kernel-image.

А это он каким местом ломает? Зависимости там как раз отслеживаются
нормально.

Там сломано другое: нет возможности нормально сделать обновление
пакета с модулем без обновления основного ядра (apt-get install
kernel-modules-something\#.... в этом случае должен бы удалить
предыдущую версию пакета с модулями - но только ту, которая
действительно собрана для того же ядра).

> - около обновления выполняются пляски по обновлению конфигурации 
>   из %post (по минимуму depmod в субпакетах плюс более
>   нетривиальные модификации симлинков и конфигурации загрузчика в
>   головных пакетах) -- заметь, при росте количества наборов у нас
>   есть +/- два выхода:
>   
>   * макросы/вспомогательные скрипты, которые дергаются заведомо
>     однообразно (на сейчас это уже не так для kernel-image-std-up
>     по сравнению с kernel24-up -- бардак с симлинками vmlinuz* и
>     initrd*, думаю, все наблюдали минимум однажды);
> 
>     /это плохо.  Потому, что любые изменения должны быть отражены
>     в нескольких местах, а любые ошибки получают лишнюю
>     возможность расползтись/
> 
>   * инструмент, в который выносится та часть функциональности,
>     которая, с одной стороны, достаточно общая для того, чтобы
>     вынести ее из пакетов, и с другой стороны, достаточно
>     "интеллектуальная" (выбор активного ядра), чтобы не возлагать
>     ее на автомат.
> 
>     /если человек не хочет пользоваться этой штукой -- получит
>     просто все на месте и initrd, но вот бутлоудером займется
>     сам/

И, кстати, здесь есть ещё один источник граблей - если всё-таки
выносить какие-либо SCSI-модули в отдельные пакеты, mkinitrd нужно
вызывать после установки не только ядра, а и этих пакетов.

> Давай хоть сейчас нарисуем в первом приближении.
> 
> Надо:
> 
> - определить текущее ядро
> - получить список установленных пакетов с модулями, которые его
>   требуют
> - проверить его на доступность в версиях, которые требуют
>   устанавливаемое ядро
> 
> С ходу непонятно, как что-то вроде `uname -r` преобразовать в
> SVR.

rpmquery -qf /boot/vmlinuz-"`uname -r`"



More information about the devel-kernel mailing list