Sync the cutting-edge chapter, update associated xrefs.
MFen: handbook/cutting-edge/chapter.xml r28061 -> r33528
This commit is contained in:
parent
b91dcbbadf
commit
2f42e3167e
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=40344
4 changed files with 557 additions and 37 deletions
|
@ -5,10 +5,10 @@
|
|||
$FreeBSD$
|
||||
$FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/cutting-edge/chapter.xml,v 1.52 2006/06/20 18:02:32 marck Exp $
|
||||
|
||||
Original revision: r28061
|
||||
Original revision: r33528
|
||||
-->
|
||||
|
||||
<chapter id="cutting-edge">
|
||||
<chapter id="updating-upgrading">
|
||||
<chapterinfo>
|
||||
<authorgroup>
|
||||
<author>
|
||||
|
@ -26,7 +26,7 @@
|
|||
<author>
|
||||
<firstname>Jordan</firstname>
|
||||
<surname>Hubbard</surname>
|
||||
<contrib>Оригинальный текст написал </contrib>
|
||||
<contrib>Оригинальный текст написали </contrib>
|
||||
</author>
|
||||
|
||||
<author>
|
||||
|
@ -54,30 +54,47 @@
|
|||
</authorgroup>
|
||||
</chapterinfo>
|
||||
|
||||
<title>На переднем крае разработок</title>
|
||||
<title>Обновление системы и смена версии</title>
|
||||
|
||||
<sect1 id="cutting-edge-synopsis">
|
||||
<sect1 id="updating-upgrading-synopsis">
|
||||
<title>Краткий обзор</title>
|
||||
|
||||
<para>Между релизами над &os; ведется постоянная работа. Для тех,
|
||||
кто хочет быть на переднем крае, есть несколько простых методов для
|
||||
поддержания своей системы в соответствии с последними разработками.
|
||||
Будьте осторожны — передний край не для всех! Эта глава поможет
|
||||
<para>Между релизами над &os; ведется постоянная работа. Некоторые
|
||||
отдают предпочтение официально выпущенным версиям, в то время как
|
||||
остальные предпочитают использовать последние разработки. Тем не
|
||||
менее, даже для официальных версий часто выходят обновления,
|
||||
связанные с безопасностью и другими критическими исправлениями.
|
||||
Независимо от используемой версии &os; предоставляет все необходимые
|
||||
инструменты для поддержания системы в актуальном состоянии, а также
|
||||
позволяет легко перейти на другую версию. Эта глава поможет
|
||||
вам решить, хотите ли вы отслеживать систему в процессе работы над ней
|
||||
или останетесь верным одному из выпущенных релизов.</para>
|
||||
или останетесь верным одному из выпущенных релизов. Также имеются
|
||||
простейшие инструменты для поддержания вашей системы в актуальном
|
||||
состоянии.</para>
|
||||
|
||||
<para>После чтения этой главы вы будете знать:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Разницу между двумя ветвями разработки: &os.stable; и
|
||||
&os.current;.</para>
|
||||
<para>Какие программы можно использовать для обновления системы и
|
||||
Коллекции Портов.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Как поддерживать вашу систему в актуальном состоянии при помощи
|
||||
<application>CVSup</application>, <application>CVS</application> или
|
||||
<application>CTM</application>.</para>
|
||||
<para>Как поддерживать вашу систему в актуальном состоянии при
|
||||
помощи <application>freebsd-update</application>,
|
||||
<application>CVSup</application>, <application>CVS</application>
|
||||
или <application>CTM</application>.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Как узнать состояние установленной системы по отношению к
|
||||
известной нетронутой копии.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Разницу между двумя ветвями разработки: &os.stable; и
|
||||
&os.current;.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
|
@ -99,10 +116,483 @@
|
|||
других разработчиков (<xref linkend="ports"/>).</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<note>
|
||||
<para>В этой главе для получения и обновления исходных текстов &os;
|
||||
используется команда <command>cvsup</command>. Для этого вам
|
||||
нужно установить порт или пакет <filename
|
||||
role="package">net/cvsup-without-gui</filename>. Начиная с версии
|
||||
&os; 6.2-RELEASE для этих целей можно воспользоваться командой
|
||||
&man.csup.1;, которая входит в состав системы.</para>
|
||||
</note>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="updating-upgrading-freebsdupdate">
|
||||
<sect1info>
|
||||
<authorgroup>
|
||||
<author>
|
||||
<firstname>Tom</firstname>
|
||||
<surname>Rhodes</surname>
|
||||
<contrib>Оригинальный текст написал </contrib>
|
||||
</author>
|
||||
</authorgroup>
|
||||
<authorgroup>
|
||||
<author>
|
||||
<firstname>Colin</firstname>
|
||||
<surname>Percival</surname>
|
||||
<contrib>На основе заметок, которые предоставил </contrib>
|
||||
</author>
|
||||
</authorgroup>
|
||||
</sect1info>
|
||||
<title>Обновление FreeBSD</title>
|
||||
|
||||
<indexterm><primary>обновление и смена версии</primary></indexterm>
|
||||
<indexterm>
|
||||
<primary>freebsd-update</primary>
|
||||
<see>обновление и смена версии</see>
|
||||
</indexterm>
|
||||
|
||||
<para>Применение обновлений безопасности — важный момент в
|
||||
сопровождении программного обеспечения, особенно такого как
|
||||
операционная система. Для &os; этот процесс не был простым в
|
||||
течение долгого времени. На исходный код нужно было накладывать
|
||||
патчи, перестраивать код в двоичные файлы, а затем эти двоичные файлы
|
||||
требовалось переустановить. </para>
|
||||
|
||||
<para>Теперь это давно не так, и &os; включает программу с простым
|
||||
названием <command>freebsd-update</command>. Эта программа
|
||||
предоставляет две различные функции. Во-первых, она позволяет
|
||||
применить к базовой системе &os; обновления безопасности и критические
|
||||
исправления в двоичном виде, без необходимости сборки и установки.
|
||||
Во-вторых, программа поддерживает обновление системы со сменой
|
||||
старшего или младшего номера версии.</para>
|
||||
|
||||
<note>
|
||||
<para>Двоичные обновления доступны для всех архитектур и версий,
|
||||
поддерживаемых группой безопасности; тем не менее, для работы
|
||||
некоторых из возможностей, таких как смена версии операционной
|
||||
системы &os;, требуется последняя версия &man.freebsd-update.8;
|
||||
и по крайней мере &os; 6.3. Перед обновлением до новой версии
|
||||
следует ознакомиться с объявлением о выпуске текущей версии, так
|
||||
как там может содержаться важная информация, применимая к версии,
|
||||
на которую намечен переход. С соответствующими объявлениями можно
|
||||
ознакомиться, перейдя по следующей ссылке: <ulink
|
||||
url="http://www.FreeBSD.org/releases/"></ulink>.</para>
|
||||
</note>
|
||||
|
||||
<para>Если имеется задание <command>crontab</command>, запускающее
|
||||
<command>freebsd-update</command>, то перед началом выполнения
|
||||
следующих действий его обязательно нужно выключить.</para>
|
||||
|
||||
<sect2>
|
||||
<title>Конфигурационный файл</title>
|
||||
|
||||
<para>Некоторые пользователи могут пожелать изменить
|
||||
конфигурационный файл для лучшего контроля над процессом
|
||||
обновления. Все параметры подробно задокументированы, но
|
||||
для некоторых из них может понадобиться дополнительное
|
||||
разъяснение:</para>
|
||||
|
||||
<programlisting># Components of the base system which should be kept updated.
|
||||
Components src world kernel</programlisting>
|
||||
|
||||
<para>Данный параметр определяет, какие части &os; будут обновлены.
|
||||
По умолчанию обновляется исходный код (src), вся базовая система
|
||||
(world) и ядро (kernel). Компоненты те же самые, что и во время
|
||||
установки; в частности, добавление "world/games" позволяет
|
||||
обновить игры. Использование "src/bin" позволяет обновить
|
||||
исходный код в <filename
|
||||
class="directory">src/bin</filename>.</para>
|
||||
|
||||
<para>Лучшим вариантом будет оставить всё как есть, поскольку
|
||||
изменение этого перечня с целью добавления особых пунктов
|
||||
потребует от пользователя указания подряд всех пунктов, которые
|
||||
пользователь захочет обновить. Это может привести к негативным
|
||||
последствиям из-за возможной рассинхронизации между исходными
|
||||
текстами и двоичными файлами.</para>
|
||||
|
||||
<programlisting># Paths which start with anything matching an entry in an IgnorePaths
|
||||
# statement will be ignored.
|
||||
IgnorePaths</programlisting>
|
||||
|
||||
<para>Добавьте сюда пути к каталогам (например, <filename
|
||||
class="directory">/bin</filename> или <filename
|
||||
class="directory">/sbin</filename>), которые вы хотели бы
|
||||
оставить нетронутыми в процессе обновления. Этот параметр можно
|
||||
использовать для предотвращения перезаписывания локальных
|
||||
изменений программой <command>freebsd-update</command>.</para>
|
||||
|
||||
<programlisting># Paths which start with anything matching an entry in an UpdateIfUnmodified
|
||||
# statement will only be updated if the contents of the file have not been
|
||||
# modified by the user (unless changes are merged; see below).
|
||||
UpdateIfUnmodified /etc/ /var/ /root/ /.cshrc /.profile</programlisting>
|
||||
|
||||
<para>Обновлять конфигурационные файлы в указанных каталогах, только
|
||||
если они не содержат изменений. При наличии каких-либо изменений
|
||||
со стороны пользователя автоматическое обновление таких файлов
|
||||
отменяется. Есть другой параметр
|
||||
<literal>KeepModifiedMetadata</literal>, который предписывает
|
||||
команде <command>freebsd-update</command> сохранять изменения во
|
||||
время процесса слияния.</para>
|
||||
|
||||
<programlisting># When upgrading to a new &os; release, files which match MergeChanges
|
||||
# will have any local changes merged into the version from the new release.
|
||||
MergeChanges /etc/ /var/named/etc/</programlisting>
|
||||
|
||||
<para>Список каталогов с конфигурационными файлами, для которых
|
||||
<command>freebsd-update</command> попытается выполнить слияние.
|
||||
Процесс слияния файла представляет собой набор изменений
|
||||
в формате &man.diff.1;, похож на &man.mergemaster.8;, но с
|
||||
меньшим количеством параметров: результат слияния принимается,
|
||||
открывается редактор или <command>freebsd-update</command>
|
||||
прекращает свою работу. В случае сомнений сделайте резервную
|
||||
копию <filename class="directory">/etc</filename> и просто
|
||||
согласитесь со всеми изменениями. Для получения подробной
|
||||
информации по команде <command>mergemaster</command> смотрите
|
||||
<xref linkend="mergemaster"/>.</para>
|
||||
|
||||
<programlisting># Directory in which to store downloaded updates and temporary
|
||||
# files used by &os; Update.
|
||||
# WorkDir /var/db/freebsd-update</programlisting>
|
||||
|
||||
<para>Этот каталог предназначен для размещения патчей и временных
|
||||
файлов. В случае, когда пользователь выполняет обновление со сменой
|
||||
версии, в этом месте должен иметь по крайней мере гигабайт дискового
|
||||
пространства.</para>
|
||||
|
||||
<programlisting># When upgrading between releases, should the list of Components be
|
||||
# read strictly (StrictComponents yes) or merely as a list of components
|
||||
# which *might* be installed of which &os; Update should figure out
|
||||
# which actually are installed and upgrade those (StrictComponents no)?
|
||||
# StrictComponents no</programlisting>
|
||||
|
||||
<para>Если выставлено значение <literal>yes</literal>, то
|
||||
<command>freebsd-update</command> будет исходить из того, что
|
||||
список <literal>Components</literal> является полным, и не будет
|
||||
пытаться выполнить изменения за пределами этого списка.
|
||||
В действительности <command>freebsd-update</command> попытается
|
||||
обновить все файлы, которые принадлежат списку
|
||||
<literal>Components</literal>.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Обновления безопасности</title>
|
||||
|
||||
<para>Обновления безопасности хранятся на удалённой машине и могут
|
||||
быть загружены и установлены с использованием следующей
|
||||
команды:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>freebsd-update fetch</userinput>
|
||||
&prompt.root; <userinput>freebsd-update install</userinput></screen>
|
||||
|
||||
<para>Если были установлены обновления ядра, то после этого
|
||||
нужно перезагрузить систему. Если все пошло хорошо, система
|
||||
должна быть с установленными исправлениями, и
|
||||
<command>freebsd-update</command> можно запускать в качестве ночного
|
||||
задания &man.cron.8;. Для этого достаточно добавить следующую
|
||||
запись в <filename>/etc/crontab</filename>:</para>
|
||||
|
||||
<programlisting>@daily root freebsd-update cron</programlisting>
|
||||
|
||||
<para>Эта запись означает, что <command>freebsd-update</command> будет
|
||||
запускаться ежедневно. В данном случае, в соответствии с аргументом
|
||||
<option>cron</option> <command>freebsd-update</command> ограничится
|
||||
проверкой доступных обновлений. В случае наличия обновлений они
|
||||
будут автоматически загружены и сохранены на локальном диске.
|
||||
Пользователю <username>root</username> будет отправлено
|
||||
соответствующее письмо, так что эти обновления можно будет
|
||||
установить самостоятельно.</para>
|
||||
|
||||
<para>На случай, если что-то пошло не так, в
|
||||
<command>freebsd-update</command> предусмотрен механизм возврата
|
||||
последнего набора изменений с использованием следующей команды:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>freebsd-update rollback</userinput></screen>
|
||||
|
||||
<para>Если после завершения всех действий было изменено ядро или
|
||||
какой-либо из его модулей, система должна быть перезагружена.
|
||||
Это позволит &os; загрузить новые двоичные файлы в память.</para>
|
||||
|
||||
<note>
|
||||
<para>Команда <command>freebsd-update</command> работает только
|
||||
с ядром <filename>GENERIC</filename>. Если в
|
||||
<filename>GENERIC</filename> присутствуют изменения или
|
||||
используется собственная конфигурация ядра,
|
||||
<command>freebsd-update</command> завершится неудачно.</para>
|
||||
</note>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Обновления со сменой старшей и младшей версий</title>
|
||||
|
||||
<para>Этот процесс удаляет старые объектные файлы и библиотеки, что
|
||||
может нарушить работу большинства сторонних приложений. Все
|
||||
установленные порты рекомендуется либо удалить и переустановить
|
||||
заново, либо обновить с использованием программы <filename
|
||||
role="package">ports-mgmt/portupgrade</filename>. Большинство
|
||||
пользователей предпочтут выполнить тестовое построение, запустив для
|
||||
этого следующую команду:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>portupgrade -af</userinput></screen>
|
||||
|
||||
<para>Это позволит убедиться в том, что всё будет переустановлено
|
||||
правильно. Обратите внимание, что если переменной окружения
|
||||
<makevar>BATCH</makevar> присвоить значение <literal>yes</literal>,
|
||||
то на все вопросы в течение этого процесса будет возвращаться
|
||||
ответ <literal>yes</literal>, что позволит исключить необходимость
|
||||
ручного вмешательства в процесс построения.</para>
|
||||
|
||||
<para>Обновления со сменой старшей и младшей версий можно выполнить,
|
||||
указав значение версии, на которую будет произведен переход, в
|
||||
качестве аргумента команды <command>freebsd-update</command>.
|
||||
Так, например, можно выполнить обновление до версии
|
||||
&os; 6.3:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>freebsd-update -r 6.3-RELEASE upgrade</userinput></screen>
|
||||
|
||||
<para>После своего запуска <command>freebsd-update</command>
|
||||
анализирует содержимое конфигурационного файла и собирает
|
||||
необходимую для проведения обновления информацию о текущей
|
||||
установленной системе. На экран будет выдан перечень компонентов,
|
||||
которые удалось и не удалось обнаружить установленными.
|
||||
Например:</para>
|
||||
|
||||
<screen>Looking up update.FreeBSD.org mirrors... 1 mirrors found.
|
||||
Fetching metadata signature for 6.3-BETA1 from update1.FreeBSD.org... done.
|
||||
Fetching metadata index... done.
|
||||
Inspecting system... done.
|
||||
|
||||
The following components of FreeBSD seem to be installed:
|
||||
kernel/smp src/base src/bin src/contrib src/crypto src/etc src/games
|
||||
src/gnu src/include src/krb5 src/lib src/libexec src/release src/rescue
|
||||
src/sbin src/secure src/share src/sys src/tools src/ubin src/usbin
|
||||
world/base world/info world/lib32 world/manpages
|
||||
|
||||
The following components of FreeBSD do not seem to be installed:
|
||||
kernel/generic world/catpages world/dict world/doc world/games
|
||||
world/proflibs
|
||||
|
||||
Does this look reasonable (y/n)? y</screen>
|
||||
|
||||
<para>Следующим шагом <command>freebsd-update</command> попытается
|
||||
загрузить по сети файлы, необходимые для выполнения обновления.
|
||||
В некоторых случаях может потребоваться ответить на вопросы
|
||||
относительно того, что и как устанавливать.</para>
|
||||
|
||||
<para>После того, как все изменения были загружены, они будут
|
||||
применены. Этот процесс может занять определённое время, в
|
||||
зависимости от производительности и текущей загруженности
|
||||
компьютера. Затем будет выполнено слияние конфигурационных файлов
|
||||
— эта часть процесса требует от пользователя определённого
|
||||
вмешательства, так как для файла можно выполнить слияние
|
||||
автоматически, а можно открыть текстовый редактор для слияния
|
||||
вручную. Результат успешного слияния будет показан на экране.
|
||||
Неудачное или пропущенное слияние вызовет преждевременное завершение
|
||||
программы. Можно подготовить резервную копию каталога <filename
|
||||
class="directory">/etc</filename> для таких важных файлов как
|
||||
<filename>master.passwd</filename> и <filename>group</filename> и
|
||||
выполнить их слияние вручную позднее.</para>
|
||||
|
||||
<note>
|
||||
<para>На данном этапе система еще не модифицирована, и все изменения
|
||||
и слияния происходят в отдельном каталоге. Теперь, когда все
|
||||
изменения успешно применены, все конфигурационные файлы слиты и
|
||||
кажется, что процесс должен пройти плавно, пользователь должен
|
||||
установить изменения.</para>
|
||||
</note>
|
||||
|
||||
<para>После завершения этого процесса, изменения могут быть
|
||||
установлены на диск с помощью следующей команды.</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>freebsd-update install</userinput></screen>
|
||||
|
||||
<para>В первую очередь изменения будут применены к ядру и его модулям.
|
||||
После этого компьютер должен быть перезагружен. Следующая команда
|
||||
выполнит перезагрузку компьютера, после чего будет загружено новое
|
||||
ядро:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>shutdown -r now</userinput></screen>
|
||||
|
||||
<para>После перезагрузки нужно повторно запустить команду
|
||||
<command>freebsd-update</command>. Команда прочитает, на каком
|
||||
этапе она находится, и перейдёт к удалению старых объектных файлов
|
||||
и совместно используемых библиотек. Чтобы перейти к этому этапу,
|
||||
выполните следующую команду:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>freebsd-update install</userinput></screen>
|
||||
|
||||
<note>
|
||||
<para>Количество этапов установки обновлений может быть два вместо
|
||||
трёх и зависит от того, были ли изменены номера версий каких-либо
|
||||
совместно используемых библиотек.</para>
|
||||
</note>
|
||||
|
||||
<para>Теперь понадобится пересобрать и переустановить всё стороннее
|
||||
программное обеспечение. Это необходимая операция, так как
|
||||
установленное программное обеспечение может зависеть от библиотек,
|
||||
которые были удалены в процессе смены версии операционной системы.
|
||||
Для автоматизации этого процесса можно воспользоваться командой
|
||||
<filename role="package">ports-mgmt/portupgrade</filename>.
|
||||
Начать можно со следующих команд:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>portupgrade -f ruby</userinput>
|
||||
&prompt.root; <userinput>rm /var/db/pkg/pkgdb.db</userinput>
|
||||
&prompt.root; <userinput>portupgrade -f ruby18-bdb</userinput>
|
||||
&prompt.root; <userinput>rm /var/db/pkg/pkgdb.db /usr/ports/INDEX-*.db</userinput>
|
||||
&prompt.root; <userinput>portupgrade -af</userinput></screen>
|
||||
|
||||
<para>После этого завершите процесс обновления последним запуском
|
||||
<command>freebsd-update</command>. Выполните следующую команду,
|
||||
чтобы убедиться, что ничего не забыто в процессе обновления:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>freebsd-update install</userinput></screen>
|
||||
|
||||
<para>Перезагрузите компьютер с новой версией &os;. На этом процесс
|
||||
завершён.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Сравнение состояния системы</title>
|
||||
|
||||
<para>Утилита <command>freebsd-update</command> может быть
|
||||
использована для проверки состояния установленной версии &os;
|
||||
относительно известной хорошей копии. Оценивается текущая версия
|
||||
системных утилит, библиотек и конфигурационных файлов. Для того,
|
||||
чтобы начать сравнение, выполните следующую команду:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>freebsd-update IDS >> outfile.ids</userinput></screen>
|
||||
|
||||
<warning>
|
||||
<para>Не смотря на то, что команда называется
|
||||
<acronym>IDS</acronym>, это ни в коей мере не должно являться
|
||||
заменой системе обнаружения вторжений, такой как <filename
|
||||
role="package">security/snort</filename>. Поскольку
|
||||
<command>freebsd-update</command> сохранает свои данные на
|
||||
диске, возможность подмены становится очевидной. И хотя эта
|
||||
возможность может быть уменьшена при использовании настройки
|
||||
<varname>kern.securelevel</varname>, а также используя для
|
||||
записи данных <command>freebsd-update</command> файловую
|
||||
систему, которая в остальное время смонтирована только на
|
||||
чтение, лучшим решением будет сравнить систему относительно
|
||||
эталона на физически защищенном носителе, таком как
|
||||
<acronym>DVD</acronym> или внешний <acronym>USB</acronym> диск
|
||||
с включённой защитой от записи.</para>
|
||||
</warning>
|
||||
|
||||
<para>Теперь запустится проверка системы, в результате которой будет
|
||||
выведен список файлов с их контрольными суммами в &man.sha256.1; с
|
||||
известным значением для файла из релиза и значением для текущего
|
||||
в системе. Результат выводится слишком быстро для наглядного
|
||||
сравнения и вскоре заполняет консольный буфер. По этой причине в
|
||||
данном примере вывод перенаправлен в файл
|
||||
<filename>outfile.ids</filename>.</para>
|
||||
|
||||
<para>Эти строки также очень длинные, но зато такой формат вывода
|
||||
удобен для разбора. Так, для получения списка всех отличающихся
|
||||
от релиза файлов достаточно выполнить такую команду:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>cat outfile.ids | awk '{ print $1 }' | more</userinput>
|
||||
/etc/master.passwd
|
||||
/etc/motd
|
||||
/etc/passwd
|
||||
/etc/pf.conf</screen>
|
||||
|
||||
<para>Вывод специально обрезан, на самом деле файлов намного больше.
|
||||
Некоторые из них изменены в ходе нормальной работы: так, файл
|
||||
<filename>/etc/passwd</filename> был изменён после заведения
|
||||
пользователей в системе. В некоторых случаях могут быть и другие
|
||||
файлы, такие как модули ядра, которые могли измениться вследствие
|
||||
обновления через <command>freebsd-update</command>. Для
|
||||
исключения из проверки конкретных файлов и каталогов укажите их
|
||||
в качестве значения параметра <literal>IDSIgnorePaths</literal>
|
||||
в <filename>/etc/freebsd-update.conf</filename>.</para>
|
||||
|
||||
<para>Эта система может использоваться как часть более сложной
|
||||
процедуры обновления, в отличие от описанного выше способа.</para>
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="updating-upgrading-portsnap">
|
||||
<sect1info>
|
||||
<authorgroup>
|
||||
<author>
|
||||
<firstname>Tom</firstname>
|
||||
<surname>Rhodes</surname>
|
||||
<contrib>Предоставил </contrib>
|
||||
</author>
|
||||
</authorgroup>
|
||||
<authorgroup>
|
||||
<author>
|
||||
<firstname>Colin</firstname>
|
||||
<surname>Percival</surname>
|
||||
<contrib>На основе заметок, которые предоставил </contrib>
|
||||
</author>
|
||||
</authorgroup>
|
||||
</sect1info>
|
||||
<title>Portsnap: средство обновления Коллекции Портов</title>
|
||||
|
||||
<indexterm><primary>обновление и смена версии</primary></indexterm>
|
||||
<indexterm>
|
||||
<primary>Portsnap</primary>
|
||||
<see>обновление и смена версии</see>
|
||||
</indexterm>
|
||||
|
||||
<para>Для обновления Коллекции Портов в базовую поставку &os;
|
||||
включена утилита &man.portsnap.8;. Во время её выполнения
|
||||
устанавливается соединение с удалённым сервером, проверяется
|
||||
правильность ключа и загружается новая копия Коллекции Портов.
|
||||
Ключ используется для проверки целостности загруженных файлов
|
||||
для исключения возможности подмены на этапе передачи файлов.
|
||||
Для получения последней версии файлов Коллекции Портов выполните
|
||||
следующую команду:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>portsnap fetch</userinput>
|
||||
Looking up portsnap.FreeBSD.org mirrors... 3 mirrors found.
|
||||
Fetching snapshot tag from portsnap1.FreeBSD.org... done.
|
||||
Fetching snapshot metadata... done.
|
||||
Updating from Wed Aug 6 18:00:22 EDT 2008 to Sat Aug 30 20:24:11 EDT 2008.
|
||||
Fetching 3 metadata patches.. done.
|
||||
Applying metadata patches... done.
|
||||
Fetching 3 metadata files... done.
|
||||
Fetching 90 patches.....10....20....30....40....50....60....70....80....90. done.
|
||||
Applying patches... done.
|
||||
Fetching 133 new ports or files... done.</screen>
|
||||
|
||||
<para>В данном примере показано, что &man.portsnap.8; обнаружила
|
||||
и верифицировала несколько патчей относительно текущего содержимого
|
||||
портов. Здесь также видно, что утилита уже запускалась ранее,
|
||||
иначе при первом запуске была бы загружена вся коллекция.</para>
|
||||
|
||||
<para>После того как &man.portsnap.8; успешно завершила операцию
|
||||
<command>fetch</command>, Коллекция Портов и сопутствующие патчи
|
||||
находятся на локальной системе и прошли проверку целостности.
|
||||
Обновлённые файлы можно установить командой:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>portsnap extract</userinput>
|
||||
/usr/ports/.cvsignore
|
||||
/usr/ports/CHANGES
|
||||
/usr/ports/COPYRIGHT
|
||||
/usr/ports/GIDs
|
||||
/usr/ports/KNOBS
|
||||
/usr/ports/LEGAL
|
||||
/usr/ports/MOVED
|
||||
/usr/ports/Makefile
|
||||
/usr/ports/Mk/bsd.apache.mk
|
||||
/usr/ports/Mk/bsd.autotools.mk
|
||||
/usr/ports/Mk/bsd.cmake.mk
|
||||
<replaceable>...</replaceable></screen>
|
||||
|
||||
<para>На этом процесс завершён, и теперь приложения можно
|
||||
установить или обновить с использованием Коллекции Портов.</para>
|
||||
|
||||
<para>Для последовательного запуска обоих процессов выполните
|
||||
следующую команду:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>portsnap fetch update</userinput></screen>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="current-stable">
|
||||
<title>&os.current; против &os.stable;</title>
|
||||
<title>Использование ветви разработки</title>
|
||||
<indexterm><primary>-CURRENT</primary></indexterm>
|
||||
<indexterm><primary>-STABLE</primary></indexterm>
|
||||
|
||||
|
@ -220,7 +710,7 @@
|
|||
<orderedlist>
|
||||
<listitem>
|
||||
<para>Подпишитесь на списки рассылки &a.current.name; и
|
||||
&a.cvsall.name;. Это не просто хорошая идея, это
|
||||
&a.svn-src-head.name;. Это не просто хорошая идея, это
|
||||
<emphasis>необходимость</emphasis>. Если вы не являетесь
|
||||
участником списка рассылки <emphasis>&a.current.name;</emphasis>,
|
||||
то вы не увидите замечаний,
|
||||
|
@ -229,15 +719,17 @@
|
|||
решены другими. Ещё хуже, если вы пропустите важные сообщения,
|
||||
касающиеся жизнеспособности вашей системы.</para>
|
||||
|
||||
<para>Список рассылки &a.cvsall.name; позволит вам для каждого
|
||||
<para>Список рассылки &a.svn-src-head.name; позволит вам для каждого
|
||||
изменения увидеть соответствующую запись в журнале коммитов,
|
||||
а они порой содержат относящуюся к делу
|
||||
информацию о возможных побочных эффектах.</para>
|
||||
|
||||
<para>Чтобы подключиться к этим и другим доступным спискам
|
||||
<para>Чтобы подписаться на эти и другие доступные списки
|
||||
рассылки, перейдите по ссылке &a.mailman.lists.link; и щёлкните
|
||||
на списке, к которому вы хотите подключиться. Инструкции по
|
||||
дальнейшим действиям размещены там же.</para>
|
||||
дальнейшим действиям размещены там же. Если вы заинтересованы
|
||||
в отслеживании изменений всего дерева исходных текстов, то мы
|
||||
рекомендуем вам подписаться на &a.svn-src-all.name;.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
|
@ -275,6 +767,23 @@
|
|||
тексты автоматически. Измените примерный файл
|
||||
<filename>supfile</filename> выше и отконфигурируйте <link
|
||||
linkend="cvsup">cvsup</link> для вашего окружения.</para>
|
||||
<note>
|
||||
<para>Примерный файл <filename>standard-supfile</filename>
|
||||
предназначен для отслеживания специальной ветки
|
||||
безопасности &os;, а не &os.current;. Вам нужно
|
||||
открыть этот файл на редактирование и заменить в нём
|
||||
строку:</para>
|
||||
|
||||
<programlisting>*default release=cvs tag=RELENG_<replaceable>X</replaceable>_<replaceable>Y</replaceable></programlisting>
|
||||
|
||||
<para>на следующую:</para>
|
||||
|
||||
<programlisting>*default release=cvs tag=.</programlisting>
|
||||
|
||||
<para>Для получения подробной информации по использованию
|
||||
тегов обратитесь к разделу Руководства <link
|
||||
linkend="cvs-tags">Теги CVS</link>.</para>
|
||||
</note>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
|
@ -416,15 +925,20 @@
|
|||
давая пользователям возможность высказать свое мнение о
|
||||
возможных тонких моментах.</para>
|
||||
|
||||
<para>Список рассылки &a.cvsall.name; позволит вам для каждого
|
||||
изменения увидеть соответствующую запись в журнале коммитов,
|
||||
а они порой содержат относящуюся к делу
|
||||
<para>Присоединяйтесь к соответствующему списку рассылки
|
||||
<application>SVN</application> для той ветви, которую вы
|
||||
используете. Например, если вы используете ветвь 7-STABLE, то
|
||||
присоединяйтесь к списку &a.svn-src-stable-7.name;. Это
|
||||
позволит вам просматривать записи в журнале коммитов для
|
||||
каждого изменения, а они порой содержат относящуюся к делу
|
||||
информацию о возможных побочных эффектах.</para>
|
||||
|
||||
<para>Чтобы подключиться к этим и другим доступным спискам
|
||||
рассылки, перейдите по ссылке &a.mailman.lists.link; и щёлкните
|
||||
на списке, к которому вы хотите подключиться. Инструкции по
|
||||
дальнейшим действиям размещены там же.</para>
|
||||
дальнейшим действиям размещены там же. Если вы заинтересованы
|
||||
в отслеживании изменений всего дерева исходных текстов, то мы
|
||||
рекомендуем вам подписаться на &a.svn-src-all.name;.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
|
@ -674,10 +1188,11 @@
|
|||
текстов, а затем выполнить следующую последовательность
|
||||
действий:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>make buildworld</userinput>
|
||||
<screen>&prompt.root; <userinput>cd /usr/src</userinput>
|
||||
&prompt.root; <userinput>make buildworld</userinput>
|
||||
&prompt.root; <userinput>make buildkernel</userinput>
|
||||
&prompt.root; <userinput>make installkernel</userinput>
|
||||
&prompt.root; <userinput>reboot</userinput></screen>
|
||||
&prompt.root; <userinput>shutdown -r now</userinput></screen>
|
||||
|
||||
<note>
|
||||
<para>Есть несколько редких случаев, когда перед выполнением
|
||||
|
@ -693,7 +1208,9 @@
|
|||
есть посредством команды <command>boot -s</command>, заданной в
|
||||
приглашении загрузчика). После этого выполните:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>mergemaster -p</userinput>
|
||||
<screen>&prompt.root; <userinput>mount -a -t ufs</userinput>
|
||||
&prompt.root; <userinput>mergemaster -p</userinput>
|
||||
&prompt.root; <userinput>cd /usr/src</userinput>
|
||||
&prompt.root; <userinput>make installworld</userinput>
|
||||
&prompt.root; <userinput>mergemaster</userinput>
|
||||
&prompt.root; <userinput>reboot</userinput></screen>
|
||||
|
@ -885,7 +1402,7 @@
|
|||
</screen>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="cutting-edge-compilebase">
|
||||
<sect2 id="updating-upgrading-compilebase">
|
||||
<title>Перекомпилируйте исходные тексты базовой системы</title>
|
||||
|
||||
<sect3>
|
||||
|
@ -1265,7 +1782,8 @@ Script done, …
|
|||
нет в <filename>/usr/src/etc</filename>.</para>
|
||||
|
||||
<para>Если вы используете &man.mergemaster.8; (как это рекомендуется),
|
||||
то вы можете перейти сразу к <link linkend="cutting-edge-rebooting">следующему
|
||||
то вы можете перейти сразу к <link
|
||||
linkend="updating-upgrading-rebooting">следующему
|
||||
разделу</link>.</para>
|
||||
|
||||
<para>Вручную проще всего сделать это, установив файлы в новый каталог,
|
||||
|
@ -1417,7 +1935,7 @@ Script done, …
|
|||
</sect3>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="cutting-edge-rebooting">
|
||||
<sect2 id="updating-upgrading-rebooting">
|
||||
<title>Перезагрузка</title>
|
||||
|
||||
<para>Теперь вы сделали всё. После того, как вы проверили, что всё
|
||||
|
@ -1786,9 +2304,10 @@ Building everything..
|
|||
каталог <filename>/usr/src</filename> должен быть на машине построения,
|
||||
а по NFS он должен быть смонтирован на остальных.</para>
|
||||
|
||||
<para>Наконец, удостоверьтесь в том, что файл
|
||||
<filename>/etc/make.conf</filename> на всех машинах набора для
|
||||
построения соответствует машине построения. Это означает, что машина
|
||||
<para>Наконец, удостоверьтесь в том, что файлы
|
||||
<filename>/etc/make.conf</filename> и
|
||||
<filename>/etc/src.conf</filename> на всех машинах набора для
|
||||
построения соответствуют машине построения. Это означает, что машина
|
||||
построения должна строить все части основного системного набора,
|
||||
которые будут устанавливаться на каждой машине из набора для
|
||||
построения. Кроме того, у каждой машины построения должно быть задано
|
||||
|
|
|
@ -348,7 +348,7 @@ following line in &man.loader.conf.5;:
|
|||
понять, что вы удалили собственный файл настройки ядра. Не
|
||||
редактируйте непосредственно <filename>GENERIC</filename>, он может
|
||||
быть также перезаписан и при следующем <link
|
||||
linkend="cutting-edge">обновлении дерева исходных текстов</link>,
|
||||
linkend="updating-upgrading">ÏÂÎÏ×ÌÅÎÉÉ ÄÅÒÅ×Á ÉÓÈÏÄÎÙÈ ÔÅËÓÔÏ×</link>,
|
||||
и изменения ядра будут потеряны.</para>
|
||||
|
||||
<para>Вы можете сохранить файл конфигурации ядра в другом месте,
|
||||
|
@ -387,7 +387,7 @@ following line in &man.loader.conf.5;:
|
|||
|
||||
<note>
|
||||
<para>Если вы <link
|
||||
linkend="cutting-edge">синхронизируете дерево исходных текстов</link>
|
||||
linkend="updating-upgrading">ÓÉÎÈÒÏÎÉÚÉÒÕÅÔÅ ÄÅÒÅ×Ï ÉÓÈÏÄÎÙÈ ÔÅËÓÔÏ×</link>
|
||||
с деревом проекта &os;, не забудьте свериться с файлом
|
||||
<filename>/usr/src/UPDATING</filename> перед обновлением. В этом
|
||||
файле описаны все важные вопросы и области исходного кода, требующие
|
||||
|
|
|
@ -450,7 +450,8 @@
|
|||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><emphasis><xref linkend="cutting-edge"/>, 盍 信遗奈磐 艘僚 伊谝谅显纤</emphasis></term>
|
||||
<term><emphasis><xref linkend="updating-upgrading"/>, ïÂÎÏ×ÌÅÎÉÅ
|
||||
ÓÉÓÔÅÍÙ É ÓÍÅÎÁ ×ÅÒÓÉÉ</emphasis></term>
|
||||
<listitem>
|
||||
<para>Объясняет различия между FreeBSD-STABLE, FreeBSD-CURRENT и
|
||||
FreeBSD-RELEASE. Рассказывает, кому из пользователей будет полезно
|
||||
|
|
|
@ -2699,7 +2699,7 @@ boot:</screen>
|
|||
<procedure>
|
||||
<step>
|
||||
<para>ðÏÌÕÞÉÔÅ ÉÓÈÏÄÎÙÅ ÔÅËÓÔÙ ÑÄÒÁ (ÇÌÁ×Á
|
||||
<xref linkend="cutting-edge"/>)</para>
|
||||
<xref linkend="updating-upgrading"/>)</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
|
|
Loading…
Reference in a new issue