aboutsummaryrefslogtreecommitdiff
path: root/ru_RU.KOI8-R
diff options
context:
space:
mode:
authorEitan Adler <eadler@FreeBSD.org>2015-04-05 16:36:06 +0000
committerEitan Adler <eadler@FreeBSD.org>2015-04-05 16:36:06 +0000
commit1fb2e1881980b027a0eb67efa571f3a52a14b4f0 (patch)
treebefb153fe90864033aae10462497a37b12f252d4 /ru_RU.KOI8-R
parent24dfaf47d06335265e90c244c85f1e2b22e11e35 (diff)
downloaddoc-1fb2e1881980b027a0eb67efa571f3a52a14b4f0.tar.gz
doc-1fb2e1881980b027a0eb67efa571f3a52a14b4f0.zip
multiple:
clean up for other older articles which were already deleted. tested with a top-level 'make'
Notes
Notes: svn path=/head/; revision=46478
Diffstat (limited to 'ru_RU.KOI8-R')
-rw-r--r--ru_RU.KOI8-R/articles/Makefile2
-rw-r--r--ru_RU.KOI8-R/articles/mh/Makefile21
-rw-r--r--ru_RU.KOI8-R/articles/mh/article.xml814
-rw-r--r--ru_RU.KOI8-R/articles/portbuild/Makefile23
-rw-r--r--ru_RU.KOI8-R/articles/portbuild/article.xml753
5 files changed, 0 insertions, 1613 deletions
diff --git a/ru_RU.KOI8-R/articles/Makefile b/ru_RU.KOI8-R/articles/Makefile
index 62dd4f9afd..0ac8bb34c6 100644
--- a/ru_RU.KOI8-R/articles/Makefile
+++ b/ru_RU.KOI8-R/articles/Makefile
@@ -21,10 +21,8 @@ SUBDIR+= gjournal-desktop
SUBDIR+= hubs
SUBDIR+= ipsec-must
SUBDIR+= mailing-list-faq
-SUBDIR+= mh
SUBDIR+= new-users
SUBDIR+= pam
-SUBDIR+= portbuild
SUBDIR+= pr-guidelines
SUBDIR+= problem-reports
SUBDIR+= relaydelay
diff --git a/ru_RU.KOI8-R/articles/mh/Makefile b/ru_RU.KOI8-R/articles/mh/Makefile
deleted file mode 100644
index b4d8cc0657..0000000000
--- a/ru_RU.KOI8-R/articles/mh/Makefile
+++ /dev/null
@@ -1,21 +0,0 @@
-#
-# The FreeBSD Russian Documentation Project
-#
-# $FreeBSD$
-# $FreeBSDru: frdp/doc/ru_RU.KOI8-R/articles/mh/Makefile,v 1.3 2005/10/28 17:42:40 gad Exp $
-#
-# Original revision: r39631
-#
-# Article: An MH Primer
-
-DOC?= article
-
-FORMATS?= html
-
-INSTALL_COMPRESSED?=gz
-INSTALL_ONLY_COMPRESSED?=
-
-SRCS= article.xml
-
-DOC_PREFIX?= ${.CURDIR}/../../..
-.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/ru_RU.KOI8-R/articles/mh/article.xml b/ru_RU.KOI8-R/articles/mh/article.xml
deleted file mode 100644
index 70ac68b57d..0000000000
--- a/ru_RU.KOI8-R/articles/mh/article.xml
+++ /dev/null
@@ -1,814 +0,0 @@
-<?xml version="1.0" encoding="koi8-r"?>
-<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN"
- "http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd">
-<!--
- The FreeBSD Russian Documentation Project
-
- $FreeBSD$
- $FreeBSDru: frdp/doc/ru_RU.KOI8-R/articles/mh/article.xml,v 1.8 2005/10/29 15:46:59 gad Exp $
-
- Original revision: r43184
--->
-<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="ru">
- <info><title>Учебник по <application>MH</application></title>
-
-
- <authorgroup>
- <author><personname><firstname>Matt</firstname><surname>Midboe</surname></personname><affiliation>
- <address>
- <email>matt@garply.com</email>
- </address>
- </affiliation></author>
- </authorgroup>
-
- <pubdate>v1.0, 16 января 1996</pubdate>
-
- <legalnotice xml:id="trademarks" role="trademarks">
- &tm-attrib.freebsd;
- &tm-attrib.opengroup;
- &tm-attrib.general;
- </legalnotice>
-
- <releaseinfo>$FreeBSD$</releaseinfo>
-
-
-
- <abstract>
- <para>В этом документе даются основы работы с <application>MH</application> во FreeBSD</para>
- </abstract>
- </info>
-
- <sect1 xml:id="mhintro">
- <title>Введение</title>
-
- <para><application>MH</application> ведет свою историю с 1977 года, с
- компании RAND Corporation, где были разработаны основы работы
- <application>MH</application>. <application>MH</application> не является
- единой программой для работы с электронной почтой, но подходом к тому, как
- лучше всего разрабатывать инструменты для чтения электронной почты. Разработчики
- <application>MH</application> провели большую работу, твердо придерживаясь
- принципа <acronym>KISS</acronym>: Keep It Simple Stupid. Вместо того, чтобы
- разработать одну большую программу для чтения, отсылки и обработки
- электронной почты, они написали специальные программы для каждого случая
- вашей работы с электронной почтой. Некоторым нравится <application>MH</application>
- по причине его специализации, которую очень проста и естественна. Каждый инструмент
- в <application>MH</application> выполняет одно действие, но выполняет его
- очень хорошо.</para>
-
- <para>Кроме различных инструментов, которые можно использовать для
- обработки своей электронной почты, <application>MH</application> прекрасно выполняет
- работу по сохранению настроек каждого из этих инструментов однообразными и
- соответствующими друг другу. На самом деле, если вы не совсем понимаете,
- как что-то должно работать, и какими должны быть аргументы некоторой
- команды, то вы можете попытаться угадать и окажетесь правы. Каждая
- команда <application>MH</application> однообразна в обработке конфигурационных
- файлов и передаче параметров командной строки. Вам полезно будет помнить,
- что вы всегда можете добавить <option>-help</option> к команде для вывода опций
- этой команды.</para>
-
- <para>Первым делом вам нужно убедиться, что на вашей машине с FreeBSD
- установлен пакет <application>MH</application>. Если вы устанавливали
- систему с компакт-диска, то для установки <application>MH</application>
- можете выполнить такую команду:
-
- <informalexample>
- <screen>&prompt.root; <userinput>pkg_add /cdrom/packages/mh-6.8.3.tgz</userinput></screen>
- </informalexample>
-
- Вы увидите, что при этом будет создан каталог
- <filename>/usr/local/lib/mh</filename>, а в каталог
- <filename>/usr/local/bin</filename> будут добавлены несколько выполнимых
- файлов. Если вы предпочитаете откомпилировать все самостоятельно, то
- можете сгрузить исходный код с общедоступного ftp-сервера по адресу
- <link xlink:href="ftp://ftp.ics.uci.edu/">ftp.ics.uci.edu</link> или <link xlink:href="ftp://louie.udel.edu/">louie.udel.edu</link>.</para>
-
- <para>Этот учебник не является полным и подробным описанием того, как
- работает <application>MH</application>. Он предназначен для того,
- чтобы вы начали свой путь по дороге к более удобному и эффективному чтению
- электронной почты. Вы должны прочесть страницы справочной системы по различным
- командам. Также вас может заинтересовать телеконференция <link xlink:href="news:comp.mail.mh">comp.mail.mh</link>. Прочтите <link xlink:href="http://www.faqs.org/faqs/mail/mh-faq/">FAQ по <application>MH</application></link>.
- Лучшим источником информации по <application>MH</application> является книга <link xlink:href="http://www.ics.uci.edu/~mh/book/"><application>MH</application> и nmh
- Джерри Пика: электронная почта для пользователей и программистов</link>.</para>
- </sect1>
-
- <sect1>
- <title>Чтение почты</title>
-
- <para>Этот раздел посвящен тому, как использовать команды
- <command>inc</command>, <command>show</command>, <command>scan</command>,
- <command>next</command>, <command>prev</command>, <command>rmm</command>,
- <command>rmf</command> и <command>msgchk</command>. Одной из приятнейших
- особенностей <application>MH</application> является единообразие
- интерфейсов программ. При использовании этих программ нужно помнить одну
- особенность &mdash; способ задания списков сообщений. В случае команды
- <command>inc</command> это не обязательно, но с командами типа
- <command>show</command> это полезно знать.</para>
-
- <para>Список сообщений может иметь вид типа <parameter>23 20
- 16</parameter>, что будет означать сообщения 23, 20 и 16. Это весьма
- просто, но можно делать более полезные вещи, типа
- <parameter>23-30</parameter>, что будет означать все сообщения с 23 до
- 30. Вы можете также указывать здесь в виде
- <parameter>cur:10</parameter>, что будет действовать на текущее сообщение
- и на следующие 9 сообщений. Сообщения <parameter>cur</parameter>,
- <parameter>last</parameter> и <parameter>first</parameter> являются
- особыми обозначениями, соответствующими текущему, последнему и первому
- сообщениям в почтовом ящике.</para>
-
- <sect2 xml:id="inc">
- <title><command>inc</command>, <command>msgchk</command>&mdash;чтение
- новой почты или проверка ее наличия</title>
-
- <para>Если вы просто наберете <userinput>inc</userinput> и нажмете
- <keycap>return</keycap>, то начнете работать с <application>MH</application>.
- При выполнении команды <command>inc</command> в первый раз, она настроит
- вашу учетную запись для использования настроек <application>MH</application>
- по умолчанию и запросит создание каталога <filename>Mail</filename> в вашем
- домашнем каталоге. Если у вас имеется почта, ожидающая сгрузки, вы увидите
- нечто вроде следующего:</para>
-
- <informalexample>
- <screen>
- 29 01/15 Doug White Re: Another Failed to boot problem&lt;&lt;On Mon, 15 J
- 30 01/16 Jordan K. Hubbar Re: FBSD 2.1&lt;&lt;&gt; Do you want a library instead of
- 31 01/16 Bruce Evans Re: location of bad144 table&lt;&lt;&gt;&gt; &gt;It would appea
- 32 01/16 Jordan K. Hubbar Re: video is up&lt;&lt;&gt; Anyway, mrouted won't run, ev
- 33 01/16 Michael Smith Re: FBSD 2.1&lt;&lt;Nate Williams stands accused of sa</screen>
- </informalexample>
-
- <para>Это то же самое, что вы увидите при выполнении команды
- <command>scan</command> (смотрите <xref linkend="scan"/>). Если вы
- просто запустили команду <command>inc</command> без параметров, она
- проверит ваш компьютер на наличие электронной почты, которая
- предназначается вам.</para>
-
- <para>Многим нравится для получения своей электронной почты использовать
- протокол POP. <application>MH</application> может работать с ним для получения
- вашей электронной почты. Вам нужно передать команде <command>inc</command> несколько
- аргументов командной строки.</para>
-
- <informalexample>
- <screen>
-&prompt.user; <userinput>inc -host mail.pop.org -user <replaceable>username</replaceable> -norpop</userinput>
- </screen>
- </informalexample>
-
- <para>Это укажет команде <command>inc</command> на соединение с
- <parameter>mail.pop.org</parameter> для сгрузки вашей электронной
- почты, а также сообщит о том, что ваше имя пользователя в той системе
- <replaceable>username</replaceable>. Параметр <option>-norpop</option>
- указывает команде <command>inc</command> на использование обычного POP3
- для сгрузки вашей электронной почты. В <application>MH</application>
- имеется поддержка нескольких разновидностей POP. Более чем вероятно, что
- вам никогда не придется ими пользоваться. Хотя с <command>inc</command>
- вы можете выполнять более сложные действия, такие, как проверка
- файлов и сканирование формата файлов, это позволит вам начать работу.</para>
-
- <para>Команда <command>msgchk</command> используется для получения
- информации о том, есть ли у вас новая почта. <command>msgchk</command>
- воспринимает те же самые параметры <option>-host</option> и
- <option>-user</option>, что и команда <command>inc</command>.</para>
- </sect2>
-
- <sect2 xml:id="show">
- <title><command>show</command>, <command>next</command> и
- <command>prev</command>&mdash;вывод и передвижение по электронной
- почте</title>
-
- <para><command>show</command> выводит письмо в вашей текущем почтовом
- ящике. Как и <command>inc</command>, команда <command>show</command>
- незатейлива. Если вы просто наберете <userinput>show</userinput> и
- нажмете <keycap>return</keycap>, то она выдаст текущее сообщение. Вы
- можете также указать конкретные номера выводимых сообщений:</para>
-
- <informalexample>
- <screen>&prompt.user; <userinput>show 32 45 56</userinput></screen>
- </informalexample>
-
- <para>По этой команде выведутся сообщения с номерами 32, 45 и 56 друг за
- другом. Пока вы не поменяете действия по умолчанию, команда
- <command>show</command> в основном выполняет команду
- <command>more</command> над сообщением электронной почты.</para>
-
- <para><command>next</command> используется для перехода к следующему
- сообщению, а <command>prev</command> для перехода к предыдущему
- сообщению. Обе команды подразумевают выполнение команды
- <command>show</command>, поэтому при переходе к следующему сообщению
- оно будет автоматически выведено на экран.</para>
- </sect2>
-
- <sect2 xml:id="scan">
- <title><command>scan</command>&mdash;сканирование ваших сообщений</title>
-
- <para><command>scan</command> выдает краткий список сообщений в вашем
- текущем почтовом ящике. Вот пример того, что вам выдаст команда
- <command>scan</command>.</para>
-
- <informalexample>
- <screen>
- 30+ 01/16 Jordan K. Hubbar Re: FBSD 2.1&lt;&lt;&gt; Do you want a library instead of
- 31 01/16 Bruce Evans Re: location of bad144 table&lt;&lt;&gt;&gt; &gt;It would appea
- 32 01/16 Jordan K. Hubbar Re: video is up&lt;&lt;&gt; Anyway, mrouted won't run, ev
- 33 01/16 Michael Smith Re: FBSD 2.1&lt;&lt;Nate Williams stands accused of sa</screen>
- </informalexample>
-
- <para>Как и практически все в <application>MH</application>, этот
- вывод можно настроить. Это обычный формат вывода по умолчанию.
- В нем дается номер сообщения, дата, отправитель, строка темы и
- фрагмент начала письма, если он помещается. Знак
- <literal>+</literal> означает, что данное сообщение является
- текущим, так что при выполнении команды <command>show</command>
- будет выдано именно это сообщение.</para>
-
- <para>Одним из полезных параметров для команды scan является
- <option>-reverse</option>. При этом ваши сообщения будут выдаваться в
- порядке, при котором сообщения с наибольшими номерами следуют первыми,
- а сообщения с меньшими номерами последними. Другим полезным параметром
- для <command>scan</command> является чтение из файла. Если вы хотите
- просканировать почтовый ящик с входящей почтой во FreeBSD без
- использования команды <command>inc</command>, то это можно сделать
- командой <command>scan -file
- /var/mail/<replaceable>username</replaceable></command>. Это можно
- сделать с любым файлом в формате <database>mbox</database>.</para>
- </sect2>
-
- <sect2 xml:id="rmm">
- <title><command>rmm</command> и <command>rmf</command>&mdash;удаление
- текущего сообщения или почтового ящика</title>
-
- <para><command>rmm</command> используется для удаления почтового
- сообщения. По умолчанию обычно сообщение на самом деле не удаляется,
- а переименовывается и игнорируется командами <application>MH</application>.
- Вам нужно периодически просматривать сообщения и физически удалять
- <quote>удаленные</quote> сообщения.</para>
-
- <para>Команда <command>rmf</command> используется для удаления почтовых
- ящиков. Она не переименовывает файлы, а действительно их удаляет с
- диска, так что при использовании этой команды вам нужно быть
- внимательными.</para>
- </sect2>
-
- <sect2 xml:id="samplereading">
- <title>Типичный сеанс чтения с использованием MH</title>
-
- <para>Сначала вам нужно получить новую почту командой
- <command>inc</command>. Так что в командной строке наберите
- <command>inc</command> и нажмите <keycap>return</keycap>.</para>
-
- <informalexample>
- <screen>
-&prompt.user; <userinput>inc</userinput>
-Incorporating new mail into inbox...
-
- 36+ 01/19 Stephen L. Lange Request...&lt;&lt;Please remove me as contact for pind
- 37 01/19 Matt Thomas Re: kern/950: Two PCI bridge chips fail (multipl
- 38 01/19 Amancio Hasty Jr Re: FreeBSD and VAT&lt;&lt;&gt;&gt;&gt; Bill Fenner said: &gt; In
-&prompt.user;</screen>
- </informalexample>
-
- <para>При этом выдается ваша новая электронная почта, которая была
- добавлена в ваш почтовый ящик. Так что следующими действиями будут
- вывод сообщений по команде <command>show</command> и переход от
- сообщения к сообщению.</para>
-
- <informalexample>
- <screen>
-&prompt.user; <userinput>show</userinput>
-Received: by sashimi.wwa.com (Smail3.1.29.1 #2)
- id m0tdMZ2-001W2UC; Fri, 19 Jan 96 13:33 CST
-Date: Fri, 19 Jan 1996 13:33:31 -0600 (CST)
-From: "Stephen L. Lange" &lt;stvlange@wwa.com&gt;
-To: matt@garply.com
-Subject: Request...
-Message-Id: &lt;Pine.BSD.3.91.960119133211.824A-100000@sashimi.wwa.com&gt;
-Mime-Version: 1.0
-Content-Type: TEXT/PLAIN; charset=US-ASCII
-
-
-Please remove me as contact for pindat.com
-
-&prompt.user; <userinput>rmm</userinput>
-&prompt.user; <userinput>next</userinput>
-Received: from localhost (localhost [127.0.0.1]) by whydos.lkg.dec.com (8.6.11/8
-.6.9) with SMTP id RAA24416; Fri, 19 Jan 1996 17:56:48 GMT
-Message-Id: &lt;199601191756.RAA24416@whydos.lkg.dec.com&gt;
-X-Authentication-Warning: whydos.lkg.dec.com: Host localhost didn't use HELO pro
-tocol
-To: hsu@clinet.fi
-Cc: hackers@FreeBSD.org
-Subject: Re: kern/950: Two PCI bridge chips fail (multiple multiport ethernet
- boards)
-In-Reply-To: Your message of "Fri, 19 Jan 1996 00:18:36 +0100."
- &lt;199601182318.AA11772@Sysiphos&gt;
-X-Mailer: exmh version 1.5omega 10/6/94
-Date: Fri, 19 Jan 1996 17:56:40 +0000
-From: Matt Thomas &lt;matt@lkg.dec.com&gt;
-Sender: owner-hackers@FreeBSD.org
-Precedence: bulk
-
-
-This is due to a typo in pcireg.h (to
-which I am probably the guilty party).</screen>
- </informalexample>
-
- <para>По команде <command>rmm</command> было удалено текущее сообщение, а
- по команде <command>next</command> был выполнен переход к следующему
- сообщению. Теперь, если я захочу просмотреть десять последних
- сообщений для чтения одного из них, я должен сделать следующее:</para>
-
- <informalexample>
- <screen>&prompt.user; <userinput>scan last:10</userinput>
- 26 01/16 maddy Re: Testing some stuff&lt;&lt;yeah, well, Trinity has
- 27 01/17 Automatic digest NET-HAPPENINGS Digest - 16 Jan 1996 to 17 Jan 19
- 28 01/17 Evans A Criswell Re: Hey dude&lt;&lt;&gt;From matt@tempest.garply.com Tue
- 29 01/16 Karl Heuer need configure/make volunteers&lt;&lt;The FSF is looki
- 30 01/18 Paul Stephanouk Re: [alt.religion.scientology] Raw Meat (humor)&lt;
- 31 01/18 Bill Lenherr Re: Linux NIS Solaris&lt;&lt;--- On Thu, 18 Jan 1996 1
- 34 01/19 John Fieber Re: Stuff for the email section?&lt;&lt;On Fri, 19 Jan
- 35 01/19 support@foo.garpl [garply.com #1138] parlor&lt;&lt;Hello. This is the Ne
- 37+ 01/19 Matt Thomas Re: kern/950: Two PCI bridge chips fail (multipl
- 38 01/19 Amancio Hasty Jr Re: FreeBSD and VAT&lt;&lt;&gt;&gt;&gt; Bill Fenner said: &gt; In
-&prompt.user;</screen>
- </informalexample>
-
- <para>Теперь, если я хочу прочесть сообщение номер 27, я выполняю команду
- <userinput>show 27</userinput>, и сообщение будет показано. Как вы
- можете видеть на примере этого простого сеанса работы,
- <application>MH</application> весьма легок в использовании, а
- просмотр электронной почты и ее вывод интуитивен и прост.</para>
- </sect2>
- </sect1>
-
- <sect1>
- <title>Папки и поиск почты</title>
-
- <para>Любому, кто получает много электронной почты, определенно требуется
- сортировать, помечать, сжимать и нумеровать свою электронную почту
- различными способами. <application>MH</application> может делать
- это лучше, чем какой-либо другой инструмент. Мы пока еще не обсуждали
- концепцию папок. Несомненно, вы уже встречались с папками при
- использовании других почтовых программ. В <application>MH</application>
- также используются папки. <application>MH</application> может даже
- создавать в папках вложенные в них папки. При работе с
- <application>MH</application> вы должны помнить, что при запуске команды
- <command>inc</command> первый раз она запрашивает создание каталога
- <filename>Mail</filename> и начинает сохранять все в этом каталоге. Если
- вы посмотрите на содержимое этого каталога, то обнаружите там каталог с
- именем <filename>inbox</filename>. В этом каталоге находится вся ваша
- входящая почта, которая не была еще никуда перемещена.</para>
-
- <para>При создании новой папки в каталоге программы <application>MH</application>
- <filename>Mail</filename> будет создан новый каталог, а сообщения этой
- папки будут размещаться в этом каталоге. Когда приходит новая
- электронная почта, то она размещается в каталоге
- <filename>inbox</filename> в файле с именем, соответствующим номеру
- сообщения. Поэтому, даже если у вас нет ни одного инструмента
- <application>MH</application> для чтения вашей электронной почты,
- вы можете продолжать использовать стандартные &unix; команды для
- работы с этими каталогами и просмотра ваших файлов. Такой
- упрощенный подход на самом деле дает вам простор для
- действий, которые вы можете выполнять над вашей электронной
- почтой.</para>
-
- <para>Так же, как вы можете использовать список сообщений типа
- <parameter>23 16 42</parameter> с большинством команд
- <application>MH</application>, имеется режим и для папок, который вы
- можете задать практически с каждой командой <application>MH</application>.
- Если вы выполняете команду <command>scan +freebsd</command>, она будет
- сканировать вашу папку <filename>freebsd</filename>, а ваша текущая папка
- будет изменена на <filename>freebsd</filename>. При выполнении команды
- <command>show +freebsd 23 16 42</command>, <command>show</command>
- перейдет к вашей папке <filename>freebsd</filename> и выведет сообщения
- 23, 16 и 42. Поэтому запомните этот синтаксис
- <option>+<replaceable>folder</replaceable></option>. Вам нужно
- использовать такие команды для работы с разными папками. Помните, что
- вашей папкой для почты по умолчанию является <filename>inbox</filename>,
- так что выполнение команды <command>folder +inbox</command> должно всегда
- вернуть вас обратно к вашей почте. Конечно, с бесконечной гибкостью
- <application>MH</application> такое поведение может быть изменено, но
- в большинстве случаев лучше оставить папку <command>inbox</command>.</para>
-
- <sect2>
- <title><command>pick</command>&mdash;поиск почты по некоторому
- критерию</title>
-
- <para>Команда <command>pick</command> является одной из более сложных
- команд в системе <application>MH</application>. Так что вам может
- понадобиться прочесть справочную страницу по
- <citerefentry><refentrytitle>pick</refentrytitle><manvolnum>1</manvolnum></citerefentry>
- для его более полного понимания. В простейшем случае вы можете делать
- нечто вроде следующего:</para>
-
- <informalexample>
- <screen>&prompt.user; <userinput>pick -search pci</userinput>
-15
-42
-55
-56
-57</screen>
- </informalexample>
-
- <para>Команде <command>pick</command> будет указано на просмотр каждой
- строки всех сообщений в текущей папке и выдачу номеров тех сообщений,
- в которых было найдено слово <literal>pci</literal>. Затем по команде
- <command>show</command> вы можете вывести эти сообщения и прочесть их
- или удалить командой <command>rmm</command>. Вам нужно задать команды
- типа <command>show 15 42 55-57</command> для их вывода. Более полезной
- сделать следующее:</para>
-
- <informalexample>
- <screen>
-&prompt.user; <userinput>pick -search pci -seq pick</userinput>
-5 hits
-&prompt.user; <userinput>show pick</userinput></screen>
- </informalexample>
-
- <para>При этом будут выведены те же самые сообщения, но вам не придется
- тратить на них столько усилий. Параметр <option>-seq</option> на самом
- деле является сокращенным вариантом для <option>-sequence</option>, а
- <command>pick</command> является именем последовательности, которая
- содержит номера сообщений, которые удовлетворяют заданному условию. Вы
- можете использовать последовательности практически с любой командой
- <application>MH</application>. Так что вы можете выполнить команду
- <command>rmm pick</command>, и все эти сообщения будут удалены. Вы
- можете именовать последовательности как угодно. Если вы снова выполните
- команду pick, то она перезапишет старую последовательность, если вы
- используете то же самое имя.</para>
-
- <para>Выполнение команды <command>pick -search</command> может оказаться
- более длительной операцией, чем просто поиск сообщений от кого-то или
- для кого-то. Поэтому <command>pick</command> позволяет вам
- использовать такой предопределенный критерий поиска:</para>
-
- <variablelist>
- <varlistentry>
- <term><option>-to</option></term>
-
- <listitem>
- <para>поиск по адресату сообщения</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-cc</option></term>
-
- <listitem>
- <para>поиск по содержимому <literal>cc</literal>-списка</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-from</option></term>
-
- <listitem>
- <para>поиск по тому, от кого исходит сообщение</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-subject</option></term>
-
- <listitem>
- <para>поиск электронной почты с заданной темой письма</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>-date</option></term>
-
- <listitem>
- <para>поиск электронных писем с указанной датой</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><option>--<replaceable>component</replaceable></option></term>
-
- <listitem>
- <para>поиск по любому другому компоненту заголовка письма. (То есть
- <option>--reply-to</option> для поиска всех электронных писем с
- определенным значением поля reply-to в заголовке)</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>Это позволяет вам выполнять действия типа
-
- <informalexample>
-<screen>&prompt.user; <userinput>pick -to freebsd-hackers@FreeBSD.org -seq hackers</userinput></screen>
- </informalexample>
-
- для получения списка всех электронных писем, посланных в список
- рассылки FreeBSD hackers. Команда <command>pick</command> также
- позволяет вам группировать эти критерии различными способами при помощи
- следующих параметров:</para>
-
- <itemizedlist>
- <listitem>
- <para>&hellip; <option>-and</option> &hellip;</para>
- </listitem>
-
- <listitem>
- <para>&hellip; <option>-or</option> &hellip;</para>
- </listitem>
-
- <listitem>
- <para><option>-not</option> &hellip;</para>
- </listitem>
-
- <listitem>
- <para><option>-lbrace</option> &hellip;
- <option>-rbrace</option></para>
- </listitem>
- </itemizedlist>
-
- <para>Эти команды позволяют вам выполнять следующее</para>
-
- <informalexample>
- <screen>&prompt.user; <userinput>pick -to freebsd-hackers -or -cc freebsd-hackers</userinput></screen>
- </informalexample>
-
- <para>При этом будет взята вся почта в вашем входящем
- почтовом ящике <filename>inbox</filename>,
- которая была послана по адресу freebsd-hackers или этот адрес
- присутствовал в cc-списке. Параметры brace позволяют вам группировать
- критерии поиска. Иногда это очень нужно, как в следующем
- примере</para>
-
- <informalexample>
- <screen>&prompt.user; <userinput>pick -lbrace -to freebsd-hackers -and
- -not -cc freebsd-questions -rbrace -and -subject pci</userinput></screen>
- </informalexample>
-
- <para>В общем, это означает <quote>выбрать (во freebsd-hackers и не
- в cc-списке для freebsd-questions) с темой pci</quote>. По этой
- команде должна быть просмотрена ваша папка и найдены все сообщения,
- посланные в список freebsd-hackers, которые не были также включены в
- cc-список для freebsd-questions, и в строке темы которых присутствовало
- упоминание <quote>pci</quote>. Теперь вам стоит задуматься о том,
- что называется порядком выполнения операторов. Помните, как при
- вычислении значений математических выражений вы начинали слева
- направо и сначала умножали и делили, и только потом складывали
- и вычитали? В <application>MH</application> присутствует тот же набор
- правил для команды <command>pick</command>. Он достаточно
- сложен, так что вам нужно будет изучить справочную страницу. Этот
- документ только знакомит с <application>MH</application>.</para>
- </sect2>
-
- <sect2>
- <title><command>folder</command>, <command>folders</command>,
- <command>refile</command>&mdash;три полезные программы для управления
- папками</title>
-
- <para>Имеются три программы, которые предназначены только для управления
- вашими папками. Программа <command>folder</command> используется для
- переключения между папками, их сжатия и вывода их списка. В самом
- простом случае вы можете выполнить команду <command>folder
- +<replaceable>newfolder</replaceable></command>, и вы переключитесь на
- папку <replaceable>newfolder</replaceable>. С этого момента все ваши
- команды <application>MH</application> типа <command>comp</command>, <command>repl</command>,
- <command>scan</command> и <command>show</command> будут выполняться над
- этой папкой <command>newfolder</command>.</para>
-
- <para>Иногда при чтении и удалении сообщений в ваших папках образуются
- <quote>holes</quote>. Если вы выполните команду
- <command>scan</command>, то можете увидеть только сообщения 34, 35, 36,
- 43, 55, 56, 57, 80. Если вы выполните команду
- <command>folder -pack</command>, то она перенумерует все ваши
- сообщения, так что там не будет дыр. Однако она не удаляет никаких
- сообщений. Так что вам может понадобиться периодически просматривать
- и физически удалять <command>rmm</command>-сообщения.</para>
-
- <para>Если вам нужна информация о ваших папках, вы можете получить ее
- командами <command>folders</command> или
- <command>folder -all</command>, которые выводят список всех ваших
- папок, количество хранящихся в них сообщений, номер текущего сообщения
- в каждой папке, и так далее. Такая строка статистики, которую выводят
- эти команды для всех папок, имеет тот же самый вид, что вы получаете
- при смене папки по команде <command>folder +foldername</command>.
- Результат выполнения команды <command>folders</command> выглядит
- примерно так:</para>
-
- <informalexample>
- <screen> Folder # of messages ( range ); cur msg (other files)
- announce has 1 message ( 1- 1).
- drafts has no messages.
- f-hackers has 43 messages ( 1- 43).
- f-questions has 16 messages ( 1- 16).
- inbox+ has 35 messages ( 1- 38); cur= 37.
- lists has 8 messages ( 1- 8).
- netfuture has 1 message ( 1- 1).
- out has 31 messages ( 1- 31).
- personal has 6 messages ( 1- 6).
- todo has 58 messages ( 1- 58); cur= 1.
-
- TOTAL= 199 messages in 13 folders.</screen>
- </informalexample>
-
- <para>Команду <command>refile</command> нужно использовать для
- перемещения сообщения между папками. Когда вы выполняете команду типа
- <command>refile 23 +netfuture</command>, то сообщение номер 23
- перемещается в папку <filename>netfuture</filename>. Вы можете также
- выполнить команду типа <command>refile 23 +netfuture/latest</command>,
- которая поместит сообщение номер 23 в папку с именем
- <filename>latest</filename>, вложенную в папку
- <filename>netfuture</filename>. Если вы хотите сохранить сообщение
- в текущей папке и связать его, вы можете выполнить команду
- <command>refile -link 23 +netfuture</command>, которая оставит 23
- в вашем текущей папке <filename>inbox</filename>, но также и в вашей
- папке <filename>netfuture</filename>. Наверное, вы уже начали
- понимать, какие по настоящему мощные действия вы можете выполнять с
- <application>MH</application>.</para>
- </sect2>
- </sect1>
-
- <sect1>
- <title>Посылка почты</title>
-
- <para>Электронная почта для большинства людей является улицей с движением
- в два ряда, так что вы можете захотеть послать что-то обратно. Способ,
- каким <application>MH</application> выполняет посылку почты, может
- сначала показаться трудным для использования, но он обеспечивает
- удивительную гибкость. Сначала <application>MH</application>
- копирует файл компонентов в исходящую электронную почту. Файл
- компонентов в основном представляет собой скелет электронного письма с уже
- помещенными туда заголовками <literal>To:</literal> и <literal>Subject:</literal>.
- Затем вы отсылаетесь к редактору текстов, в котором вы заполняете
- информацию заголовков и набираете тело письма ниже разделительных
- строк. При закрытии редактора вызывается программа
- <command>whatnow</command>. Находясь в приглашении
- <prompt>What now?</prompt>, вы можете выбрать одно из действий
- <command>send</command>, <command>list</command>,
- <command>edit</command>, <command>push</command> или
- <command>quit</command>. Большинство этих команд говорят сами за себя.
- Итак, процесс посылки сообщения включает
- копирование файла компонент, редактирование вашей электронной почты и
- указание программе <command>whatnow</command> действия, которое нужно
- сделать с вашей электронной почтой.</para>
-
- <sect2>
- <title><command>comp</command>, <command>forw</command>,
- <command>reply</command>&mdash;создание, пересылка или ответ на
- чье-либо сообщение</title>
-
- <para>Программа <command>comp</command> имеет несколько полезных
- параметров командной строки. Самой важной сейчас является опция
- <option>-editor</option>. При установке <application>MH</application>
- используемым по умолчанию редактором обычно становится программа
- <command>prompter</command>, поставляемая с <application>MH</application>.
- Это не очень привлекательный редактор, он просто
- делает то, что должен делать. Так что когда вы собираетесь написать
- кому-либо письмо, вы можете воспользоваться командами
- <command>comp -editor /usr/bin/vi</command> или <command>comp -editor
- /usr/local/bin/pico</command>. После запуска
- <emphasis>comp</emphasis> вы оказываетесь в вашем редакторе и видите
- нечто вроде следующего:</para>
-
- <informalexample>
- <screen>To:
-cc:
-Subject:
---------</screen>
- </informalexample>
-
- <para>Вам нужно указать персону, которой вы посылаете почту, после строки
- <literal>To:</literal>. То же самое относится и к остальным
- заголовкам, так что вам нужно будет указать тему письма после строки
- <literal>Subject:</literal>. Затем вам просто нужно набрать тело
- письма после разделительной строки. Это может показаться несколько
- упрощенным, так как многие почтовые программы имеют специальные
- опросники, которые запрашивают у вас эту информацию, но необходимости в
- этом нет. Плюс это на самом деле дает вам дополнительную
- гибкость.</para>
-
- <informalexample>
- <screen>To:<userinput>freebsd-rave@FreeBSD.org</userinput>
-cc:
-Subject:<userinput>And on the 8th day God created the FreeBSD core team</userinput>
---------
-<userinput>Wow this is an amazing operating system. Thanks!</userinput></screen>
- </informalexample>
-
- <para>Теперь вы можете сохранить это сообщение и выйти из редактора. Вы
- увидите приглашение <prompt>What now?</prompt> и здесь можете набрать
- <userinput>send</userinput> или <userinput>s</userinput> и нажать
- <keycap>return</keycap>. После этого основная группа разработчиков
- FreeBSD получит свои слова восхищения. Как я отмечал выше, вы можете
- также воспользоваться другими командами в приглашении <prompt>What now?</prompt>. Например,
- вы можете использовать <command>quit</command>, если не хотите посылать сообщение.</para>
-
- <para>Команда <command>forw</command> ошеломляюще похожа. Большим
- отличием является то, что сообщение, которое вы пересылаете,
- автоматически включается в исходящее сообщение. Когда вы выполняете
- команду <command>forw</command>, она будет пересылать ваше текущее
- сообщение. Вы всегда можете указать на пересылку другого сообщения,
- выполняя команду <command>forw 23</command>, после чего в исходящее
- сообщение будет помещено сообщение номер 23, а не текущее сообщение.
- Кроме этих маленьких различий, команда <command>forw</command> работает
- абсолютно так же, как <command>comp</command>. Вы проходите через
- в точности такой же процесс посылки сообщения.</para>
-
- <para>По команде <command>repl</command> будет делаться ответ на текущее
- сообщение, если только вы не указали другой номер сообщения. Команда
- <command>repl</command> приложит все усилия, чтобы забежать вперед и
- заполнить некоторые заголовки почтового сообщения. Поэтому вы
- заметите, что в заголовке <literal>To:</literal> уже присутствует
- адрес получателя. Также уже будет заполнена строка
- <literal>Subject:</literal>. Затем вы проходите обычный процесс
- написания сообщения и на этом все завершается. Здесь полезно знать о
- параметре командной строки <option>-cc</option>. Вы можете
- использовать параметры <parameter>all</parameter>,
- <parameter>to</parameter>, <parameter>cc</parameter> и
- <parameter>me</parameter> после <option>-cc</option> для того, чтобы
- <command>repl</command> автоматически добавила различные адреса к
- <literal>Cc:</literal>-списку сообщения. Вы, наверное, заметили,
- что исходное сообщение не будет включаться. Это происходит, потому
- что в большинстве настроек <application>MH</application> так
- указано изначально.</para>
- </sect2>
-
- <sect2>
- <title>Файлы <filename>components</filename> и
- <filename>replcomps</filename>&mdash;файлы компонент для команд
- <command>comp</command> и <command>repl</command></title>
-
- <para>Файл <filename>components</filename> обычно располагается в
- каталоге <filename>/usr/local/lib/mh</filename>. Вы можете скопировать
- этот файл в ваш каталог Mail для <application>MH</application> и
- отредактировать его так, чтобы он содержал то, что вы хотите. Это
- достаточно простой файл. В начале файла расположены различные
- почтовые заголовки, разделительная строка и больше ничего. Команда
- <command>comp</command> просто копирует этот
- файл <filename>components</filename> и затем редактирует его. Вы
- можете добавить любой соответствующий стандарту RFC822 заголовок.
- Например, в вашем файле <filename>components</filename> вы можете
- поместить следующее:</para>
-
- <informalexample>
- <screen>
-To:
-Fcc: out
-Subject:
-X-Mailer: MH 6.8.3
-X-Home-Page: http://www.FreeBSD.org/
--------</screen>
- </informalexample>
-
- <para>Тогда <application>MH</application> будет копировать этот файл
- компонентов и передаст его в ваш редактор. Файл
- <filename>components</filename> весьма прост. Если
- вы хотите в сообщениях иметь подпись, просто поместите вашу подпись в
- этот файл <filename>components</filename>.</para>
-
- <para>Файл <filename>replcomps</filename> несколько более сложен. По
- умолчанию <filename>replcomps</filename> имеет такой вид:</para>
-
- <informalexample>
- <screen>
-%(lit)%(formataddr %&lt;{reply-to}%?{from}%?{sender}%?{return-path}%&gt;)\
-%&lt;(nonnull)%(void(width))%(putaddr To: )\n%&gt;\
-%(lit)%(formataddr{to})%(formataddr{cc})%(formataddr(me))\
-%&lt;(nonnull)%(void(width))%(putaddr cc: )\n%&gt;\
-%&lt;{fcc}Fcc: %{fcc}\n%&gt;\
-%&lt;{subject}Subject: Re: %{subject}\n%&gt;\
-%&lt;{date}In-reply-to: Your message of "\
-%&lt;(nodate{date})%{date}%|%(pretty{date})%&gt;."%&lt;{message-id}
- %{message-id}%&gt;\n%&gt;\
---------</screen>
- </informalexample>
-
- <para>Он имеет такой же простой формат, как и файл
- <filename>components</filename>, но содержит несколько дополнительных
- форматирующих кодов. Команда <literal>%(lit)</literal> определяет
- место для адреса. <literal>%(formataddr)</literal> является функцией,
- которая возвращает полный адрес электронной почты. Следующей частью
- является <literal>%&lt;</literal>, которая означает условие если и
- <literal>{reply-to}</literal> соответствует полю reply-to исходного
- сообщения. Таким образом, это может быть проинтерпретировано
- следующим образом:</para>
-
- <informalexample>
- <screen>
-%&lt;<emphasis remap="bf">if</emphasis> {reply-to}
-<emphasis remap="bf">в исходном сообщении имеется поле reply-to</emphasis>
-то передать его в formataddr, %? <emphasis remap="bf">else</emphasis> {from}
-<emphasis remap="bf">взять адрес from</emphasis>,
-%? <emphasis remap="bf">else</emphasis> {sender}
-<emphasis remap="bf">взять адрес sender</emphasis>, %?
-<emphasis remap="bf">else</emphasis> {return-path}
-<emphasis remap="bf">взять return-path из исходного сообщения</emphasis>,
-%&gt; <emphasis remap="bf">endif</emphasis>.</screen>
-
- </informalexample>
-
- <para>Как вы можете видеть, форматирование <application>MH</application>
- может быть достаточно сложным. Вы можете выяснить, что значат остальные
- функции и переменные. Вся информация по написанию строк в таком формате
- находится в справочной странице по MH. Действительно удобной вещью
- является то, что единожды создав собственный файл
- <filename>replcomps</filename>, вам не нужно больше его трогать. Ни
- одна другая почтовая программа не даст вам той мощи и гибкости, что
- дает вам <application>MH</application>.</para>
- </sect2>
- </sect1>
-</article>
diff --git a/ru_RU.KOI8-R/articles/portbuild/Makefile b/ru_RU.KOI8-R/articles/portbuild/Makefile
deleted file mode 100644
index f9c065f12f..0000000000
--- a/ru_RU.KOI8-R/articles/portbuild/Makefile
+++ /dev/null
@@ -1,23 +0,0 @@
-#
-# The FreeBSD Russian Documentation Project
-#
-# $FreeBSD$
-# $FreeBSDru: frdp/doc/ru_RU.KOI8-R/articles/portbuild/Makefile,v 1.1 2004/07/10 09:56:33 marck Exp $
-#
-# Original revision: r21147
-#
-# Article: Portbuild Procedure
-#
-
-DOC?= article
-
-FORMATS?= html
-WITH_ARTICLE_TOC?= YES
-
-INSTALL_COMPRESSED?= gz
-INSTALL_ONLY_COMPRESSED?=
-
-SRCS= article.xml
-
-DOC_PREFIX?= ${.CURDIR}/../../..
-.include "${DOC_PREFIX}/share/mk/doc.project.mk"
diff --git a/ru_RU.KOI8-R/articles/portbuild/article.xml b/ru_RU.KOI8-R/articles/portbuild/article.xml
deleted file mode 100644
index e214f244f6..0000000000
--- a/ru_RU.KOI8-R/articles/portbuild/article.xml
+++ /dev/null
@@ -1,753 +0,0 @@
-<?xml version="1.0" encoding="koi8-r"?>
-<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN"
- "http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd">
-<!--
- The FreeBSD Russian Documentation Project
-
- $FreeBSDru: frdp/doc/ru_RU.KOI8-R/articles/portbuild/article.xml,v 1.11 2007/05/15 19:23:49 gad Exp $
-
- Original revision: r28574
--->
-<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>
- <author><orgname>Группа поддержки портов &os;</orgname></author>
- </authorgroup>
-
- <copyright>
- <year>2003</year>
- <year>2004</year>
- <year>2005</year>
- <year>2006</year>
- <holder role="mailto:portmgr@FreeBSD.org">Группа поддержки портов
- &os;</holder>
- </copyright>
-
- <legalnotice xml:id="trademarks" role="trademarks">
- &tm-attrib.freebsd;
- &tm-attrib.intel;
- &tm-attrib.sparc;
- &tm-attrib.general;
- </legalnotice>
-
- <pubdate>$FreeBSD$</pubdate>
-
- <releaseinfo>$FreeBSD$</releaseinfo>
- </info>
-
- <sect1 xml:id="intro">
- <title>Введение</title>
-
- <para>Для того, чтобы подготовить предкомпилированные версии
- поддерживаемых приложений для &os;, на одном из <quote>Кластеров сборки
- пакетов</quote> регулярно производится сборка полного дерева портов.
- В настоящее время существует два таких кластера:
- <systemitem class="fqdomainname">pointyhat.FreeBSD.org</systemitem> и
- <systemitem class="fqdomainname">dosirak.kr.FreeBSD.org</systemitem>.</para>
-
- <para>Большая часть <quote>магии</quote> процесса сборки
- сосредоточена в дереве каталогов <filename>/var/portbuild</filename>.
- Если не оговаривается иное, все пути указаны относительно этого
- каталога. <replaceable>${arch}</replaceable> используется для указания
- на архитектуру платформы сборки (&i386;, alpha, &sparc64;, ia64 или
- amd64); <replaceable>${branch}</replaceable> описывает ветвь построения
- (4, 5, 5-exp, 6, 6-exp и 7).
- </para>
- </sect1>
-
- <sect1 xml:id="management">
- <title>Конфигурация машин-клиентов</title>
-
- <para>Клиенты архитектур &i386;, alpha, amd64 и два из &sparc64; клиентов
- загружаются по сети с <systemitem>pointyhat</systemitem>; прочие sparc64 клиенты
- и машины для сборки ia64 загружаются самостоятельно. Так или иначе, все
- они в процессе загрузки подготавливаются к сборке пакетов.
- </para>
-
- <para>В серии последних обновлений была добавлена поддержка
- <replaceable>несвязанных (disconnected)</replaceable> узлов кластера.
- Несвязанный узел не монтирует мастер-машину кластера по NFS, и может,
- таким образом, быть достаточно удален от центра. Мастер-машина копирует
- нужные данные (иерархии портов, исходных текстов системы,
- архивы системы, скрипты и т.п.) при помощи rsync на этапе начальной
- конфигурации узлов. Затем, каталог portbuild монтируется как nullfs
- для сборок пакетов.
- </para>
-
- <para>Псевдо-пользователь
- <systemitem class="username">ports-<replaceable>${arch}</replaceable></systemitem>
- может выполнить команду &man.ssh.1; от имени <systemitem class="username">root</systemitem>
- на любую клиентскую машину архитектуры
- <replaceable>${arch}</replaceable>.
- </para>
-
- <para>Скрипт <command>scripts/allgohans</command> используется для
- выполнения команд на всех клиентах архитектуры
- <replaceable>${arch}</replaceable>.
- </para>
-
- <para>Скрипт <command>scripts/checkmachines</command> отслеживает уровень
- загрузки узлов кластера и распределяет, какой из узлов будет строить
- очередной порт. Этот скрипт не слишком умен и время от времени умирает.
- Лучше всего запускать его при загрузке основной машины кластера
- (<systemitem>pointyhat</systemitem> или <systemitem>dosirak</systemitem>) в цикле
- &man.while.1;.
- </para>
- </sect1>
-
- <sect1 xml:id="setup">
- <title>Подготовка ограниченной среды сборки</title>
-
- <para>Пакеты собираются в ограниченной (<literal>chroot</literal>) среде,
- которая разворачивается скриптом <filename>portbuild</filename> из архива
- <filename><replaceable>${arch}</replaceable>/<replaceable>${branch}</replaceable>/tarballs/bindist.tar</filename>.
- Этот архив создается при помощи скрипта <command>mkbindist</command>,
- конфигурация которого описывается файлом
- <filename><replaceable>${arch}</replaceable>/<replaceable>${branch}</replaceable>/mkbindist.conf</filename>.
- </para>
-
- <para>Скрипт должен запускаться с правами пользователя
- <systemitem class="username">root</systemitem> и следующими параметрами:
- </para>
-
- <screen>/var/portbuild&prompt.root; <userinput>scripts/mkbindist <replaceable>${arch}</replaceable> <replaceable>${branch}</replaceable></userinput></screen>
-
- <para>При указании в файле <filename>mkbindist.conf</filename> параметра
- <literal>ftp=1</literal> с адреса
- ftp://<replaceable>${ftpserver}</replaceable>/<replaceable>${ftpurl}</replaceable>/<replaceable>${rel}</replaceable>
- будет загружен предварительно собранный релиз.
- Если указано <literal>ftp=0</literal> и <literal>buildworld=1</literal>,
- скрипт <command>mkbindist</command> выполнит
- <command>makeworld</command> для того, чтобы собрать релиз на месте
- [<literal>XXX</literal> Эта часть в настоящее время не работает].
- </para>
-
- <para>Если оба параметра равны нулю (<literal>ftp=0</literal> и
- <literal>buildworld=0</literal>), то <command>mkbindist</command>
- будет использовать существующее на момент запуска состояние дерева
- <replaceable>${worlddir}</replaceable> для создания
- <filename>bindist.tar</filename>. На практике это означает, что вы
- должны предварительно установить систему в ${worlddir}, что обычно
- делается при помощи скрипта <command>makeworld</command>:
- </para>
-
- <screen>/var/portbuild&prompt.root; <userinput>scripts/makeworld <replaceable>${arch}</replaceable> <replaceable>${branch}</replaceable> [-nocvs]</userinput></screen>
-
- <para>Эта команда соберет систему на базе исходных текстов в дереве
- <filename><replaceable>${arch}</replaceable>/<replaceable>${branch}</replaceable>/src</filename>
- и установит ее в <replaceable>${worlddir}</replaceable>.
- Исходные тексты будут обновлены, если не указан параметр
- <literal>-nocvs</literal>.
- </para>
-
- <para>Содержимое архива <filename>bindist.tar</filename> будет распаковано
- на каждом клиенте в период загрузки, а также на старте каждого прохода
- скрипта <command>dopackages</command>.
- </para>
- </sect1>
-
- <sect1 xml:id="starting">
- <title>Запуск сборки</title>
-
- <para>Для сборки пакетов используются скрипты
- <filename>scripts/dopackages*</filename>. Наиболее полезными являются:
- </para>
-
- <itemizedlist>
- <listitem>
- <para><command>dopackages.4</command> - собирает пакеты для версии 4.X
- </para>
- </listitem>
-
- <listitem>
- <para><command>dopackages.5</command> - собирает пакеты для версии 5.X
- </para>
- </listitem>
-
- <listitem>
- <para><command>dopackages.5-exp</command> - производит сборку ветви
- для версии 5.X с экспериментальными изменениями (ветвь 5-exp)
- </para>
- </listitem>
-
- <listitem>
- <para><command>dopackages.6</command> - собирает пакеты для версии 6.X
- </para>
- </listitem>
-
- <listitem>
- <para><command>dopackages.6-exp</command> - производит сборку ветви
- для версии 6.X с экспериментальными изменениями (ветвь 6-exp)
- </para>
- </listitem>
-
- <listitem>
- <para><command>dopackages.7</command> - собирает пакеты для версии 7.X
- </para>
- </listitem>
-
- </itemizedlist>
-
- <para>Все они вызывают универсальный скрипт <command>dopackages</command>,
- и являются символьными ссылками на <command>dopackages.wrapper</command>.
- Для создания скрипта для сборки пакетов новой ветви достаточно создать
- символическую ссылку <command>dopackages.${branch}</command>, указывающую
- на <command>dopackages.wrapper</command>. Могут быть указаны
- многочисленные параметры, например:</para>
-
- <screen><command>dopackages.6 <replaceable>${arch}</replaceable> [-options]</command></screen>
-
- <para><literal>[-options]</literal> может быть произвольным набором из
- следующих опций:</para>
-
- <itemizedlist>
- <listitem>
- <para><literal>-nofinish</literal> - Не производить пост-обработку
- по завершении сборки. Полезно, если процесс сборки потребуется
- рестартовать. В обычных ситуациях эту опцию следует использовать
- всегда.
- </para>
- </listitem>
-
- <listitem>
- <para><literal>-finish</literal> - Произвести пост-обработку
- (и только: собственно сборку не производить).
- </para>
- </listitem>
-
- <listitem>
- <para><literal>-restart</literal> - Рестартовать прерванный
- (или незавершенный, т.е. запущенный без флага
- <literal>-finish</literal>) процесс сборки с самого начала.
- При этом порты, попытка сборки которых на предыдущем проходе
- завершилась неудачно, будут пересобраны.
- </para>
- </listitem>
-
- <listitem>
- <para><literal>-continue</literal> - Продолжить прерванный
- (или незавершенный) процесс сборки. Порты, не прошедшие
- сборку, не пересобираются.
- </para>
- </listitem>
-
- <listitem>
- <para><literal>-incremental</literal> - Сравнить необходимые поля
- в текущем файле <literal>INDEX</literal> с его предыдущим состоянием,
- удалить пакеты и журналы их сборки для обновившихся портов и
- пересобрать их. Этот ключ позволяет существенно сократить время
- сборки, поскольку нет необходимости пересобирать каждый раз не изменившиеся
- порты.
- </para>
- </listitem>
-
- <listitem>
- <para><literal>-cdrom</literal> - Текущая сборка предназначена для
- помещения на CD-ROM, поэтому исходные архивы и пакеты портов,
- помеченных <literal>NO_CDROM</literal> должны быть удалены при
- пост-обработке.
- </para>
- </listitem>
-
- <listitem>
- <para><literal>-nobuild</literal> - Произвести первоначальную
- подготовку, не запуская собственно процесс сборки пакетов.
- </para>
- </listitem>
-
- <listitem>
- <para><literal>-noindex</literal> - Не перестраивать файл
- <filename>INDEX</filename> в ходе препроцессинга.
- </para>
- </listitem>
-
- <listitem>
- <para><literal>-noduds</literal> - Не перестраивать файл
- <filename>duds</filename> (список портов, которые не будут строиться,
- например, помеченные признаками <literal>IGNORE</literal>,
- <literal>NO_PACKAGE</literal> и т.п.) перед процессом сборки.
- </para>
- </listitem>
-
- <listitem>
- <para><literal>-trybroken</literal> - Пытаться собрать порты,
- помеченные как <literal>BROKEN</literal> (по умолчанию выключено,
- поскольку кластер архитектуры &i386; довольно быстр, и при
- инкрементной сборке больше времени тратится на пересборку
- того, что все равно не сможет собраться.
- С другой стороны, кластеры других архитектур достаточно медленны,
- так что пытаться собирать на них порты с флагом
- <literal>BROKEN</literal> было бы напрасной тратой времени.
- </para>
- </listitem>
-
- <listitem>
- <para><literal>-nocvs</literal> - Не выполнять обновление
- (<command>cvs update</command>) дерева исходных текстов
- (<literal>src</literal>) на этапе препроцессинга.
- </para>
- </listitem>
-
- <listitem>
- <para><literal>-noportscvs</literal> - Не обновлять
- (<command>cvs update</command>) дерево портов
- (<literal>ports</literal>) на этапе препроцессинга.
- </para>
- </listitem>
-
- <listitem>
- <para><literal>-nodoccvs</literal> - Не обновлять
- (<command>cvs update</command>) дерево документации
- (<literal>doc</literal>) в ходе препроцессинга. (устаревшая опция)
- </para>
- </listitem>
-
- <listitem>
- <para><literal>-norestr</literal> - Не пытаться компилировать порты,
- помеченные как <literal>RESTRICTED</literal>.
- </para>
- </listitem>
-
- <listitem>
- <para><literal>-plistcheck</literal> - Считать ошибкой оставление
- лишних файлов после деинсталляции порта.
- </para>
- </listitem>
-
- <listitem>
- <para><literal>-distfiles</literal> - Собрать архивы исходных файлов
- (<literal>distfiles</literal>) для дальнейшего их переноса на
- <systemitem>ftp-master</systemitem>. Эту опцию следует использовать изредка,
- поскольку она требует очень много места. Исходные архивы следует
- удалить после загрузки их на <systemitem>ftp-master</systemitem>.
- </para>
- </listitem>
-
- <listitem>
- <para><literal>-fetch-original</literal> - Загружать исходные архивы
- с оригинальных сайтов, определенных переменными
- <literal>MASTER_SITES</literal>, а не с <systemitem>ftp-master</systemitem>.
- </para>
- </listitem>
- </itemizedlist>
-
- <para>Убедитесь, что процесс сборки пакетов для архитектуры
- <replaceable>${arch}</replaceable> запускается от имени пользователя
- ports-<replaceable>${arch}</replaceable>; в противном случае ошибки
- неизбежны.
- </para>
-
- <note><para>Сборка пакетов производится в два идентичных прохода. Иногда
- временные проблемы, такие как ошибки NFS или недоступность FTP-сайтов,
- могут прервать сборку. Дублирование попыток позволяет обойти подобные
- проблемы.
- </para></note>
-
- <para>Проверьте, чтобы <filename>ports/Makefile</filename>
- не ссылался на пустые подкаталоги. В особенности это важно для сборки
- ветви -exp. Если процесс сборки обнаруживает пустой каталог, обе
- фазы сборки вскоре остановятся. При этом в файлы
- <filename><replaceable>${arch}</replaceable>/<replaceable>${branch}</replaceable>/make.[0|1]</filename>
- будет записано сообщение об ошибке примерно такого вида:
- </para>
-
- <screen><literal>don't know how to make dns-all(continuing)</literal></screen>
-
- <para>Для исправления ситуации просто закомментируйте или удалите строчки
- <literal>SUBDIR</literal>, указывающие на пустые подкаталоги.
- После этого вы можете перезапустить сборку командой
- <command>dopackages</command>, добавив ей параметр
- <literal>-restart</literal>.
- </para>
-
- <note>
- <para>Та же проблема возникает при создании файла
- <filename>Makefile</filename> для новой категории, не содержащего
- ни одной ссылки на подкаталоги (<varname>SUBDIR</varname>).
- Это, скорее всего, ошибка, подлежащая исправлению.</para>
- </note>
- </sect1>
-
- <sect1 xml:id="anatomy">
- <title>Процесс сборки</title>
-
- <para>Полный процесс сборки без каких-либо ключей, начинающихся с
- <literal>-no</literal>, выполняет следующую последовательность
- операций:</para>
-
- <orderedlist>
- <listitem>
- <para>Обновление из CVS-репозитория текущего дерева
- <literal>ports</literal> [*]
- </para>
- </listitem>
-
- <listitem>
- <para>Обновление из CVS-репозитория дерева
- <literal>src</literal> необходимой ветви [*]
- </para>
- </listitem>
-
- <listitem>
- <para>Проверка файлов <filename>Makefile</filename> на отсутствие
- строк <literal>SUBDIR</literal> [*]
- </para>
- </listitem>
-
- <listitem>
- <para>Создание файла <filename>duds</filename>, содержащего список
- портов, которые не надо пытаться собирать [*] [+]
- </para>
- </listitem>
-
- <listitem>
- <para>Генерация нового файла <filename>INDEX</filename> [*] [+]
- </para>
- </listitem>
-
- <listitem>
- <para>Начальная подготовка узлов, которые будут участвовать в сборке
- [*] [+]
- </para>
- </listitem>
-
- <listitem>
- <para>Построение списка портов ограниченного распространения
- (restricted) [*] [+]</para>
- </listitem>
-
- <listitem>
- <para>Сборка пакетов (фаза 1) [++]</para>
- </listitem>
-
- <listitem>
- <para>Повторная установка узлов сборки [+]</para>
- </listitem>
-
- <listitem>
- <para>Сборка пакетов (фаза 2) [++]</para>
- </listitem>
- </orderedlist>
-
- <para>[*] Результаты выполнения этих шагов записываются в файл
- <filename><replaceable>${arch}</replaceable>/<replaceable>${branch}</replaceable>/build.log</filename>,
- а также в стандартный вывод для ошибок консоли, с которой запускался скрипт
- <command>dopackages</command>.</para>
-
- <para>[+] При неудачном завершении любого из этих шагов процесс
- прекращается.</para>
-
- <para>[++] Результаты выполнения пишутся в файл
- <filename><replaceable>${arch}</replaceable>/<replaceable>${branch}</replaceable>/make.[0|1]</filename>,
- где <filename>make.0</filename> соответствует первой, а
- <filename>make.1</filename> второй фазе сборки. Журналы сборки отдельных
- портов записываются в файлы
- <filename><replaceable>${arch}</replaceable>/<replaceable>${branch}</replaceable>/logs</filename>,
- а журналы портов, собравшихся неудачно, в
- <filename><replaceable>${arch}</replaceable>/<replaceable>${branch}</replaceable>/errors</filename>.
- </para>
-
- <para>Ранее из репозитория извлекалось также дерево документации;
- в настоящий момент это считается ненужным.
- </para>
- </sect1>
-
- <sect1 xml:id="interrupting">
- <title>Прерывание процесса сборки</title>
-
- <para>Для прерывания процесса сборки обычно достаточно послать сигнал
- <literal>HUP</literal> процессам <command>dopackages*</command>
- или вызванным ими процессам <command>make</command>. Процессы,
- запущенные на узлах сборки, завершатся самостоятельно в течение
- нескольких минут (их наличие следует проверять командой
- <command>ps x</command>). Обычно достаточно следующей команды:</para>
-
- <screen>&prompt.user; <userinput>killall -HUP sh ssh make</userinput></screen>
-
- <para>Удалите файл
- <filename><replaceable>${arch}</replaceable>/lock</filename>
- перед тем, как перезапустите сборку.
- </para>
- </sect1>
-
- <sect1 xml:id="monitoring">
- <title>Слежение за процессом</title>
-
- <para>Команда
- <command>scripts/stats <replaceable>${branch}</replaceable></command>
- показывает количество собранных на настоящий момент пакетов.</para>
-
- <para>Команда <command>cat /var/portbuild/*/loads/*</command>
- покажет текущую загрузку клиентских машин и количество процессов сборки,
- запущенных на них.</para>
-
- <para>Выполнение
- <command>tail -f <replaceable>${arch}</replaceable>/<replaceable>${branch}</replaceable>/build.log</command>
- продемонстрирует общее состояние процесса сборки.</para>
-
- <para>В случае, если порт не собирается, и из логов не понятны причины
- этого, вы можете сохранить рабочий каталог сборки
- (<literal>WRKDIR</literal>) для последующего анализа.
- Для этого создайте файл <filename>.keep</filename> в каталоге порта.
- При следующей сборке порта кластером архив <literal>WRKDIR</literal>
- будет помещен в файл
- <filename><replaceable>${arch}</replaceable>/<replaceable>${branch}</replaceable>/wrkdirs</filename>.
- </para>
-
- <para>Следите за выводом команды &man.df.1;. Если файловая система,
- содержащая <filename>/var/portbuild</filename>, переполнится, будет
- <trademark>Очень Плохо</trademark>.
- </para>
- </sect1>
-
- <sect1 xml:id="release">
- <title>Сборка пакетов для релизов</title>
-
- <para>При сборке пакетов для включения в релиз может потребоваться ручное
- обновление иерархий <literal>ports</literal> и <literal>src</literal>
- до нужного тэга, а также использование опций <literal>-nocvs</literal>
- и <literal>-noportscvs</literal>.</para>
-
- <para>Для подготовки комплекта пакетов для помещения на CD-ROM используйте
- параметр <literal>-cdrom</literal> при запуске
- <command>dopackages</command>.</para>
-
- <para>Если на кластере достаточно дискового пространства, можно применить
- ключ <literal>-distfiles</literal> для выкачивания дистрибутивных
- архивов.</para>
-
- <note><para>Первая сборка должна быть произведена с параметром
- <literal>-distfiles</literal>.</para></note>
-
- <para>По завершении первого процесса сборки перезапустите его с параметрами
- <literal>-restart -distfiles -fetch-original</literal>,
- для того чтобы выкачать обновленные дистрибутивы.
- Затем, на этапе финальной обработки, соберите список файлов при помощи
- команды</para>
-
- <screen>&prompt.user; <userinput>cd <replaceable>${arch}</replaceable>/<replaceable>${branch}</replaceable></userinput>
-&prompt.user; <userinput>find distfiles &gt; distfiles-<replaceable>${release}</replaceable></userinput></screen>
-
- <para>Этот файл обычно копируют в каталог
- <filename>i386/<replaceable>${branch}</replaceable></filename>
- главной машины кластера.</para>
-
- <para>Данная процедура помогает чистить комплект дистрибутивных архивов,
- располагающийся на <systemitem>ftp-master</systemitem>. Если дисковое
- пространство заканчивается, можно сохранить архивы для свежих релизов,
- а прочие&nbsp;&mdash; удалить.</para>
-
- <para>После копирования дистрибутивов (см. ниже) надо создать окончательный
- комплект пакетов для релиза. Для полного спокойствия, запустите скрипт
- <filename><replaceable>${arch}</replaceable>/<replaceable>${branch}</replaceable>/cdrom.sh</filename>
- вручную, чтобы быть уверенным, что все пакеты ограниченного
- распространения и их исходные архивы удалены. Затем скопируйте каталог
- <filename><replaceable>${arch}</replaceable>/<replaceable>${branch}</replaceable>/packages</filename>
- в
- <filename><replaceable>${arch}</replaceable>/<replaceable>${branch}</replaceable>/packages-<replaceable>${release}</replaceable></filename>.
- После того, как пакеты переложены в надежное место, свяжитесь с группой
- &a.re; и сообщите им расположение финального комплекта пакетов.</para>
-
- <para>Помните о необходимости координации с группой &a.re; по поводу
- времени и статуса сборки пакетов для релизов.
- </para>
- </sect1>
-
- <sect1 xml:id="uploading">
- <title>Загрузка пакетов для раздачи</title>
-
- <para>После завершения сборки пакеты и/или их исходные архивы
- могут быть загружены на <systemitem>ftp-master</systemitem> для
- раздачи по сети зеркал FTP. Если сборка велась с ключом
- <literal>-nofinish</literal>, не забудьте произвести пост-обработку
- при помощи команды <command>dopackages -finish</command> (будут удалены
- пакеты, помеченные как <literal>RESTRICTED</literal> и
- <literal>NO_CDROM</literal>, а также пакеты, отсутствующие в файле
- <filename>INDEX</filename>, из файла <filename>INDEX</filename> будут
- удалены ссылки на не собравшиеся пакеты, и, наконец, будет создан файл
- <filename>CHECKSUM.MD5</filename> с контрольными суммами собранных
- пакетов; кроме того, эта фаза переместит исходные архивы из каталога
- <filename>distfiles/.pbtmp</filename> в <filename>distfiles/</filename>,
- а также удалит исходные архивы для портов, помеченных как
- <literal>RESTRICTED</literal> и <literal>NO_CDROM</literal>).</para>
-
- <para>Хорошей идеей является запустить вручную скрипты
- <command>restricted.sh</command> и/или
- <command>cdrom.sh</command> после завершения работы
- <command>dopackages</command> просто для собственного спокойствия.
- Скрипт <command>restricted.sh</command> запускается перед копированием
- на <systemitem>ftp-master</systemitem>; затем, перед подготовкой финального
- набора пакетов для релиза выполните <command>cdrom.sh</command>.
- </para>
-
- <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>
-
- <para>Затем, на машине <systemitem>ftp-master</systemitem>, убедитесь, что набор
- пакетов скопирован корректно, удалите старый набор (из каталога
- <filename>~/w/ports/<replaceable>${arch}</replaceable></filename>),
- и переместите новый на его место.</para>
-
- <note><para>Некоторые каталоги на <systemitem>ftp-master</systemitem> на самом деле
- являются символьными ссылками. Убедитесь, что вы перемещаете новый набор
- пакетов в <emphasis>реальный</emphasis> каталог, а не на место
- расположения одной из ссылок.</para></note>
-
- <para>Для инкрементных сборок пакеты должны загружаться посредством
- <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>
-
- <para>Дистрибутивные архивы копируются при помощи команды
- <command>rsync</command>:</para>
-
- <screen>&prompt.root; <userinput>cd /var/portbuild/<replaceable>${arch}</replaceable>/<replaceable>${branch}</replaceable></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> для начала используйте ключ
- <literal>-n</literal> команды <command>rsync</command> и проверяйте
- ее вывод. Если все выглядит нормально, перезапустите
- <command>rsync</command> без опции <literal>-n</literal>.
- </para>
- </sect1>
-
- <sect1 xml:id="expbuilds">
- <title>Экспериментальная сборка</title>
-
- <para>Время от времени для тестирования новых возможностей или
- исправлений общей инфраструктуры портов (<literal>bsd.port.mk</literal>),
- а также для тестирования крупных обновлений, затрагивающих существенную
- часть пакетов, проводится сборка с экспериментальными патчами. Текущей
- экспериментальной веткой является <literal>6-exp</literal> в архитектуре
- &i386;.</para>
-
- <para>В целом, экспериментальная сборка производится так же, как и обычная.
- Основное отличие: перед запуском скрипта <literal>dopackages</literal>
- нужно применить к дереву портов необходимые изменения.
- Хорошей идеей будет сохранить копии всех изменяемых файлов, а также их
- список. К списку вы сможете вернуться перед произведением окончательного
- коммита.</para>
-
- <para>Для создания <quote>контрольного экземпляра</quote> для сравнения
- следует сначала произвести сборку той ветви архитектуры &i386;, на которой
- основана экспериментальная ветвь (в настоящее время это ветвь
- <literal>6</literal>). Перед экспериментальной сборкой выгрузите
- деревья src и ports на момент произведения контрольной сборки.
- В этом случае вы можете быть уверены, что сравниваете яблоки с яблоками.
- </para>
-
- <note><para>Два кластера сборки могут производить контрольную и
- экспериментальную сборку одновременно. Это может ощутимо сэкономить
- общее время сборки.</para></note>
-
- <para>По завершении сборки сравните результаты контрольной и
- экспериментальной сборок примерно такой командой (предполагается, что
- контрольной является ветка <literal>6</literal>, а
- экспериментальной&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 &gt; /tmp/6-exp-errs</userinput>
-&prompt.user; <userinput>cd /var/portbuild/i386/6/errors</userinput>
-&prompt.user; <userinput>find . -name \*.log\* | sort &gt; /tmp/6-errs</userinput></screen>
-
- <note><para>Если с момента завершения одной из сборок прошло достаточно
- много времени, журналы сборки могут быть автоматически архивированы
- bzip2. В этом случае используйте
- <literal>sort | sed 's,\.bz2,,g'</literal>.</para></note>
-
- <screen>&prompt.user; <userinput>comm -3 /tmp/6-errs /tmp/6-exp-errs | less</userinput></screen>
-
- <para>Результатом работы последней команды будет отчет, состоящий из двух
- столбцов. В первой колонке будут перечислены порты, сборка которых не
- удалась в контрольном, но не в экспериментальном случае; второй столбец
- описывает противоположную ситуацию. Причины, по которым порт может
- оказаться в первом списке, включают:</para>
-
- <itemizedlist>
- <listitem>
- <para>Порт был исправлен с момента последнего контрольного запуска,
- или обновлен до более свежей версии, которая также не собирается
- (порт с новой версией появится во втором столбце)
- </para>
- </listitem>
-
- <listitem>
- <para>Сборка порта исправлена патчами экспериментальной версии</para>
- </listitem>
-
- <listitem>
- <para>Порт не собирается экспериментальной сборкой из-за ошибок в
- зависимых портах
- </para>
- </listitem>
- </itemizedlist>
-
- <para>Во втором столбце порт может оказаться по следующим причинам:</para>
-
- <itemizedlist>
- <listitem>
- <para>Порт не собирается с экспериментальными изменениями [1]</para>
- </listitem>
-
- <listitem>
- <para>Порт был обновлен с момента контрольной сборки и стал
- несобираемым [2]
- </para>
- </listitem>
-
- <listitem>
- <para>Порт не собрался по причине временных ошибок (недоступный FTP
- сайт, ошибка ввода-вывода на клиенте и т.п.)
- </para>
- </listitem>
- </itemizedlist>
-
- <para>Перед коммитом экспериментальных обновлений необходимо изучить
- содержимое обоих столбцов. Чтобы отличить ситуации [1] и [2], можно
- пересобрать соответствующие пакеты в контрольной ветке:</para>
-
- <screen>&prompt.user; <userinput>cd /var/portbuild/i386/6/ports</userinput></screen>
-
- <note><para>Не забудьте обновить дерево портов до той же даты, что и дерево
- экспериментальной сборки.</para></note>
-
- <para>Для подготовки контрольной ветви используйте команду:</para>
-
- <screen>&prompt.user; <userinput>/var/portbuild/scripts/dopackages.6 -noportscvs -nobuild -nocvs -nofinish</userinput></screen>
-
- <para>Сборка должна производиться из каталога
- <literal>packages/All</literal>. Изначально этот каталог должен быть
- пуст, за исключением символьной ссылки Makefile. Если этой ссылки нет,
- создайте ее:</para>
-
- <screen>&prompt.user; <userinput>cd /var/portbuild/i386/6/packages/All</userinput>
-&prompt.user; <userinput>ln -sf ../../Makefile .</userinput>
-&prompt.user; <userinput>make -k -j&lt;#&gt; &lt;список пакетов для сборки&gt;</userinput></screen>
-
- <note><para>&lt;#&gt; описывает уровень параллелизма сборки.
- Обычно, это сумма весов клиентских машин, указанных в
- <filename>/var/portbuild/i386/mlist</filename>, если у вас нет причин
- проводить более тяжелую или, наоборот, облегченную сборку.</para></note>
-
- <para>&lt;список пакетов для сборки&gt; представляет собой список имен
- пакетов (включая их версии) в том виде, как они представлены в файле
- <filename>INDEX</filename>. Суффикс <literal>PKGSUFFIX</literal>
- (.tgz или .tbz) является необязательным.</para>
-
- <para>Будут собраны только указанные пакеты, а также их зависимые порты.</para>
-
- <para>Процесс сборки можно контролировать так же, как и стандартную сборку.
- После того, как все ошибки исправлены, вы можете произвести коммит
- комплекта исправлений. Является хорошим тоном отправить письмо
- с темой <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>
- </sect1>
-</article>