Re: ng_ipacct
- From
- Eugene Grosbein (2:5006/1)
- To
- dmitry@atlantis.dp.ua
- Date
- 2006-12-21T17:46:14Z
- Area
- RU.UNIX.BSD
Reply-To: eugen@grosbein.pp.ru
21 дек 2006, четверг, в 11:51 KRAST, dmitry@atlantis.dp.ua написал(а):
SS>> При пересборке ядра в 6.x каталог /boot/kernel перемещается в
SS>> /boot/kernel.old. Соотв. требуется пересборка тех портов, которые
SS>> содержат kld-modules. Я так подозреваю это именно тот случай.
>> Я везде использую MODULES_WITH_WORLD=no, одним из эффектов
dadu> Учитывая, что переменная проверяется не по значению, а на defined(),
dadu> можно по ошибке подумать, что Вы приказываете _не_ строить модули с
dadu> миром.
dadu> Но мы-то знаем, что это не так ;) Поэтому, _если уж советовать_, лучше
dadu> в каноническом стиле, который нам советует (на примере NO_MODULES)
dadu> src/share/examples/etc/make.conf:
dadu> MODULES_WITH_WORLD= #Build modules with world (not with kernel)
Это опечатка у меня тут, =yes конечно.
А определять переменные пустышкой мне не нравится :-)
dadu> Однако см. ниже...
>> является хранение модулей в /boot/modules, отдельно от ядра.
>> Все такие странные проблемы уходят, всем рекомендую.
dadu> IMHO зря _всем_ рекомендуете. Для тех, кто часто обновляет исходники
dadu> _и_
dadu> перестраивает ядро это плохой, негодный совет. Я, например, при
dadu> очередном
dadu> обновлении STABLE смотрю лог csup (а часто и diff -u старого и нового
dadu> src),
dadu> и, если изменения принципиальные только в ядре (а остальной мир
dadu> практически
dadu> не изменился) - делаю только make kernel.
Было ведь жесткое правило - держать ядро и мир синхронизированными,
ну вот нафига пропагандировать его отмену? Сорцы обновил - пересобирай.
Понятно, когда опытный админ, читающий с листа diff и логи
на свою, мнээ, голову пересобирает только ядро, но вот озвучивать
такой экстремизм я бы не стал без крупных варнингов :-)
Если же только эксперименты с конфигом ядра, модули пересобирать
почти всегда не надо.
dadu> Но устаревшие модуля мне,
dadu> естественно, не нужны. Ведь и ядро, и модуля, которые строит buildkernel
dadu> -
dadu> продукт одних и тех же текстов из src/sys, они тесно интегрированы,
dadu> разрывать их перестроение - чревато тонкими глюками и невозможностью
dadu> толком
dadu> проанализировать kernel dump.
А еще бывают те же связки ядра и userland, поэтому модули пересобираются
вместе с миром, а мир - с изменением исходников. Или типа стабильность ABI
уже это требование похоронила?
>> Изменение конфигурации ядра почти всегда - не причина пересобирать
>> модули, а оверхед дикий. И проблемы для портов нет.
dadu> Вот как раз порты, кладя в /boot/modules свои модуля, порождают кучу
dadu> вопросов у пользователей-не-девелоперов, когда последние обновляют
dadu> систему,
dadu> а она, погань, слетает при перезагрузке из-за устаревшего драйвера
dadu> nVidia
dadu> или какого-нибудь rtc.ko. Тут MODULES_WITH_WORLD AFAIK ничем помочь не
dadu> может (а созданием в /boot/modules мешанины из актуальных базовых и
dadu> устаревших портовых модулей, наоборот, навредит).
Ну это вопрос аккуратности, можно и UPDATING не читать перед пересборкой
мира... Рекомендуемая процедура должна быть, в первую очередь,
надежной, а во вторую эффективной и простой. Требование читать diff-ы
не удовлетворяет второму :-) Требование при обновлении сорцов
пересобирать ядро, модули и мир и портовые модули удовлетворяется
хоть при использовании MODULES_WITH_WORLD, хоть без. Но при использовании
пересборка ядра без изменения сорцов, во-первых, не дает проблем
с портовыми модулями (а без - проблемы есть), а во-вторых, гораздо
эффективнее в смысле глупого оверхеда на пересборку модулей.
dadu> IMHO /boot/modules примерно
dadu> так же соотносится с /boot/kernel, как /usr/local с /usr: при обновлении
dadu>
dadu> текстов ядра (мира) мы пересобираем содержимое /boot/kernel
dadu> (/usr/не-local), а
dadu> своевременное обновление /boot/modules и /usr/local при смене веток,
dadu> например,
dadu> RELENG_5 -> 6 - за этим уже мы сами (или наши скрипты, но не базовый
dadu> {build,install}{kernel,world}) должны следить.
Мне вообще активно не нравится требование обновлять /usr/local
при смене версии OS. И я не обновлял ничего при переходе с четверки
на шестерку дома, за исключением досадных вещей типа смены
locale on-disk format, работало все, начиная от XFree86 и кончая
galeon-ом через compat4x без проблем.
Eugene
--
Знаете ли вы, что...
Иисус имел не менее 4 братьев и 2 сестер (Матф.13:54)
--- slrn/0.9.8.0 (FreeBSD)
* Origin: Svyaz Service JSC (2:5006/1@fidonet)
SEEN-BY: 50/12 400/814 450/159 1024 461/43 132 640 469/999 4616/3 4625/8
SEEN-BY: 4641/444 5000/76 5000 5006/1 8 9 10 14 15 16 17 5007/1 5010/70
SEEN-BY: 5011/13 5012/46 5015/28 5019/26 5020/18 175 194 400 545 982 1057 1909
SEEN-BY: 5020/1922 2238 2395 2871 4441 5021/29 5025/3 5026/14 45 5027/12
SEEN-BY: 5030/1080 1957 5034/10 13 5035/38 5036/1 5045/7 5049/1 5051/15 5054/1
SEEN-BY: 5054/4 8 9 11 28 35 36 37 45 66 67 70 75 84 85 5059/9 5060/88 5061/15
SEEN-BY: 5062/10 5063/3 5064/7 5066/18 5075/5 5076/1 5077/70 5084/9 5085/13
SEEN-BY: 5095/20 5096/18 6001/10
PATH: 5006/1 5020/400 545 5054/1 37