DataLife Engine > Система > freebsd-update - бинарное обновление системы

freebsd-update - бинарное обновление системы


17-07-2010. Разместил: admin Несомненно, правильный путь обновления системы лежит через пересборку мира (make world). Но есть путь и попроще. Он основан на бинарном обновлении системы через freebsd-update. Данная утилита уже имеется в основной системе. Ее описание гласит, что freebsd-update предназначена для получения, установки и отката бинарных обновлений системы и обновления имеются только для тех релизов и архитектур, которые подготовлены командой разработчиков, в частности для веток RC, RELEASE, BETA.

Команд у нее немного. Вот основные

fetch - получает обновления для текущей архитектуры и конфиграции
cron - случайно, с промежутком от 1 до 3600 секунды выполняет fetch для получения обновлений.
Если обновления имеются, то шлется письмо, обычно на имя root.
upgrade - получает файлы, необходимые для обновления на новый релиз. Прежде чем использовать, ознакомьтесь с анонсами и правилами обновления для нового релиза, если требуется выполнение дополнительных действий.
install - устанавливает полученные обновления.
rollback - удаляет установленные обновления.

Обычно, для текущих обновлений выполняется

#freebsd-update fetch
#freebsd-update install


В том случае, если патчи безопасности относились к ядру (ядро или модули), по завершению работы freebsd-update систему необходимо будет перезагрузить. Для регулярной отработки этой операции, можно воспользоваться cron(8), поместив в него следующую строчку:
 @daily                                  root    freebsd-update cron

Эта строчка заставит freebsd-update каждый день проверять наличие обновлений для вашей системы. В том случае, если патчи безопасности имеются, они будут сохранены на локальный диск, но не применены. Применение патчей необходимо проводить вручную.
Утилита freebsd-update в состоянии обновлять только GENERIC-ядро. В том случае, если Вы используете ядро собственной сборки, Вам потребуется его перекомпилировать после каждой отработки freebsd-update, в которой затронуты изменения относящиеся к ядру. freebsd-update также может обнаруживать и обновлять GENERIC ядро, по пути /boot/GENERIC (если оно существует), поэтому, хранить еще одно ядро в /boot/GENERIC - это хорошая идея.

Уровень патчей на системе идентифицирует число, следующее за буквой 'p' в имени релиза (команда uname -r).

Внимание! Вы можете обновлять систему, будучи загруженным на собственном ядре, однако всегда рекомендуется иметь в системе копию стандартного ядра, расположенного в /boot/GENERIC каталоге. Его можно получить, например, с установочного диска FreeBSD:
  mount /cdrom
  cd /cdrom/X.Y-RELEASE/kernels
 ./install.sh GENERIC


Где X.Y - это релиз системы, который Вы используете.

Помимо этого, GENERIC ядро можно собрать из исходных кодов:
  cd /usr/src
  env DESTDIR=/boot/GENERIC make kernel
  mv /boot/GENERIC/boot/kernel/* /boot/GENERIC
  rm -rf /boot/GENERIC/boot



Шаг1: получение обновлений

Для того, чтобы обновить систему на определенный релиз, freebsd-update необходимо запускать с ключем -r, где после 'r' указывается конечная версия системы.

Например:
#freebsd-update -r 8.1-RELEASE upgrade


заставит 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: применение обновлений для ядра
# freebsd-update install


На этом этапе будут обновлено ядро и модули ядра. После этого шага, система нуждается в перезагрузке. Если система работает не на GENERIC ядре, используйте nextboot(8) для установки ядра следующей загрузки:
  nextboot -k GENERIC


Перезагрузка:

shutdown -r now 


Шаг3: применение обновлений userland

После перезагрузки, freebsd-update должна быть запущена вновь, для обновления базовых утилит и библиотек.
freebsd-update install


Внимание! Поскольку на этом этапе возможна инсталляция библиотек более старших версий, сторонее ПО (например устанавливаемое из портов) требуется переустанавливать. Для этого можно воспользоваться утилитами (ports-mgmt/portupgrade, ports-mgmt/portinstall). Если в данный момент времени эта процедура невозможна, прочтите пункт 'c' в замечениях.

Если Вами используется не GENERIC ядро, самое время, чтобы его перестроить и установить ( cd /usr/src && make kernel KERNCONF=«MYKERNEL» )
shutdown -r now


Поздравляю, процесс обновления завершен.
Вернуться назад