On Tue, May 13, 2003 at 07:04:50PM +0400, Dmitry V. Levin wrote: > On Tue, May 13, 2003 at 05:50:30PM +0400, Ed V. Bartosh wrote: > > >> И еще надо бы описать какие симлинки ставятся при установке > > >> kernel-headers. > > > > DVL> А ещё лучше - реализовать правильное выставление этих ссылок. > > DVL> Без этого нельзя помещать kernel-headers в Сизиф - сломаются > > DVL> BTE. > > > > Так это же полиси - как опишется, так потом и реализуется. > > Я, например, не знаю как вообще планируется это делать, хотелось бы > > узнать, обсудить. > > Примерно так: Предлагаю несколько модифицированный вариант. пакет kernel-headers-common: %_sbindir/adjust_kernel_headers %_initdir/kheaders %dir /etc/sysconfig/kernel /usr/include/asm -> /etc/sysconfig/kernel/include/asm /usr/include/linux -> /etc/sysconfig/kernel/include/linux %ghost /etc/sysconfig/kernel/include -> /usr/include/linux-default/include %dir /usr/lib/kernel %dir /var/run/kernel %ghost /var/run/kernel/* Корректировака kernel headers (путём запуска %_initdir/kheaders) должна происходить после старта netfs для того, чтобы схема не перестала работать в случае использования /usr по NFS. Точка переключения, /etc/sysconfig/kernel/include, управляется скриптом adjust_kernel_headers, который работает по следующему алгоритму: + Определяется полная версия ядра, по умолчанию это $(uname -r) + Если существует /usr/include/linux-<версия ядра>-/include; то /etc/sysconfig/kernel/include -> /usr/include/linux-<версия ядра>-/include Иначе если существует /(usr|var)/lib/kernel/<полная версия ядра>; то /etc/sysconfig/kernel/include -> /usr/lib/kernel/include создаются файлы в /var/run/kernel/ (как в нынешнем gen_kernel_headers) Иначе если существует /usr/include/linux-default/include; то /etc/sysconfig/kernel/include -> /usr/include/linux-default/include Иначе /etc/sysconfig/kernel/include остается неизменным и возвращается ошибка. Преимущества такого управления: + на один indirection меньше в случае использования новых kernel headers; + не портится ссылка /usr/lib/kernel/include, находящаяся под управлением update-alternatives, в случае использования старых kernel headers. Недостаток такого управления: + на один indirection больше в случае использования старых kernel headers. Для совместимости с уже существующими скриптами следует сохранить имя /etc/rc.d/scripts/gen_kernel_headers, заменив его на обертку к (возможно, не установленному в системе) %_sbindir/adjust_kernel_headers. -- ldv