Прочитал Handbook и множество статей по поводу сборки ядра, но несколько моментов до конца не понял. Интересует вопрос поддержания системы в актуальном состоянии.
1. uname -a
.... 6.0-RELEASE-p4 ....
Как правильно "обозвать" p4 ? Патч?
2. Для обновления системы достаточно ли выполнить следующие шаги?
cvsup -g -L 2 cvsup.src (в cvsup.src *default tag=RELENG_6_0)
cd /usr/srs
make buildkernel KERNCONF=MYKERN && make installkernel KERNCONF=MYKERN
shutdown -r now
3. Хорошо, допустим это сервер, а "патчи" выходят достаточно часто. Я должен обновлять систему как указано выше. Где же тогда uptime в год, два и т.д. которым многие хвастаются?
4. Так и не понял для чего нужен make buildworld. Для перестройки всего мира при обновлении с 5.4 до 6.0 или с 6.0 до 6.1? И в каких еще случях может потребоваться?
>1. uname -a
> .... 6.0-RELEASE-p4 ....
> Как правильно "обозвать" p4 ? Патч?Да
>2. Для обновления системы достаточно ли выполнить следующие шаги?
> cvsup -g -L 2 cvsup.src (в cvsup.src *default tag=RELENG_6_0)
>
> cd /usr/srs
> make buildkernel KERNCONF=MYKERN && make installkernel KERNCONF=MYKERN
> shutdown -r nowНет, мир тоже обновляй. См ниже.
>3. Хорошо, допустим это сервер, а "патчи" выходят достаточно часто. Я должен
>обновлять систему как указано выше. Где же тогда uptime в год,
>два и т.д. которым многие хвастаются?Не все патчи одинаково критичны для конкретного сервера. Если у тебя нет локальный пользователей, ты предоставляешь ограниченое количество сервисов и тебя не волнуют DoS'ы, то можно и по несколько лет не обновляться (мелкий рутер, к примеру).
Если хочется померяться uptim'ом, то придется читать про каждый патч и думать, касается ли он тебя лично.
>4. Так и не понял для чего нужен make buildworld. Для перестройки
>всего мира при обновлении с 5.4 до 6.0 или с 6.0
>до 6.1? И в каких еще случях может потребоваться?Есть несколько вариантов:
1. Ты внимателько читаешь очередной security advisory и делаешь точно то, что там говорят.
2. Пишешь один раз скрипт для пересборки мира и ядра, потом его запускаешь при выходе очередного обновления.
3. Или у тебя будут проблемы.
Ок, спасибо. Все кратко и понятно. Вот только>2. Пишешь один раз скрипт для пересборки мира и ядра, потом его
>запускаешь при выходе очередного обновления.Цитата из handbook:
# make buildworld
# make buildkernel
# make installkernel
# reboot
После успешного выполнения installkernel вам необходимо загрузить систему в однопользовательском режимеТо есть скрипт только до boot -s а дальше ручками? Получется должен быть физический доступ к серверу. Остается только п.1.
PS
В handbook написано, что допускается выполнять make installworld в многопользовательском режиме. Какие проблемы могут при этом возникнуть? И что будет если я запущу mergemaster тоже в многопользовательском?
>Ок, спасибо. Все кратко и понятно. Вот только
>
># reboot
>После успешного выполнения installkernel вам необходимо загрузить систему в однопользовательском режиме
>
>То есть скрипт только до boot -s а дальше ручками? Получется
>должен быть физический доступ к серверу. Остается только п.1.Тогда, помолившись, пропускаем этот шаг и обновляемся на живом сервере :)
>PS
> В handbook написано, что допускается выполнять make installworld в многопользовательском режиме.
>Какие проблемы могут при этом возникнуть? И что будет если я
>запущу mergemaster тоже в многопользовательском?Теотетически возможно, что кому-нибудь понадобится два жестко связаных файла и он успеет прочитать один файл из старого мира, а второй уже из обновленного, после чего сильно удивится. На практике - пофиг.
На самом деле возможны и другие проблемы, но только при прыжке на новую версию, а не на патч. Там весьма рекомендуется компилировать ядро с поддержкой старой версии и выполнять installworld уже с новым ядром.
Согласен с предыдущим оратором.
1. Подпишись на freebsd-security-notifications@freebsd.org mail-list
и накладывай патчи руками.
2. Установи порт portaudit - он следит за багами в портах.