Двоичные обновления


Таблички на двери кабинета руководителя из дерева http://inilaser.ru/izgotovlenie_tabli4ek.html

Многие операционные системы предлагают двоичное обновление, если у пользователей есть возможность загрузить новые двоичные файлы для своих операционных систем. FreeBSD предоставляет похожую программу FreeBSD Update, которая обновляет систему до ветки с исправленными ошибками. С помощью FreeBSD Update нельзя выполнить обновление до версии -stable или -current — только до ветки с исправленными ошибками. Например, если имеется версия FreeBSD 7.0, то FreeBSD Update позволит обновить ее до версии FreeBSD 7.0-errata, но не до версий 7.0-stable или 7.1-release.

Программа FreeBSD Update предназначена для применения в стандартных системах, основанных на ядре GENERIC. Если система обновлялась из исходного кода, то FreeBSD Update здесь не подойдет. Аналогично, программа FreeBSD Updates предоставляет заплатки для ядра только в версии GENERIC. Если вы собрали собственное ядро, вам придется вручную встраивать в него обновления.

Двоичное обновление выполняется с помощью программы freebsd-update(8) в соответствии с настройками из файла /etc/freebsd-update.conf.

/etc/freebsd-update.conf

Программа freebsd-update(8) создавалась с целью максимально облегчить ее использование среднему пользователю, поэтому изменять ее конфигурацию не рекомендуется. Впрочем, у вас могут оказаться не совсем обычные требования, поэтому здесь мы рассмотрим наиболее важные параметры настройки, которые можно найти в этом файле:

KeyPrint 800...
Параметр KeyPrint содержит криптографическую сигнатуру службы обновления. Если злоумышленнику удастся обнаружить уязвимость в службе FreeBSD Update и подменить заплатки троянскими версиями, то Проект FreeBSD должен будет ликвидировать уязвимость и выпустить новые криптографические ключи. В этом случае объявление об уязвимости будет отправлено в почтовую рассылку (и станет крупной новостью в мире информационных технологий). Другими словами, нет причин изменять это значение в обычных условиях, и не так много причин изменять его в необычных условиях.

ServerName update.freebsd.org
С помощью параметра ServerName программа frebsd-update(8) определяет, откуда загружать обновления. Проект FreeBSD предоставляет инструменты, необходимые для создания собственных обновлений, но они плохо документированы. Настройка собственного сервера обновлений — это для самых смелых.

Components src world kernel
По умолчанию FreeBSD Updates предоставляет самые последние заплатки для исходного кода в каталоге /usr/src, для пользовательских библиотек и программ («мир») и для ядра GENERIC. Однако вам могут не потребоваться все эти компоненты. Заплатки на ядро и пользовательские компоненты необходимы, но вам могут не потребоваться заплатки на исходный код, установленный на вашей машине. В этом случае следует удалить запись src и принимать обновления только для ядра и пользовательских компонентов. Кроме того, можно настроить прием обновлений только для определенных частей исходного кода, как сказано на странице руководства freebsd-update.conf(5).

UpdateIfUnmodified /etc/ /var/
Служба FreeBSD Updates предоставляет обновления конфигурационных файлов в каталоге /etc. Однако если вы уже изменяли эти файлы, скорее всего вам не потребуется обновлять их. Точно так же, файлы в каталоге /var используются администраторами для настройки системы, и может оказаться нежелательным, чтобы программа FreeBSD Update изменяла содержимое этих файлов. FreeBSD Update накладывает заплатки на каталоги, перечисленные в параметре UpdateIfUnmodified, только если их содержимое не изменялось.

MailTo root
Если был запланирован автоматический запуск FreeBSD Update (как описано ниже в этой главе), программа freebsd-update(8) отправит результаты на учетную запись, указанную в параметре MailTo.

KeepModifiedMetadata yes
Есть вероятность, что администратор системы изменил права доступа или принадлежность системных файлов или команд. Тогда может оказаться нежелательным, чтобы программа freebsd-update(8) сбрасывала эти права доступа в значения по умолчанию. Если параметр KeepModifiedMetadata установлен в значение yes (да), freebsd-update(8) не затронет измененные права доступа.

Запуск freebsd-update(8)

Обновление системы с помощью двоичных обновлений производится в два этапа: загрузка обновлений и применение.

Чтобы загрузить последние обновления, запустите команду freebsd-update fetch.

# freebsd-update fetch

Далее программа выполнит поиск источника загрузки обновлений, сравнит криптографические ключи для этих источников и загрузит обновления. В завершение на экране должно появиться следующее сообщение:

The following files will be updated as part of updating to 7.0-RELEASE-p2: (Перевод: В ходе обновления до версии 7.0-RELEASE-p2 были обновлены следующие файлы:)
/boot/kernel/kernel
/etc/rc.d/jail
/usr/bin/dig
...

Файлы обновлений сохраняются в каталоге /var/db/freebsd-update. Для установки загруженных файлов запустите команду freebsd-update install:

# freebsd-update install
Installing updates... done.

Вот и все. После перезагрузки системы вы увидите, что запущена новая версия с исправленными ошибками!

Планирование автоматического запуска двоичных обновлений

Лучше всего загружать и применять обновления регулярно в определенное время, например ежемесячно в дни технического обслуживания системы. Программа FreeBSD Updates поддерживает такую возможность и позволяет избежать перегрузки серверов ежечасными запросами. Команда freebsd-update cron предписывает системе загрузить обновления в случайно выбранный момент следующего часа. Вставьте эту команду в /etc/crontab, чтобы загрузить обновления в течение выбранного часа. Это поможет снизить нагрузку на серверы загрузки. По окончании обновления администратор получит сообщение по электронной почте и сможет наметить перезагрузку системы на удобное ему время.

Оптимизация и настройка FreeBSD Update

При работе с FreeBSD Update обычно возникают два наиболее распространенных вопроса, касающихся нестандартных сборок FreeBSD и распространения обновлений по локальным серверам.

Многие администраторы собирают собственные версии FreeBSD для внутреннего использования. Нередко это стандартная версия FreeBSD с усеченными возможностями, как, например, NanoBSD, речь о которой пойдет в главе 20. Но в некоторых компаниях вносят гораздо более серьезные изменения. Если администратор удалит какие-либо файлы из стандартной версии FreeBSD, freebsd-update(8) не сможет их обновить.

Также во многих компаниях имеются внутренние сервера, где хранятся обновления. Система FreeBSD Update предусматривает возможность работы с кэширующими прокси-серверами. Поскольку все файлы снабжены цифровыми подписями, которые проверяются в обязательном порядке, их можно передавать по обычному протоколу HTTP, благодаря чему прокси-серверы могут их каптировать. Тем самым снижается объем интернет-трафика.

Если вам действительно необходим собственный сервер FreeBSD Update, то программный код этого сервера вы найдете в хранилище CVS, в каталоге projects. Если вы не поняли, что это значит, то вам определенно не стоит пока создавать свой сервер обновлений.

Комментарии запрещены.