Add releng-packages translation, in sync with rev 1.17
Submitted by: gad -at- FRDP Obtained from: The FreeBSD Russian Documentation Project
This commit is contained in:
parent
9d4ac92750
commit
c061824a54
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=25233
4 changed files with 460 additions and 1 deletions
ru_RU.KOI8-R/articles
|
@ -41,7 +41,7 @@ SUBDIR+= problem-reports
|
|||
SUBDIR+= pxe
|
||||
SUBDIR+= relaydelay
|
||||
SUBDIR+= releng
|
||||
#SUBDIR+= releng-packages
|
||||
SUBDIR+= releng-packages
|
||||
#SUBDIR+= serial-uart
|
||||
SUBDIR+= solid-state
|
||||
#SUBDIR+= storage-devices
|
||||
|
|
22
ru_RU.KOI8-R/articles/releng-packages/Makefile
Normal file
22
ru_RU.KOI8-R/articles/releng-packages/Makefile
Normal file
|
@ -0,0 +1,22 @@
|
|||
# The FreeBSD Russian Documentation Project
|
||||
#
|
||||
# $FreeBSDru: frdp/doc/ru_RU.KOI8-R/articles/releng-packages/Makefile,v 1.2 2005/07/01 07:07:44 gad Exp $
|
||||
# $FreeBSD$
|
||||
#
|
||||
# Original revision: 1.4
|
||||
#
|
||||
# Article: FreeBSD Release Engineering of Third Party Software Packages
|
||||
|
||||
DOC?= article
|
||||
|
||||
FORMATS?= html
|
||||
|
||||
INSTALL_COMPRESSED?= gz
|
||||
INSTALL_ONLY_COMPRESSED?=
|
||||
|
||||
SRCS= article.sgml
|
||||
|
||||
CSS_SHEET_ADDITIONS= extra.css
|
||||
|
||||
DOC_PREFIX?= ${.CURDIR}/../../..
|
||||
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
|
420
ru_RU.KOI8-R/articles/releng-packages/article.sgml
Normal file
420
ru_RU.KOI8-R/articles/releng-packages/article.sgml
Normal file
|
@ -0,0 +1,420 @@
|
|||
<!--
|
||||
The FreeBSD Russian Documentation Project
|
||||
|
||||
$FreeBSDru: frdp/doc/ru_RU.KOI8-R/articles/releng-packages/article.sgml,v 1.5 2005/07/24 11:04:51 marck Exp $
|
||||
|
||||
Original revision: 1.18
|
||||
-->
|
||||
|
||||
<!--
|
||||
The FreeBSD Documentation Project
|
||||
-->
|
||||
|
||||
<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook V4.1-Based Extension//EN" [
|
||||
<!ENTITY % articles.ent PUBLIC "-//FreeBSD//ENTITIES DocBook FreeBSD Articles Entity Set//EN">
|
||||
%articles.ent;
|
||||
]>
|
||||
|
||||
<article lang="ru">
|
||||
<title>Подготовка релизов FreeBSD в части программных пакетов сторонних
|
||||
разработчиков</title>
|
||||
|
||||
<articleinfo>
|
||||
<authorgroup>
|
||||
<author>
|
||||
<firstname>Steve</firstname>
|
||||
|
||||
<surname>Price</surname>
|
||||
|
||||
<affiliation>
|
||||
<address><email>steve@FreeBSD.org</email></address>
|
||||
</affiliation>
|
||||
</author>
|
||||
</authorgroup>
|
||||
|
||||
<pubdate>$FreeBSD$</pubdate>
|
||||
|
||||
<legalnotice id="trademarks" role="trademarks">
|
||||
&tm-attrib.freebsd;
|
||||
&tm-attrib.intel;
|
||||
&tm-attrib.xfree86;
|
||||
&tm-attrib.general;
|
||||
</legalnotice>
|
||||
|
||||
<abstract>
|
||||
<para>В этом документе описывается подход, используемый группой
|
||||
подготовки релизов FreeBSD для создания высококачественного набора
|
||||
пакетов, предназначенного для размещения на носителях с официальными
|
||||
релизами FreeBSD. Этот документ находится в состоянии доработки, и
|
||||
постепенно он покроет весь процесс построения целостного набора
|
||||
пакетов в <quote>Кластере Портов</quote> проекта FreeBSD.org, опишет,
|
||||
как настроить любой другой набор машин в качестве кластера портов, как
|
||||
разделить пакеты для размещения на носителях с релизом и как проверить
|
||||
целостность набора пакетов.</para>
|
||||
</abstract>
|
||||
</articleinfo>
|
||||
|
||||
<!-- Введение
|
||||
|
||||
<sect1 id="introduction">
|
||||
<title>Введение</title>
|
||||
|
||||
<para><emphasis>Вскоре будет</emphasis></para>
|
||||
|
||||
</sect1>
|
||||
-->
|
||||
|
||||
<sect1 id="portbuild">
|
||||
<title>Построение пакетов из Коллекции Портов</title>
|
||||
|
||||
<para><ulink url="http://www.FreeBSD.org/ports">Коллекция портов
|
||||
FreeBSD</ulink> представляет собой собрание более чем &os.numports;
|
||||
программных пакетов сторонних разработчиков, доступных для FreeBSD. За
|
||||
поддержку дерева портов, которое может использоваться для подготовки
|
||||
бинарных пакетов, идущих с некоторым релизом FreeBSD, в рабочем
|
||||
состоянии, отвечает &a.portmgr;.</para>
|
||||
|
||||
<sect2>
|
||||
<title>Кластер портов</title>
|
||||
|
||||
<para>Для подготовки целостного набора пакетов сторонних разработчиков
|
||||
для релизов FreeBSD каждый порт строиться в отдельном окружении с
|
||||
изменённым корнем файловой системы, с изначально пустыми каталогами
|
||||
<filename>/usr/local</filename> и <filename>/usr/X11R6</filename>.
|
||||
Требуемые зависимости устанавливаются в виде пакетов до момента начала
|
||||
построения. Это обеспечивает <emphasis>целостность</emphasis> процесса
|
||||
построения пакетов. Запуская построение пакета в чистом окружении,
|
||||
мы можем гарантировать, что метаданные пакета (такие, как требуемые
|
||||
зависимости) корректны. Таким образом, мы никогда не создаём пакеты,
|
||||
которые, в зависимости от ранее установленного программного
|
||||
обеспечения, на одних системах работать могут, а на других работать не
|
||||
будут.</para>
|
||||
|
||||
<para><quote>Кластер портов</quote> для архитектуры x86 в настоящее время
|
||||
состоит из центрального узла (Dual &pentium; III 733MHz) и 8
|
||||
подчинённых узлов (&pentium; III 800MHz), выполняющих реальное
|
||||
построение пакетов. В такой конфигурации полное построение пакетов
|
||||
занимает более 24 часов. Эти машины размещены вместе с остальным
|
||||
оборудованием Проекта FreeBSD в углу с оборудованием компании Yahoo
|
||||
у провайдера Exodus в калифорнийском городе Санта-Клара.</para>
|
||||
|
||||
<para><quote>Кластер портов</quote> для архитектуры Alpha состоит из
|
||||
7 машин PWS 500A, предоставленных компанией Compaq, и они также
|
||||
расположены вместе с оборудованием компании Yahoo.</para>
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
||||
<sect1>
|
||||
<title>Разделение пакетов</title>
|
||||
|
||||
<para>Для FreeBSD 4.4 было создано более 4.1 гигабайт пакетов. Это
|
||||
привело к проблемам для распространения на CDROM, так как нам нужно
|
||||
записать как можно больше пакетов без необходимости заставлять
|
||||
пользователя вставлять другой диск для поиска зависимостей. Решением
|
||||
является создание <quote>кластеров</quote> близких пакетов с похожими
|
||||
зависимостями и группировать их на отдельные диски. В этом разделе
|
||||
описывается программное обеспечение и методология, использованная при
|
||||
создании таких наборов пакетов для официальных дисков FreeBSD с
|
||||
релизами.</para>
|
||||
|
||||
<para>Скрипты и остальные файлы, необходимые для выполнения разделения
|
||||
пакетов, можно найти в дереве CVS в каталоге
|
||||
<filename>ports/Tools/scripts/release</filename>. Скопируйте этот
|
||||
каталог на машину с свободным дисковым пространством, достаточным для
|
||||
хранения 2 или 3 копий набоар пакетов, который вы хотите
|
||||
разделить.</para>
|
||||
|
||||
<para>В этом каталоге находятся следующие скрипты:</para>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term><filename>config</filename></term>
|
||||
|
||||
<listitem>
|
||||
<para>В этом файле находится свободное пространство на каждом диске и
|
||||
то, разрешено ли на этих дисках размещать пакеты, дистрибутивные
|
||||
файли или оба типа файлов одновременно. Первая колонка содержит
|
||||
название диска. Оно должно быть в виде
|
||||
<literal>disc[0-9a-z]</literal>. На данный момент настройка
|
||||
выполнена на 10 дисков (4 для релиза и 6 для инструментального
|
||||
набора). При этом подразумевается дополнительный диск под
|
||||
названием <quote>scratch</quote>, куда помещаются остальные
|
||||
дистрибутивные файлы и пакеты, если они больше никуда не
|
||||
помещаются. Вторая колонка может быть 1 или 0, где 1 означает
|
||||
возможность размещения на этом диске пакетов. Третья колонка
|
||||
работает так же, но контролирует размещение на этом диске пакетов.
|
||||
Последняя колонка отмечает количество байтов свободного
|
||||
пространства на диске.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><filename>doit.sh</filename></term>
|
||||
|
||||
<listitem>
|
||||
<para>Это рабочая лошадка. Как только все файлы будут на своих
|
||||
местах и всё будет полностью настроено, этот скрипт управляет
|
||||
процессом разделения пакетов. Имейте в виду, что он
|
||||
интерактивный, так что вам нужно присматривать за его работой.
|
||||
Подробности о том, что делает скрипт, будут даны позже.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><filename>checkdeps.pl</filename></term>
|
||||
|
||||
<listitem>
|
||||
<para>Проверяет наличие всех зависимостей по файлу
|
||||
<filename>INDEX</filename> и каталогу с пакетами.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><filename>oneshot.pl</filename></term>
|
||||
|
||||
<listitem>
|
||||
<para>Здесь происходит основное волшебство (я использую это слово с
|
||||
некоторой натяжкой, так как большей частью всё решается в лоб).
|
||||
Имея перечень требуемых пакетов для каждого диска и набор
|
||||
пакетов/дистрибутивных файлов, этот скрипт размещает пакеты или
|
||||
дистрибутивные файлы по дискам вместе со всеми их
|
||||
зависимостями.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><filename>print-cdrom-packages.sh</filename></term>
|
||||
|
||||
<listitem>
|
||||
<para>Этот файл является копией
|
||||
<filename>src/release/scripts/print-cdrom-packages.sh</filename> из
|
||||
релиза, над которым вы работаете.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><filename>scrubindex.pl</filename></term>
|
||||
|
||||
<listitem>
|
||||
<para>Этот скрипт удаляет строки из файла <filename>INDEX</filename>
|
||||
для отсутствующих пакетов. Он также удаляет зависимости
|
||||
&xfree86;. ЗАМЕЧАНИЕ: вам нужно изменить значение переменной
|
||||
<varname>xdep</varname>, чтобы обеспечить правильность номера
|
||||
версии.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><filename>setup.sh</filename></term>
|
||||
|
||||
<listitem>
|
||||
<para>Это вспомогательный скрипт, использумый мною в кластере сборки пакетов
|
||||
для получения копии дерева портов и соответствующего набора
|
||||
пакетов/дистрибутивных файлов.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
<para>Вот контрольный список того, что вам нужно будет проверить или
|
||||
настроить перед тем, как продолжить.</para>
|
||||
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para>Отредактируйте <filename>config</filename>, отметив количество
|
||||
имеющихся у вас дисков, их размеры и собираетесь ли вы размещать на
|
||||
них пакеты, дистрибутивные файлы, оба типа файлов или ничего из
|
||||
них.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Проверьте, что вы удалили каталог <varname>gen</varname>, который
|
||||
мог остаться от предыдужих работ. Этот каталог содержит рабочие
|
||||
файлы, которые будут актуальны только для текущих действий.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>При первом вашем прогоне лучше всего избежать копирования
|
||||
пакетов и дистрибутивных файлов. Это сохранит как время, так и
|
||||
дисковое пространство, пока вы сможете проделать пару пробных
|
||||
запусков, чтобы удостовериться в том, что всё помещается, и так
|
||||
далее. В файле <filename>oneshot.pl</filename> задайте переменную
|
||||
<varname>fake</varname> в значение 1 и вместо реального копирования
|
||||
файлов он будет только выполнять над ними команду &man.touch.1;.
|
||||
Обязательно выключите эту возможность или установите переменную
|
||||
<varname>fake</varname> в значение 0 перед тем, как передавать
|
||||
получающиеся диски тому, кто будет тиражировать диски, в противном
|
||||
случае каталоги будут заполнены файлами с нулевыми размерами.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Убедитесь, что у вас есть последняя копия файла
|
||||
<filename>print-cdrom-packages.sh</filename>, и он взят из
|
||||
соответствующего релиза.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Проверьте, что зависимость &xfree86; в файле
|
||||
<filename>scrubindex.pl</filename> имеет корректный номер версии.
|
||||
Вам также нужно будет проверять, что это значение правильно задано в
|
||||
файле <filename>doit.sh</filename>.</para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
|
||||
<para>Теперь вам нужно сделать копию дерева портов, пакетов и
|
||||
дистрибутивных файлов из последнего построения кластера пакетов.
|
||||
Посмотрите файл <filename>setup.sh</filename> в качестве рабочего
|
||||
примера, но здесь описано всё необходимое.</para>
|
||||
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para>Возьмите копию <filename>ports.tar.gz</filename> и распакуйте
|
||||
её в каталог <filename>ports</filename> отдельно от файла
|
||||
<filename>doit.sh</filename> и каталога
|
||||
<filename>scripts</filename>.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Удалите каталог packages/distfiles или символические ссылки на
|
||||
него. В bento имеются эти символические ссылки и вы будете получать
|
||||
смешанные результаты, если не избавитесь от них перед
|
||||
обработкой.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Создайте новый каталог ports/packages и скопируйте набор пакетов
|
||||
из кластера построения пакетов.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Создайте новый каталог ports/distfiles и скопируйте
|
||||
дистрибутивные файлы из кластера построения пакетов. ЗАМЕЧАНИЕ:
|
||||
если вы не хотите копировать дистрибутивные файлы, просто создайте
|
||||
каталог и оставьте его пустым. Этот каталог должен существовать,
|
||||
даже если в нём ничего нет.</para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
|
||||
<para>Теперь мы окончательно готовы к весёлому занятию по реальному
|
||||
разделению пакетов. Запускайте обработку командой
|
||||
<command>./doit.sh</command>. Вот что она делает при первом её
|
||||
запуске.</para>
|
||||
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para>Создаёт список ограниченных к распространению (которые не могут
|
||||
находиться на главном FTP-сервере) портов.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Запросит у вас, нужно ли удаление ограниченных к распространению
|
||||
портов. В большинстве случаев здесь вам лучше ответить (y)es.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Создаёт перечень пакетов/дистрибутивных файлов, которые не могут
|
||||
быть размещены на дисках.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Запросит у вас разрешение на удаление пакетов/дистрибутивных
|
||||
файлов, которые не размещаются на компакт-диск. В большинстве
|
||||
случаев здесь лучше ответить (y)es.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Копирует файл <filename>INDEX</filename> из каталога
|
||||
<filename>ports</filename> в каталог <filename>gen</filename>. При
|
||||
этом она удаляет строчки портов, для которых нет пакетов. Также
|
||||
проверяется наличие всех требуемых зависимых пакетов.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Создаёт список пакетов, требуемых для размещения на каждом
|
||||
диске.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Делает запрос на создание дисков. После генерации каждого диска
|
||||
она проверяет отсутствующие зависсимости, вычищает файл
|
||||
<filename>INDEX</filename> и создаёт файл
|
||||
<filename>CHECKSUM.MD5</filename>.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Выполняет проверку того, что на каждом диске размещены требуемые
|
||||
пакеты и выдаёт общую статистику по размерам каждого диска.</para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
|
||||
<para>Если вам повезёт с первого раза, то все требуемые пакеты будут
|
||||
построены и размещены по дискам. Всё, что вам нужно сделать, это
|
||||
задать в качестве значения переменной <varname>fake</varname> в 0 в файле
|
||||
<filename>oneshot.pl</filename> и перезапустить
|
||||
<command>./doit.sh</command>. При втором и последующем запусках шаги
|
||||
1-5 выше будут пропускаться. Если вы хотите выполнить любые из тех шагов
|
||||
повторно, обратитесь к <filename>doit.sh</filename>, чтобы выяснить,
|
||||
какие файлы необходимо удалить для того, чтобы не пропустить эти этапы.
|
||||
Если вы хотите повторить все эти шаги, то проще всего выполнить
|
||||
<command>rm -rf gen</command>.</para>
|
||||
|
||||
<para>К моменту успешного завершения пакеты и дистрибутинвые файлы будут
|
||||
располагаться в каталогах <filename>disc*</filename>, а оставшиеся файлы
|
||||
будут находиться в каталоге <filename>scratch</filename>.</para>
|
||||
|
||||
<para>Что делать, если что-то происходит не так? Вот некоторые
|
||||
распространённые проблем и их решения.</para>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>Отсутствие требуемых пакетов</term>
|
||||
|
||||
<listitem>
|
||||
<para>Такое часто случается. Вам нужно подождать появления нового
|
||||
набора пакетов, где будут построены отсутствующие пакеты, либо
|
||||
попросить кого-нибудь перезапустить построение пакетов для вас.
|
||||
<emphasis>Не пытайтесь</emphasis> строить отсутствующие пакеты
|
||||
на собственной машине и добавлять их. Хотя вам может удастся
|
||||
обойтись этим, если вы очень осторожны, все же в большинстве
|
||||
случаев вы, скорее всего, пропустите какую-то маленькую деталь и
|
||||
простой процесс добавления одного пакета может привести к
|
||||
неожиданной неработоспособности сотен остальных.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Требуемые пакеты не помещаются</term>
|
||||
|
||||
<listitem>
|
||||
<para>Такое тоже случается, и это относительно легко исправить.
|
||||
Просто отредактируйте файл
|
||||
<filename>print-cdrom-packages.sh</filename>, перенося пакеты,
|
||||
пока они не станут помещаться. Да, это итерационный процесс, и
|
||||
это одна из причин, по которой вы должны включать
|
||||
<varname>fake</varname> в <filename>oneshot.pl</filename>, пока не
|
||||
получите то, что хотите. Перезапустите
|
||||
<command>./doit.sh</command> после того, как внесли свои
|
||||
изменения.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>Требуемые пакеты располагаются не на том (или ни на каком)
|
||||
диске</term>
|
||||
|
||||
<listitem>
|
||||
<para>Обычно это означает, что вы не добавили их в файл
|
||||
<filename>print-cdrom-packages.sh</filename> или разместили их не
|
||||
на том диске. Этот скрипт является святым источником, по которому
|
||||
в целом определяется, где должен находиться пакет. Если вы хотите
|
||||
обеспечить расположение пакета на определённом диске, то это
|
||||
единственное место, гарантирующее требуемое вам
|
||||
расположение.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
<para>Если вы окончательно запутались, и не можете понять, почему всё
|
||||
работает неправильно и как это исправить, то пошлите письмо в адрес
|
||||
&a.steve; с просьбой о помощи.</para>
|
||||
</sect1>
|
||||
</article>
|
17
ru_RU.KOI8-R/articles/releng-packages/extra.css
Normal file
17
ru_RU.KOI8-R/articles/releng-packages/extra.css
Normal file
|
@ -0,0 +1,17 @@
|
|||
/*
|
||||
* Netscape 4 does not recognice the @import directive of CSS, so we
|
||||
* can't add an additional stylesheet layer on top of the default one.
|
||||
* Instead, we use this hack to copy this file to the end of
|
||||
* docbook.css.
|
||||
*
|
||||
* $FreeBSDru: frdp/doc/ru_RU.KOI8-R/articles/releng-packages/extra.css,v 1.1 2004/02/25 22:24:56 phantom Exp $
|
||||
* $FreeBSD$
|
||||
*/
|
||||
|
||||
/* @import "docbook.css"; */
|
||||
|
||||
/* Customization that looks good for this particular article. */
|
||||
|
||||
DIV.TITLEPAGE {
|
||||
text-align: center;
|
||||
}
|
Loading…
Reference in a new issue