aboutsummaryrefslogtreecommitdiff
path: root/ru_RU.KOI8-R/articles/portbuild/article.xml
diff options
context:
space:
mode:
Diffstat (limited to 'ru_RU.KOI8-R/articles/portbuild/article.xml')
-rw-r--r--ru_RU.KOI8-R/articles/portbuild/article.xml132
1 files changed, 64 insertions, 68 deletions
diff --git a/ru_RU.KOI8-R/articles/portbuild/article.xml b/ru_RU.KOI8-R/articles/portbuild/article.xml
index 25b6fd6c01..de3ed37084 100644
--- a/ru_RU.KOI8-R/articles/portbuild/article.xml
+++ b/ru_RU.KOI8-R/articles/portbuild/article.xml
@@ -1,7 +1,6 @@
<?xml version="1.0" encoding="koi8-r"?>
-<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V4.5-Based Extension//EN"
- "../../../share/xml/freebsd45.dtd">
-
+<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN"
+ "../../../share/xml/freebsd50.dtd">
<!--
The FreeBSD Russian Documentation Project
@@ -9,13 +8,12 @@
Original revision: r28574
-->
-
-<article lang="ru">
- <articleinfo>
- <title>Процесс построения пакетов</title>
+<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="ru">
+ <info><title>Процесс построения пакетов</title>
+
<authorgroup>
- <corpauthor>Группа поддержки портов &os;</corpauthor>
+ <author><orgname>Группа поддержки портов &os;</orgname></author>
</authorgroup>
<copyright>
@@ -27,7 +25,7 @@
&os;</holder>
</copyright>
- <legalnotice id="trademarks" role="trademarks">
+ <legalnotice xml:id="trademarks" role="trademarks">
&tm-attrib.freebsd;
&tm-attrib.intel;
&tm-attrib.sparc;
@@ -37,17 +35,17 @@
<pubdate>$FreeBSD$</pubdate>
<releaseinfo>$FreeBSD$</releaseinfo>
- </articleinfo>
+ </info>
- <sect1 id="intro">
+ <sect1 xml:id="intro">
<title>Введение</title>
<para>Для того, чтобы подготовить предкомпилированные версии
поддерживаемых приложений для &os;, на одном из <quote>Кластеров сборки
пакетов</quote> регулярно производится сборка полного дерева портов.
В настоящее время существует два таких кластера:
- <hostid role="fqdn">pointyhat.FreeBSD.org</hostid> и
- <hostid role="fqdn">dosirak.kr.FreeBSD.org</hostid>.</para>
+ <systemitem class="fqdomainname">pointyhat.FreeBSD.org</systemitem> и
+ <systemitem class="fqdomainname">dosirak.kr.FreeBSD.org</systemitem>.</para>
<para>Большая часть <quote>магии</quote> процесса сборки
сосредоточена в дереве каталогов <filename>/var/portbuild</filename>.
@@ -59,11 +57,11 @@
</para>
</sect1>
- <sect1 id="management">
+ <sect1 xml:id="management">
<title>Конфигурация машин-клиентов</title>
<para>Клиенты архитектур &i386;, alpha, amd64 и два из &sparc64; клиентов
- загружаются по сети с <hostid>pointyhat</hostid>; прочие sparc64 клиенты
+ загружаются по сети с <systemitem>pointyhat</systemitem>; прочие sparc64 клиенты
и машины для сборки ia64 загружаются самостоятельно. Так или иначе, все
они в процессе загрузки подготавливаются к сборке пакетов.
</para>
@@ -79,8 +77,8 @@
</para>
<para>Псевдо-пользователь
- <username>ports-<replaceable>${arch}</replaceable></username>
- может выполнить команду &man.ssh.1; от имени <username>root</username>
+ <systemitem class="username">ports-<replaceable>${arch}</replaceable></systemitem>
+ может выполнить команду &man.ssh.1; от имени <systemitem class="username">root</systemitem>
на любую клиентскую машину архитектуры
<replaceable>${arch}</replaceable>.
</para>
@@ -94,27 +92,27 @@
загрузки узлов кластера и распределяет, какой из узлов будет строить
очередной порт. Этот скрипт не слишком умен и время от времени умирает.
Лучше всего запускать его при загрузке основной машины кластера
- (<hostid>pointyhat</hostid> или <hostid>dosirak</hostid>) в цикле
+ (<systemitem>pointyhat</systemitem> или <systemitem>dosirak</systemitem>) в цикле
&man.while.1;.
</para>
</sect1>
- <sect1 id="setup">
+ <sect1 xml:id="setup">
<title>Подготовка ограниченной среды сборки</title>
<para>Пакеты собираются в ограниченной (<literal>chroot</literal>) среде,
которая разворачивается скриптом <filename>portbuild</filename> из архива
- <filename><replaceable>${arch}</replaceable>/<replaceable>${branch}</replaceable>/tarballs/bindist.tar</filename>.
+ <filename>${arch}/${branch}/tarballs/bindist.tar</filename>.
Этот архив создается при помощи скрипта <command>mkbindist</command>,
конфигурация которого описывается файлом
- <filename><replaceable>${arch}</replaceable>/<replaceable>${branch}</replaceable>/mkbindist.conf</filename>.
+ <filename>${arch}/${branch}/mkbindist.conf</filename>.
</para>
<para>Скрипт должен запускаться с правами пользователя
- <username>root</username> и следующими параметрами:
+ <systemitem class="username">root</systemitem> и следующими параметрами:
</para>
- <screen>/var/portbuild&prompt.root; <userinput>scripts/mkbindist <replaceable>${arch}</replaceable> <replaceable>${branch}</replaceable></userinput></screen>
+ <screen>/var/portbuild&prompt.root; <userinput>scripts/mkbindist ${arch} ${branch}</userinput></screen>
<para>При указании в файле <filename>mkbindist.conf</filename> параметра
<literal>ftp=1</literal> с адреса
@@ -135,10 +133,10 @@
делается при помощи скрипта <command>makeworld</command>:
</para>
- <screen>/var/portbuild&prompt.root; <userinput>scripts/makeworld <replaceable>${arch}</replaceable> <replaceable>${branch}</replaceable> [-nocvs]</userinput></screen>
+ <screen>/var/portbuild&prompt.root; <userinput>scripts/makeworld ${arch} ${branch} [-nocvs]</userinput></screen>
<para>Эта команда соберет систему на базе исходных текстов в дереве
- <filename><replaceable>${arch}</replaceable>/<replaceable>${branch}</replaceable>/src</filename>
+ <filename>${arch}/${branch}/src</filename>
и установит ее в <replaceable>${worlddir}</replaceable>.
Исходные тексты будут обновлены, если не указан параметр
<literal>-nocvs</literal>.
@@ -150,7 +148,7 @@
</para>
</sect1>
- <sect1 id="starting">
+ <sect1 xml:id="starting">
<title>Запуск сборки</title>
<para>Для сборки пакетов используются скрипты
@@ -199,7 +197,7 @@
на <command>dopackages.wrapper</command>. Могут быть указаны
многочисленные параметры, например:</para>
- <screen><command>dopackages.6 <replaceable>${arch}</replaceable> <literal>[-options]</literal></command></screen>
+ <screen><command>dopackages.6 ${arch} [-options]</command></screen>
<para><literal>[-options]</literal> может быть произвольным набором из
следующих опций:</para>
@@ -321,16 +319,16 @@
<listitem>
<para><literal>-distfiles</literal> - Собрать архивы исходных файлов
(<literal>distfiles</literal>) для дальнейшего их переноса на
- <hostid>ftp-master</hostid>. Эту опцию следует использовать изредка,
+ <systemitem>ftp-master</systemitem>. Эту опцию следует использовать изредка,
поскольку она требует очень много места. Исходные архивы следует
- удалить после загрузки их на <hostid>ftp-master</hostid>.
+ удалить после загрузки их на <systemitem>ftp-master</systemitem>.
</para>
</listitem>
<listitem>
<para><literal>-fetch-original</literal> - Загружать исходные архивы
с оригинальных сайтов, определенных переменными
- <literal>MASTER_SITES</literal>, а не с <hostid>ftp-master</hostid>.
+ <literal>MASTER_SITES</literal>, а не с <systemitem>ftp-master</systemitem>.
</para>
</listitem>
</itemizedlist>
@@ -351,7 +349,7 @@
не ссылался на пустые подкаталоги. В особенности это важно для сборки
ветви -exp. Если процесс сборки обнаруживает пустой каталог, обе
фазы сборки вскоре остановятся. При этом в файлы
- <filename><replaceable>${arch}</replaceable>/<replaceable>${branch}</replaceable>/make.[0|1]</filename>
+ <filename>${arch}/${branch}/make.[0|1]</filename>
будет записано сообщение об ошибке примерно такого вида:
</para>
@@ -367,12 +365,12 @@
<note>
<para>Та же проблема возникает при создании файла
<filename>Makefile</filename> для новой категории, не содержащего
- ни одной ссылки на подкаталоги (<makevar>SUBDIR</makevar>).
+ ни одной ссылки на подкаталоги (<varname>SUBDIR</varname>).
Это, скорее всего, ошибка, подлежащая исправлению.</para>
</note>
</sect1>
- <sect1 id="anatomy">
+ <sect1 xml:id="anatomy">
<title>Процесс сборки</title>
<para>Полный процесс сборки без каких-либо ключей, начинающихся с
@@ -434,7 +432,7 @@
</orderedlist>
<para>[*] Результаты выполнения этих шагов записываются в файл
- <filename><replaceable>${arch}</replaceable>/<replaceable>${branch}</replaceable>/build.log</filename>,
+ <filename>${arch}/${branch}/build.log</filename>,
а также в стандартный вывод для ошибок консоли, с которой запускался скрипт
<command>dopackages</command>.</para>
@@ -442,13 +440,13 @@
прекращается.</para>
<para>[++] Результаты выполнения пишутся в файл
- <filename><replaceable>${arch}</replaceable>/<replaceable>${branch}</replaceable>/make.[0|1]</filename>,
+ <filename>${arch}/${branch}/make.[0|1]</filename>,
где <filename>make.0</filename> соответствует первой, а
<filename>make.1</filename> второй фазе сборки. Журналы сборки отдельных
портов записываются в файлы
- <filename><replaceable>${arch}</replaceable>/<replaceable>${branch}</replaceable>/logs</filename>,
+ <filename>${arch}/${branch}/logs</filename>,
а журналы портов, собравшихся неудачно, в
- <filename><replaceable>${arch}</replaceable>/<replaceable>${branch}</replaceable>/errors</filename>.
+ <filename>${arch}/${branch}/errors</filename>.
</para>
<para>Ранее из репозитория извлекалось также дерево документации;
@@ -456,7 +454,7 @@
</para>
</sect1>
- <sect1 id="interrupting">
+ <sect1 xml:id="interrupting">
<title>Прерывание процесса сборки</title>
<para>Для прерывания процесса сборки обычно достаточно послать сигнал
@@ -469,16 +467,16 @@
<screen>&prompt.user; <userinput>killall -HUP sh ssh make</userinput></screen>
<para>Удалите файл
- <filename><replaceable>${arch}</replaceable>/lock</filename>
+ <filename>${arch}/lock</filename>
перед тем, как перезапустите сборку.
</para>
</sect1>
- <sect1 id="monitoring">
+ <sect1 xml:id="monitoring">
<title>Слежение за процессом</title>
<para>Команда
- <command>scripts/stats <replaceable>${branch}</replaceable></command>
+ <command>scripts/stats ${branch}</command>
показывает количество собранных на настоящий момент пакетов.</para>
<para>Команда <command>cat /var/portbuild/*/loads/*</command>
@@ -486,7 +484,7 @@
запущенных на них.</para>
<para>Выполнение
- <command>tail -f <replaceable>${arch}</replaceable>/<replaceable>${branch}</replaceable>/build.log</command>
+ <command>tail -f ${arch}/${branch}/build.log</command>
продемонстрирует общее состояние процесса сборки.</para>
<para>В случае, если порт не собирается, и из логов не понятны причины
@@ -495,7 +493,7 @@
Для этого создайте файл <filename>.keep</filename> в каталоге порта.
При следующей сборке порта кластером архив <literal>WRKDIR</literal>
будет помещен в файл
- <filename><replaceable>${arch}</replaceable>/<replaceable>${branch}</replaceable>/wrkdirs</filename>.
+ <filename>${arch}/${branch}/wrkdirs</filename>.
</para>
<para>Следите за выводом команды &man.df.1;. Если файловая система,
@@ -504,7 +502,7 @@
</para>
</sect1>
- <sect1 id="release">
+ <sect1 xml:id="release">
<title>Сборка пакетов для релизов</title>
<para>При сборке пакетов для включения в релиз может потребоваться ручное
@@ -529,26 +527,26 @@
Затем, на этапе финальной обработки, соберите список файлов при помощи
команды</para>
- <screen>&prompt.user; <userinput>cd <replaceable>${arch}</replaceable>/<replaceable>${branch}</replaceable></userinput>
-&prompt.user; <userinput>find distfiles > distfiles-<replaceable>${release}</replaceable></userinput></screen>
+ <screen>&prompt.user; <userinput>cd ${arch}/${branch}</userinput>
+&prompt.user; <userinput>find distfiles &gt; distfiles-${release}</userinput></screen>
<para>Этот файл обычно копируют в каталог
- <filename>i386/<replaceable>${branch}</replaceable></filename>
+ <filename>i386/${branch}</filename>
главной машины кластера.</para>
<para>Данная процедура помогает чистить комплект дистрибутивных архивов,
- располагающийся на <hostid>ftp-master</hostid>. Если дисковое
+ располагающийся на <systemitem>ftp-master</systemitem>. Если дисковое
пространство заканчивается, можно сохранить архивы для свежих релизов,
а прочие&nbsp;&mdash; удалить.</para>
<para>После копирования дистрибутивов (см. ниже) надо создать окончательный
комплект пакетов для релиза. Для полного спокойствия, запустите скрипт
- <filename><replaceable>${arch}</replaceable>/<replaceable>${branch}</replaceable>/cdrom.sh</filename>
+ <filename>${arch}/${branch}/cdrom.sh</filename>
вручную, чтобы быть уверенным, что все пакеты ограниченного
распространения и их исходные архивы удалены. Затем скопируйте каталог
- <filename><replaceable>${arch}</replaceable>/<replaceable>${branch}</replaceable>/packages</filename>
+ <filename>${arch}/${branch}/packages</filename>
в
- <filename><replaceable>${arch}</replaceable>/<replaceable>${branch}</replaceable>/packages-<replaceable>${release}</replaceable></filename>.
+ <filename>${arch}/${branch}/packages-${release}</filename>.
После того, как пакеты переложены в надежное место, свяжитесь с группой
&a.re; и сообщите им расположение финального комплекта пакетов.</para>
@@ -557,11 +555,11 @@
</para>
</sect1>
- <sect1 id="uploading">
+ <sect1 xml:id="uploading">
<title>Загрузка пакетов для раздачи</title>
<para>После завершения сборки пакеты и/или их исходные архивы
- могут быть загружены на <hostid>ftp-master</hostid> для
+ могут быть загружены на <systemitem>ftp-master</systemitem> для
раздачи по сети зеркал FTP. Если сборка велась с ключом
<literal>-nofinish</literal>, не забудьте произвести пост-обработку
при помощи команды <command>dopackages -finish</command> (будут удалены
@@ -580,22 +578,22 @@
<command>cdrom.sh</command> после завершения работы
<command>dopackages</command> просто для собственного спокойствия.
Скрипт <command>restricted.sh</command> запускается перед копированием
- на <hostid>ftp-master</hostid>; затем, перед подготовкой финального
+ на <systemitem>ftp-master</systemitem>; затем, перед подготовкой финального
набора пакетов для релиза выполните <command>cdrom.sh</command>.
</para>
<para>Пакеты можно копировать во временную область на
- <hostid>ftp-master</hostid> примерно такой командой:</para>
+ <systemitem>ftp-master</systemitem> примерно такой командой:</para>
- <screen>&prompt.root; <userinput>cd /var/portbuild/<replaceable>${arch}</replaceable>/<replaceable>${branch}</replaceable></userinput>
-&prompt.root; <userinput>tar cfv - packages/ | ssh portmgr@ftp-master tar xfC - w/ports/<replaceable>${arch}</replaceable>/tmp/<replaceable>${branch}</replaceable></userinput></screen>
+ <screen>&prompt.root; <userinput>cd /var/portbuild/${arch}/${branch}</userinput>
+&prompt.root; <userinput>tar cfv - packages/ | ssh portmgr@ftp-master tar xfC - w/ports/${arch}/tmp/${branch}</userinput></screen>
- <para>Затем, на машине <hostid>ftp-master</hostid>, убедитесь, что набор
+ <para>Затем, на машине <systemitem>ftp-master</systemitem>, убедитесь, что набор
пакетов скопирован корректно, удалите старый набор (из каталога
- <filename>~/w/ports/<replaceable>${arch}</replaceable></filename>),
+ <filename>~/w/ports/${arch}</filename>),
и переместите новый на его место.</para>
- <note><para>Некоторые каталоги на <hostid>ftp-master</hostid> на самом деле
+ <note><para>Некоторые каталоги на <systemitem>ftp-master</systemitem> на самом деле
являются символьными ссылками. Убедитесь, что вы перемещаете новый набор
пакетов в <emphasis>реальный</emphasis> каталог, а не на место
расположения одной из ссылок.</para></note>
@@ -604,12 +602,12 @@
<command>rsync</command>. Так мы не создаём сильной загрузки на
зеркалах:</para>
- <screen>&prompt.root; <userinput>rsync -n -r -v -l -t -p --delete packages/ portmgr@ftp-master:w/ports/<replaceable>${arch}</replaceable>/<replaceable>${branch}</replaceable>/ | tee log</userinput></screen>
+ <screen>&prompt.root; <userinput>rsync -n -r -v -l -t -p --delete packages/ portmgr@ftp-master:w/ports/${arch}/${branch}/ | tee log</userinput></screen>
<para>Дистрибутивные архивы копируются при помощи команды
<command>rsync</command>:</para>
- <screen>&prompt.root; <userinput>cd /var/portbuild/<replaceable>${arch}</replaceable>/<replaceable>${branch}</replaceable></userinput>
+ <screen>&prompt.root; <userinput>cd /var/portbuild/${arch}/${branch}</userinput>
&prompt.root; <userinput>rsync -r -v -l -p -c -n distfiles/ portmgr@ftp-master:w/ports/distfiles/ | tee log</userinput></screen>
<para><emphasis>ВСЕГДА</emphasis> для начала используйте ключ
@@ -619,7 +617,7 @@
</para>
</sect1>
- <sect1 id="expbuilds">
+ <sect1 xml:id="expbuilds">
<title>Экспериментальная сборка</title>
<para>Время от времени для тестирования новых возможностей или
@@ -654,9 +652,9 @@
экспериментальной&nbsp;&mdash; <literal>6-exp</literal>):</para>
<screen>&prompt.user; <userinput>cd /var/portbuild/i386/6-exp/errors</userinput>
-&prompt.user; <userinput>find . -name \*.log\* | sort > /tmp/6-exp-errs</userinput>
+&prompt.user; <userinput>find . -name \*.log\* | sort &gt; /tmp/6-exp-errs</userinput>
&prompt.user; <userinput>cd /var/portbuild/i386/6/errors</userinput>
-&prompt.user; <userinput>find . -name \*.log\* | sort > /tmp/6-errs</userinput></screen>
+&prompt.user; <userinput>find . -name \*.log\* | sort &gt; /tmp/6-errs</userinput></screen>
<note><para>Если с момента завершения одной из сборок прошло достаточно
много времени, журналы сборки могут быть автоматически архивированы
@@ -747,9 +745,7 @@
<para>Процесс сборки можно контролировать так же, как и стандартную сборку.
После того, как все ошибки исправлены, вы можете произвести коммит
комплекта исправлений. Является хорошим тоном отправить письмо
- с темой <literal>HEADS UP</literal> в списки рассылки <ulink
- url="mailto:ports@FreeBSD.org">ports@FreeBSD.org</ulink> и <ulink
- url="mailto:ports-developers@FreeBSD.org">ports-developers@FreeBSD.org</ulink>
+ с темой <literal>HEADS UP</literal> в списки рассылки <link xlink:href="mailto:ports@FreeBSD.org">ports@FreeBSD.org</link> и <link xlink:href="mailto:ports-developers@FreeBSD.org">ports-developers@FreeBSD.org</link>
с информацией о внесенных изменениях. Краткая аннотация изменений также
должна быть добавлена в файл <filename>/usr/ports/CHANGES</filename>.
</para>