freebsd-update - бинарное обновление системы
Несомненно, правильный путь обновления системы лежит через пересборку мира (make world). Но есть путь и попроще. Он основан на бинарном обновлении системы через freebsd-update. Данная утилита уже имеется в основной системе. Ее описание гласит, что freebsd-update предназначена для получения, установки и отката бинарных обновлений системы и обновления имеются только для тех релизов и архитектур, которые подготовлены командой разработчиков, в частности для веток RC, RELEASE, BETA.
Команд у нее немного. Вот основные fetch - получает обновления для текущей архитектуры и конфиграции cron - случайно, с промежутком от 1 до 3600 секунды выполняет fetch для получения обновлений. Если обновления имеются, то шлется письмо, обычно на имя root. upgrade - получает файлы, необходимые для обновления на новый релиз. Прежде чем использовать, ознакомьтесь с анонсами и правилами обновления для нового релиза, если требуется выполнение дополнительных действий. install - устанавливает полученные обновления. rollback - удаляет установленные обновления. Обычно, для текущих обновлений выполняется
В том случае, если патчи безопасности относились к ядру (ядро или модули), по завершению работы freebsd-update систему необходимо будет перезагрузить. Для регулярной отработки этой операции, можно воспользоваться cron(8), поместив в него следующую строчку:
Эта строчка заставит freebsd-update каждый день проверять наличие обновлений для вашей системы. В том случае, если патчи безопасности имеются, они будут сохранены на локальный диск, но не применены. Применение патчей необходимо проводить вручную. Утилита freebsd-update в состоянии обновлять только GENERIC-ядро. В том случае, если Вы используете ядро собственной сборки, Вам потребуется его перекомпилировать после каждой отработки freebsd-update, в которой затронуты изменения относящиеся к ядру. freebsd-update также может обнаруживать и обновлять GENERIC ядро, по пути /boot/GENERIC (если оно существует), поэтому, хранить еще одно ядро в /boot/GENERIC - это хорошая идея. Уровень патчей на системе идентифицирует число, следующее за буквой 'p' в имени релиза (команда uname -r). Внимание! Вы можете обновлять систему, будучи загруженным на собственном ядре, однако всегда рекомендуется иметь в системе копию стандартного ядра, расположенного в /boot/GENERIC каталоге. Его можно получить, например, с установочного диска FreeBSD:
Где X.Y - это релиз системы, который Вы используете. Помимо этого, GENERIC ядро можно собрать из исходных кодов:
Шаг1: получение обновлений Для того, чтобы обновить систему на определенный релиз, freebsd-update необходимо запускать с ключем -r, где после 'r' указывается конечная версия системы. Например:
заставит freebsd-update получить те дополнения, которые необходимы для FreeBSD 8.1-RELEASE. В процессе отработки, будут выведены те категории системы, которые будут подлежать обновлению. Нажатием 'y' (или Enter) на вопрос «Does this look reasonable (y/n)? y» Вы подтверждаете, что freebsd-update будет скачивать перечисленные категории на локальный диск. В том случае, если система запущена не на GENERIC ядре, вы получите об этом соответствующее уведомление: WARNING: This system is running a «MYKERNEL» kernel, which is not a kernel configuration distributed as part of FreeBSD 8.0-RELEASE. This kernel will not be updated: you MUST update the kernel manually before running »/usr/sbin/freebsd-update install» Это предупреждение на этом этапе можно игнорировать. Новое GENERIC ядро можно использовать как промежуточный шаг в процессе обновления. После того, как необходимые категории будут сохранены начнется процесс их применения. Скорость операции зависит от скосрости и загрузки Вашей машины. Возможно, в процессе слияния конфигурационных файлов, система может столкнуться с трудностями и запустив редактор, потребует от Вас ручного вмешательства. Обратите внимание, что на данном этапе, все изменения и слияния конфиг-файлов происходят в другом каталоге, поэтому, в случае проблем (пропажа питания), система загрузиться в привычное состояние, а шаги по обновлению придется делать заново. Шаг2: применение обновлений для ядра
На этом этапе будут обновлено ядро и модули ядра. После этого шага, система нуждается в перезагрузке. Если система работает не на GENERIC ядре, используйте nextboot(8) для установки ядра следующей загрузки:
Перезагрузка:
Шаг3: применение обновлений userland После перезагрузки, freebsd-update должна быть запущена вновь, для обновления базовых утилит и библиотек.
Внимание! Поскольку на этом этапе возможна инсталляция библиотек более старших версий, сторонее ПО (например устанавливаемое из портов) требуется переустанавливать. Для этого можно воспользоваться утилитами (ports-mgmt/portupgrade, ports-mgmt/portinstall). Если в данный момент времени эта процедура невозможна, прочтите пункт 'c' в замечениях. Если Вами используется не GENERIC ядро, самое время, чтобы его перестроить и установить ( cd /usr/src && make kernel KERNCONF=«MYKERNEL» )
Поздравляю, процесс обновления завершен. |
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь. Мы рекомендуем Вам зарегистрироваться либо зайти на сайт под своим именем.