aboutsummaryrefslogtreecommitdiff
path: root/ru_RU.KOI8-R/books/handbook/ports/chapter.sgml
diff options
context:
space:
mode:
Diffstat (limited to 'ru_RU.KOI8-R/books/handbook/ports/chapter.sgml')
-rw-r--r--ru_RU.KOI8-R/books/handbook/ports/chapter.sgml1357
1 files changed, 1357 insertions, 0 deletions
diff --git a/ru_RU.KOI8-R/books/handbook/ports/chapter.sgml b/ru_RU.KOI8-R/books/handbook/ports/chapter.sgml
new file mode 100644
index 0000000000..c91a0d685c
--- /dev/null
+++ b/ru_RU.KOI8-R/books/handbook/ports/chapter.sgml
@@ -0,0 +1,1357 @@
+<!--
+ The FreeBSD Russian Documentation Project
+
+ $FreeBSD$
+ $FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/ports/chapter.sgml,v 1.67 2005/05/08 07:21:29 andy Exp $
+
+ Original revision: 1.240
+-->
+
+<chapter id="ports">
+ <chapterinfo>
+ <authorgroup>
+ <author>
+ <firstname>Андрей</firstname>
+ <surname>Захватов</surname>
+ <contrib>Перевод на русский язык: </contrib>
+ </author>
+ </authorgroup>
+ </chapterinfo>
+ <title>Установка приложений: порты и пакеты</title>
+
+ <sect1 id="ports-synopsis">
+ <title>Обзор</title>
+
+ <indexterm><primary>порты</primary></indexterm>
+
+ <indexterm><primary>пакеты</primary></indexterm>
+
+ <para>Вместе с FreeBSD в составе базового комплекта системы поставляется
+ богатый набор системный утилит. Однако для выполнения какой-то
+ реальной работы очень скоро возникает необходимость в установке
+ дополнительных приложений сторонних разработчиков. FreeBSD даёт две
+ взаимодополняющих технологии для установки программного обеспечения
+ сторонних разработчиков в вашу систему: Коллекция Портов FreeBSD и
+ бинарные пакеты с программным обеспечением. Любая из этих систем может
+ быть использована для установки самых последних версий ваших любимых
+ приложений с локальных носителей или прямо из сети.</para>
+
+ <para>После чтения этой главы вы будете знать:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Как устанавливать бинарные пакеты с программным обеспечением
+ сторонних разработчиков.</para>
+ </listitem>
+
+ <listitem>
+ <para>Как собирать программное обеспечение сторонних разработчиков при
+ помощи Коллекции Портов.</para>
+ </listitem>
+
+ <listitem>
+ <para>Как удалять ранее установленные пакеты или порты.</para>
+ </listitem>
+
+ <listitem>
+ <para>Как переопределить значения, используемые по умолчанию в
+ Коллекции Портов.</para>
+ </listitem>
+
+ <listitem>
+ <para>Как обновить ваши порты.</para>
+ </listitem>
+ </itemizedlist>
+ </sect1>
+
+ <sect1 id="ports-overview">
+ <title>Обзор установки программного обеспечения</title>
+
+ <para>Если вы использовали &unix;-системы ранее, то знаете, что
+ стандартная процедура установки программного обеспечения сторонних
+ разработчиков выглядит примерно так:</para>
+
+ <procedure>
+ <step>
+ <para>Загрузка программного обеспечения, которое может распространяться
+ в форме исходных текстов или двоичных файлов.</para>
+ </step>
+
+ <step>
+ <para>Распаковка программного обеспечения из дистрибутивного формата
+ (обычно tar-архива, сжатого при помощи &man.compress.1;,
+ &man.gzip.1; или &man.bzip2.1;).</para>
+ </step>
+
+ <step>
+ <para>Поиск документации (возможно, подойдут файлы
+ <filename>INSTALL</filename>, <filename>README</filename>
+ или несколько файлов из подкаталога <filename>doc/</filename>) и её
+ чтение в поиске описания установки программного обеспечения.</para>
+ </step>
+
+ <step>
+ <para>Если программное обеспечение распространялось в форме исходных
+ текстов, его компиляция. Сюда может быть включено редактирования
+ файла <filename>Makefile</filename>, запуск скрипта
+ <command>configure</command> и другие работы.</para>
+ </step>
+
+ <step>
+ <para>Тестирование и установка программного обеспечения.</para>
+ </step>
+ </procedure>
+
+ <para>И это только всё проходит нормально. Если вы устанавливаете
+ программный пакет, который был специально перенесён на FreeBSD, то вам
+ может даже потребоваться редактировать код для того, чтобы он нормально
+ заработал.</para>
+
+ <para>Если вы хотите, то можете продолжать устанавливать программное
+ обеспечение во FreeBSD <quote>традиционным</quote> способом. Однако
+ FreeBSD предоставляет две технологии, которые могут сохранить вам много
+ усилий: пакеты и порты. На момент написания таким образом были
+ доступны более &os.numports; сторонних приложений.</para>
+
+ <para>Для любого конкретно взятого приложения пакет FreeBSD
+ является одним файлом, который вы должны загрузить. Пакет
+ содержит уже откомпилированные копии всех команд приложения, а также
+ все конфигурационные файлы и документацию. Загруженным файлом пакета
+ можно управлять такими командами FreeBSD, как
+ &man.pkg.add.1; &man.pkg.delete.1;, &man.pkg.info.1; и так далее.
+ Установка нового приложения может выполняться единственной
+ командой.</para>
+
+ <para>Порт FreeBSD для приложения является набором файлов, предназначенных
+ для автоматизации процесса компиляции приложения из исходного
+ кода.</para>
+
+ <para>Вспомните, что обычно вы должны выполнить некоторое количество
+ шагов, если компилируете программу самостоятельно (загрузка, распаковка,
+ изменение кода, компиляция, установка). Файлы, составляющие порт,
+ содержат всю информацию, необходимую для того, чтобы система сделала это
+ за вас. Вы задаёте пару простых команд, и исходный код приложения
+ автоматически загружается, распаковывается, модифицируется, компилируется
+ и устанавливается.</para>
+
+ <para>Действительно, система портов может также использоваться для
+ генерации пакетов, которые позже могут управляться командой
+ <literal>pkg_add</literal> и другими командами управления пакетами, о
+ которых скоро будет рассказано.</para>
+
+ <para>Как пакеты, так и порты принимают во внимание
+ <emphasis>зависимости</emphasis>. Предположим, что вы хотите установить
+ приложение, которое зависит от некоторой установленной библиотеки. И
+ приложение, и библиотека доступны во FreeBSD в виде портов и пакетов.
+ Если вы используете команду <command>pkg_add</command> или систему
+ портов для добавления приложений, то в обоих случаях будет обнаружено,
+ что библиотека не была установлена, и сначала будет автоматически
+ выполнена установка библиотеки.</para>
+
+ <para>Видя, что обе технологии весьма похожи, вы можете удивиться, почему
+ во FreeBSD используются обе. И пакеты, и порты имеют свои
+ преимущества, так что выбор используемой вами системы зависит от ваших
+ собственных предпочтений.</para>
+
+ <itemizedlist>
+ <title>Преимущества пакетов</title>
+
+ <listitem>
+ <para>Сжатый tar-архив обычно меньше, чем сжатый tar-архив, содержащий
+ исходный код приложения.</para>
+ </listitem>
+
+ <listitem>
+ <para>Пакеты не требуют никакой дополнительной компиляции. Для таких
+ больших приложений, как <application>Mozilla</application>,
+ <application>KDE</application> или <application>GNOME</application>,
+ это может быть важно, в частности, если вы работаете на медленной
+ системе.</para>
+ </listitem>
+
+ <listitem>
+ <para>Пакеты не требуют понимания процесса компиляции
+ программного обеспечения во FreeBSD.</para>
+ </listitem>
+ </itemizedlist>
+
+ <itemizedlist>
+ <title>Преимущества портов</title>
+
+ <listitem>
+ <para>Пакеты обычно компилируются с консервативными параметрами,
+ потому что они должны работать на максимальном количестве систем.
+ При установке из порта вы можете изменять параметры компиляции для
+ того, чтобы (к примеру) генерировался код, специфичный для
+ процессора Pentium IV или Athlon.</para>
+ </listitem>
+
+ <listitem>
+ <para>Некоторые приложения имеют опции времени компиляции, связанные с
+ тем, что они могут или не могут делать. К примеру,
+ <application>Apache</application> может быть настроен с широким
+ набором различных опций. При построении из порта вы можете не
+ принимать параметры по умолчанию, и задать их самостоятельно.</para>
+
+ <para>В некоторых случаях для одного и того же приложения будут
+ иметься несколько пакетов для указания конкретных настроек.
+ Например, <application>Ghostscript</application> имеется как пакет
+ <filename>ghostscript</filename> и как пакет
+ <filename>ghostscript-nox11</filename>, в зависимости от того,
+ установили вы сервер X11 или нет. Такой тип грубой настройки
+ возможен при использовании пакетов, но быстро становится
+ недостижим, если приложение имеет более одного или двух параметров
+ компиляции.</para>
+ </listitem>
+
+ <listitem>
+ <para>Условия лицензирования некоторых дистрибутивов программного
+ обеспечения запрещает распространение в двоичном виде. Они должны
+ распространяться в виде исходного кода.</para>
+ </listitem>
+
+ <listitem>
+ <para>Некоторые не доверяют дистрибутивам в двоичном виде. При
+ использовании исходного кода вы (по крайней мере теоретически)
+ можете прочесть его и попытаться найти потенциальные проблемы
+ самостоятельно.</para>
+ </listitem>
+
+ <listitem>
+ <para>Если у вас есть собственные патчи, вам нужен исходный код для
+ того, чтобы их применять.</para>
+ </listitem>
+
+ <listitem>
+ <para>Некоторым нравится иметь исходный код, чтобы его можно было
+ просматривать и править, заимствовать из него (конечно, при
+ разрешающем это лицензионном соглашении)
+ и тому подобное.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Чтобы отслеживать обновления портов, подпишитесь на
+ &a.ports; и &a.ports-bugs;.</para>
+
+ <warning>
+ <para>Перед установкой любого приложения необходимо зайти на <ulink
+ url="http://vuxml.freebsd.org/"></ulink>, где находится информация
+ по вопросам безопасности приложений.</para>
+
+ <para>Вы можете также установить <filename
+ role="package">security/portaudit</filename>, который автоматически
+ проверит все установленные приложения на наличие известных
+ уязвимостей, проверка также будет выполняться перед сборкой
+ какого-либо порта. Вы можете использовать <command>portaudit
+ -F -a</command> и после установки пакетов.</para>
+ </warning>
+
+ <para>В оставшейся части главы будет рассказано, как использовать пакеты
+ и порты для установки и управления программным обеспечением сторонних
+ разработчиков во FreeBSD.</para>
+ </sect1>
+
+ <sect1 id="ports-finding-applications">
+ <title>Поиск нужного вам приложения</title>
+
+ <para>Перед тем, как устанавливать какое-либо приложение, вам нужно знать,
+ что вы хотите и как называется нужное вам приложение.</para>
+
+ <para>Список имеющихся для FreeBSD приложений постоянно растёт. К счастью,
+ есть несколько способов найти то, что вам нужно:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>На сайте FreeBSD поддерживается обновляемый список имеющихся
+ приложений для FreeBSD, в котором можно выполнять поиск, по адресу
+ <ulink url="&url.base;/ports/index.html">
+ http://www.FreeBSD.org/ports/</ulink>. Порты разбиты на категории,
+ и вы можете либо выполнить поиск приложения по имени (если его
+ знаете), либо просмотреть список всех приложений, относящихся к
+ определённой категории.</para>
+ </listitem>
+
+ <indexterm><primary>FreshPorts</primary></indexterm>
+
+ <listitem>
+ <para>Dan Langille поддерживает сайт FreshPorts по адресу <ulink
+ url="http://www.FreshPorts.org/"></ulink>.
+ На нём отслеживаются изменения в приложениях из дерева портов, как
+ только они происходят, он позволяет вам <quote>отслеживать</quote>
+ один или несколько портов, и может высылать оповещение по электронной
+ почте при их обновлении.</para>
+ </listitem>
+
+ <indexterm><primary>FreshMeat</primary></indexterm>
+
+ <listitem>
+ <para>Если вы не знаете названия нужного вам приложения, попытайтесь
+ воспользоваться сайтом типа FreshMeat (<ulink
+ url="http://www.freshmeat.net/"></ulink>)
+ для поиска приложения, а затем возвратитесь на сайт FreeBSD, чтобы
+ проверить, есть ли порт для этого приложения.</para>
+ </listitem>
+
+ <listitem>
+ <para>Если вы знаете точное имя порта, и хотите определить, в какой
+ категории он находится, используйте команду &man.whereis.1;.
+ Просто наберите в приглашении <quote><command>whereis
+ <replaceable>file</replaceable></command></quote>,
+ где <replaceable>file</replaceable> - программа,
+ которую вы хотите установить. И если она имеется в системе,
+ об этом будет сообщено, как показано ниже:</para>
+
+ <screen>&prompt.root; <userinput>whereis lsof</userinput>
+lsof: /usr/ports/sysutils/lsof</screen>
+
+ <para>Это говорит о том, что <command>lsof</command> (системная
+ утилита) находится в каталоге
+ <filename>/usr/ports/sysutils/lsof</filename>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Ещё одним способом поиска некоторого порта является
+ использование встроенной возможности поиска в Коллекции Портов.
+ Чтобы ею воспользоваться, вы должны находиться в каталоге
+ <filename>/usr/ports</filename>. Очутившись в этом каталоге,
+ выполните команду <command>make search
+ name=<replaceable>program-name</replaceable></command>, где
+ <replaceable>program-name</replaceable> &ndash; это
+ название программы, которую вы хотите найти. Например, если
+ вы ищете <command>lsof</command>:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports</userinput>
+&prompt.root; <userinput>make search name=lsof</userinput>
+Port: lsof-4.56.4
+Path: /usr/ports/sysutils/lsof
+Info: Lists information about open files (similar to fstat(1))
+Maint: obrien@FreeBSD.org
+Index: sysutils
+B-deps:
+R-deps:</screen>
+
+ <para>Вам следует обратить особое внимание на строчку
+ <quote>Path:</quote>, так как в ней указывается, где найти порт.
+ Остальная сообщаемая информация для установки порта не
+ нужна, поэтому здесь она описываться не будет.</para>
+
+ <para>Для выполнения более глубокого поиска вы можете также использовать
+ <command>make search key=<replaceable>string</replaceable></command>,
+ где <replaceable>string</replaceable>
+ представляет собой некоторый текст, относящийся к искомому
+ порту. При этом будет
+ выполнен поиск в именах портов, комментариях, описаниях и
+ зависимостях, и его можно использовать для поиска портов, связанных с
+ некоторой темой, если вы не знаете названия программы, которую вы
+ ищете.</para>
+
+ <para>В обоих этих случаях строка поиска нечувствительна к регистру.
+ Поиск <quote>LSOF</quote> приводит к тому же самому результату, что и
+ поиск <quote>lsof</quote>.</para>
+ </listitem>
+ </itemizedlist>
+ </sect1>
+
+ <sect1 id="packages-using">
+ <sect1info>
+ <authorgroup>
+ <author>
+ <firstname>Chern</firstname>
+ <surname>Lee</surname>
+ <contrib>Текст предоставил </contrib>
+ </author>
+ </authorgroup>
+
+ <!-- 30 марта 2001 -->
+ </sect1info>
+
+ <title>Использование системы пакетов</title>
+
+ <sect2>
+ <title>Установка пакета</title>
+
+ <indexterm>
+ <primary>пакеты</primary>
+ <secondary>установка</secondary>
+ </indexterm>
+
+ <indexterm>
+ <primary><command>pkg_add</command></primary>
+ </indexterm>
+
+ <para>Для установки пакетов программного обеспечения для FreeBSD из
+ локальных файлов или с сервера в сети вы можете использовать утилиту
+ &man.pkg.add.1;.</para>
+
+ <example>
+ <title>Загрузка пакета вручную и его локальная установка</title>
+
+ <screen>&prompt.root; <userinput>ftp -a <replaceable>ftp2.FreeBSD.org</replaceable></userinput>
+Connected to ftp2.FreeBSD.org.
+220 ftp2.FreeBSD.org FTP server (Version 6.00LS) ready.
+331 Guest login ok, send your email address as password.
+230-
+230- This machine is in Vienna, VA, USA, hosted by Verio.
+230- Questions? E-mail freebsd@vienna.verio.net.
+230-
+230-
+230 Guest login ok, access restrictions apply.
+Remote system type is UNIX.
+Using binary mode to transfer files.
+<prompt>ftp></prompt> <userinput>cd /pub/FreeBSD/ports/packages/sysutils/</userinput>
+250 CWD command successful.
+<prompt>ftp></prompt> <userinput>get lsof-4.56.4.tgz</userinput>
+local: lsof-4.56.4.tgz remote: lsof-4.56.4.tgz
+200 PORT command successful.
+150 Opening BINARY mode data connection for 'lsof-4.56.4.tgz' (92375 bytes).
+100% |**************************************************| 92375 00:00 ETA
+226 Transfer complete.
+92375 bytes received in 5.60 seconds (16.11 KB/s)
+<prompt>ftp></prompt> <userinput>exit</userinput>
+&prompt.root; <userinput>pkg_add <replaceable>lsof-4.56.4.tgz</replaceable></userinput></screen>
+ </example>
+
+ <para>Если у вас нет исходных текстов локальных пакетов (например,
+ набор CD-ROM с FreeBSD), то проще всего, наверное, воспользоваться
+ опцией <option>-r</option> для &man.pkg.add.1;. Это приведёт к тому,
+ что утилита автоматически определит правильный формат объектных файлов
+ и релиз, а затем загрузит и установит пакет с сервера FTP.</para>
+
+ <indexterm>
+ <primary><command>pkg_add</command></primary>
+ </indexterm>
+
+ <screen>&prompt.root; <userinput>pkg_add -r <replaceable>lsof</replaceable></userinput></screen>
+
+ <para>В примере выше нужный пакет будет загружен и установлен без всякого
+ дополнительного взаимодействия с пользователем.
+ Если вместо основного сайта вы хотите указать другое зеркало пакетов
+ &os;, то для переопределения используемых по умолчанию значений вам
+ необходимо задать соответствующим образом значение переменной
+ <envar>PACKAGESITE</envar>.
+ Для загрузки файлов утилита &man.pkg.add.1; использует функцию
+ &man.fetch.3;, которая принимает во внимание различные переменные
+ окружения, включая <envar>FTP_PASSIVE_MODE</envar>,
+ <envar>FTP_PROXY</envar> и <envar>FTP_PASSWORD</envar>. Если вы
+ находитесь за сетевым экраном или для работы с FTP/HTTP вам
+ необходимо использовать прокси, то определите соответствующие
+ переменные. Обратитесь к справочной странице по &man.fetch.3; для
+ получения полного списка переменных.
+ Заметьте, что в примере выше вместо
+ <literal>lsof-4.56.4</literal> используется <literal>lsof</literal>.
+ При использовании функций загрузки с сети номер версии в имени пакета
+ должен быть опущен. Утилита &man.pkg.add.1; автоматически загрузит
+ последнюю версию приложения.</para>
+
+ <para>Файлы пакетов распространяются в форматах
+ <filename>.tgz</filename> и <filename>.tbz</filename>. Вы можете найти
+ их по адресу <ulink
+ url="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/packages"></ulink> или
+ взять с дистрибутива FreeBSD на CD-ROM. Каждый CD из комплекта
+ FreeBSD на 4 дисках (а также PowerPak и тому подобное) содержит
+ пакеты в каталоге <filename>/packages</filename>. Расположение
+ пакетов похоже на то, как организовано дерево
+ <filename>/usr/ports</filename>. Каждая категория имеет собственный
+ каталог, и каждый пакет помещается в каталог
+ <filename>All</filename>.</para>
+
+ <para>Структура каталогов системы пакетов соответствует структуре
+ системы портов; они взаимодействуют друг с другом для формирования
+ единой системы пакетов/портов.</para>
+ </sect2>
+
+ <sect2>
+ <title>Управление пакетами</title>
+
+ <indexterm>
+ <primary>пакеты</primary>
+ <secondary>управление</secondary>
+ </indexterm>
+
+ <para>&man.pkg.info.1; является утилитой для вывода списка и описаний
+ различных установленных пакетов.</para>
+
+ <indexterm>
+ <primary><command>pkg_info</command></primary>
+ </indexterm>
+
+ <screen>&prompt.root; <userinput>pkg_info</userinput>
+cvsup-16.1 A general network file distribution system optimized for CV
+docbook-1.2 Meta-port for the different versions of the DocBook DTD
+...</screen>
+
+ <para>&man.pkg.version.1; является утилитой для вывода отчёта о версиях
+ всех установленных пакетов. Она сравнивает версию имеющегося пакета
+ с текущей версией, находящейся в дереве портов.</para>
+
+ <indexterm>
+ <primary><command>pkg_version</command></primary>
+ </indexterm>
+
+ <screen>&prompt.root; <userinput>pkg_version</userinput>
+cvsup =
+docbook =
+...</screen>
+
+ <para>Символы во второй колонке указывают сравнительную разницу в
+ возрасте установленной версии и версии, находящейся в локальном дереве
+ портов.</para>
+
+ <informaltable frame="none" pgwide="1">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Символ</entry>
+
+ <entry>Значение</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>=</entry>
+
+ <entry>Версия установленного пакета соответствует версии,
+ находящейся в локальном дереве портов.</entry>
+ </row>
+
+ <row>
+ <entry>&lt;</entry>
+
+ <entry>Установленная версия старее, чем та, что имеется в
+ дереве портов.</entry>
+ </row>
+
+ <row>
+ <entry>&gt;</entry>
+
+ <entry>Установленная версия новее чем та, что есть в дереве
+ портов. (Скорее всего, локальное дерево портов
+ устарело.)</entry>
+ </row>
+
+ <row>
+ <entry>?</entry>
+
+ <entry>В индексном файле портов установленный пакет не может быть
+ найден. (Это может случиться, например, если установленный
+ порт был удалён из Коллекции Портов или переименован.)</entry>
+ </row>
+
+ <row>
+ <entry>*</entry>
+
+ <entry>Имеется несколько версий пакета.</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </sect2>
+
+ <sect2>
+ <title>Удаление пакета</title>
+
+ <indexterm>
+ <primary><command>pkg_delete</command></primary>
+ </indexterm>
+
+ <indexterm>
+ <primary>пакеты</primary>
+
+ <secondary>удаление</secondary>
+ </indexterm>
+
+ <para>Для удаления ранее установленных пакетов с программным
+ обеспечением используйте утилиту &man.pkg.delete.1;.</para>
+
+ <screen>&prompt.root; <userinput>pkg_delete <replaceable>xchat-1.7.1</replaceable></userinput></screen>
+ </sect2>
+
+ <sect2>
+ <title>Разное</title>
+
+ <para>Вся информация о пакете хранится в каталоге
+ <filename>/var/db/pkg</filename>. Список установленных файлов и
+ описания всех пакетов могут быть найдены среди файлов этого
+ каталога.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="ports-using">
+ <title>Использование Коллекции Портов</title>
+
+ <para>В этих разделах описаны основные приемы использования Коллекции
+ Портов для установки и удаления программ из вашей системы.</para>
+
+ <sect2 id="ports-tree">
+ <title>Получение Коллекции Портов</title>
+
+ <para>Перед тем, как вы сможете устанавливать порты,
+ установите Коллекцию Портов &mdash; она представляет собой в основном
+ набор файлов <filename>Makefile</filename>, патчей, файлов описаний, и
+ размещается в каталоге <filename>/usr/ports</filename>.</para>
+
+ <para>При установке системы FreeBSD утилита
+ <application>sysinstall</application> запрашивает, требуется ли вам
+ установка Коллекции Портов. Если вы ответили отрицательно,
+ для установки Коллекции Портов следуйте нижеприведенной
+ инструкции:</para>
+
+ <procedure>
+ <title>Метод с использованием Sysinstall</title>
+
+ <para>В этом методе повторно используется
+ <application>sysinstall</application>
+ (<command>/stand/sysinstall</command> в &os;
+ версий ниже, чем 5.2) для ручной установки Коллекции Портов.</para>
+
+ <step>
+ <para>Работая как пользователь root, запустите
+ <command>sysinstall</command> так, как это показано
+ ниже:</para>
+
+ <screen>&prompt.root; <userinput>sysinstall</userinput></screen>
+ </step>
+
+ <step>
+ <para>Опуститесь вниз и выберите
+ <guimenuitem>Configure</guimenuitem>, нажмите
+ <keycap>Enter</keycap></para>
+ </step>
+
+ <step>
+ <para>Опуститесь вниз и выберите
+ <guimenuitem>Distributions</guimenuitem>,
+ затем нажмите <keycap>Enter</keycap></para>
+ </step>
+
+ <step>
+ <para>Опуститесь вниз к пункту <guimenuitem>ports</guimenuitem>,
+ нажмите клавишу <keycap>Пробел</keycap></para>
+ </step>
+
+ <step>
+ <para>Поднимитесь вверх к <guimenuitem>Exit</guimenuitem>, нажмите
+ <keycap>Enter</keycap></para>
+ </step>
+
+ <step>
+ <para>Выберите желаемый носитель для установки, например, CDROM,
+ FTP и так далее.</para>
+ </step>
+
+ <step>
+ <para>Перейдите на пункт меню <guimenuitem>Exit</guimenuitem> и
+ нажмите <keycap>Enter</keycap>.</para>
+ </step>
+
+ <step>
+ <para>Нажмите <keycap>X</keycap> для выхода из
+ <application>sysinstall</application>.</para>
+ </step>
+ </procedure>
+
+ <para>Альтернативный метод получения и постоянной актуализации
+ Коллекции Портов заключается в использовании
+ <application>CVSup</application>. Посмотрите файл
+ <application>CVSup</application> для портов,
+ <filename>/usr/share/examples/cvsup/ports-supfile</filename>.
+ Прочтите раздел <link linkend="cvsup">Использование CVSup</link>
+ (<xref linkend="cvsup">) для получения более полной информации об
+ использовании <application>CVSup</application> и этого файла.</para>
+
+ <procedure>
+ <title>Метод с использованием CVSup</title>
+
+ <para>Это быстрый способ для получения Коллекции Портов при помощи
+ <application>CVSup</application>. Если вы хотите поддерживать ваше
+ дерево портов в актуальном состоянии, или узнать больше о
+ <application>CVSup</application>, то прочтите вышеотмеченные
+ разделы.</para>
+
+ <step>
+ <para>Установите порт <filename role="package">net/cvsup</filename>. Обратитесь к разделу
+ <link linkend="cvsup-install">Установка CVSup</link> (<xref
+ linkend="cvsup-install">) для получения более подробной
+ информации.</para>
+ </step>
+
+ <step>
+ <para>Работая как пользователь <username>root</username>, скопируйте
+ <filename>/usr/share/examples/cvsup/ports-supfile</filename> в
+ новое место, например, в каталог <filename>/root</filename> или в
+ ваш домашний каталог.</para>
+ </step>
+
+ <step>
+ <para>Отредактируйте <filename>ports-supfile</filename>.</para>
+ </step>
+
+ <step>
+ <para>Измените <replaceable>CHANGE_THIS.FreeBSD.org</replaceable> на
+ близкий к вам сервер <application>CVSup</application>. Посмотрите
+ <link linkend="cvsup-mirrors">Зеркала CVSup</link> (<xref
+ linkend="cvsup-mirrors">) для получения полного списка
+ зеркалирующих сайтов.</para>
+ </step>
+
+ <step>
+ <para>Запустите
+ <command>cvsup</command></para>
+
+ <screen>&prompt.root; <userinput>cvsup -g -L 2 <replaceable>/root/ports-supfile</replaceable></userinput></screen>
+ </step>
+
+ <step>
+ <para>При повторных запусках этой команды все последние изменения
+ (кроме реального перестроения портов для вашей системы) будут
+ загружаться и переноситься в вашу Коллекцию Портов.</para>
+ </step>
+ </procedure>
+ </sect2>
+
+ <sect2 id="ports-skeleton">
+ <title>Установка портов</title>
+
+ <indexterm>
+ <primary>порты</primary>
+
+ <secondary>установка</secondary>
+ </indexterm>
+
+ <para>Когда речь заходит о Коллекции Портов, то первым делом вы должны
+ понять, что именно подразумевается под словом <quote>скелет</quote>.
+ По сути скелетом порта является минимальный набор файлов, который
+ указывает вашей системе FreeBSD, как корректно откомпилировать и
+ установить программу. Скелет каждого порта включает:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><filename>Makefile</filename>. <filename>Makefile</filename>
+ содержит различные директивы, которые определяют, как приложение
+ должно быть откомпилировано и куда в вашей системе оно должно быть
+ установлено.</para>
+ </listitem>
+
+ <listitem>
+ <para>Файл <filename>distinfo</filename>. Этот файл содержит
+ информацию о файлах, которые должны существовать на вашей
+ системе для успешной сборки порта, и их контрольные суммы, для
+ проверки при помощи &man.md5.1; того, что файлы в процессе загрузки
+ не были повреждены.</para>
+ </listitem>
+
+ <listitem>
+ <para>Каталог <filename>files</filename>. Этот каталог
+ содержит патчи, использование которых необходимо для компиляции и
+ установки программы в вашей системе FreeBSD. Патчи - это, как
+ правило, маленькие файлы, в которых содержатся изменения, которые
+ нужно внести в какой-то конкретный файл. Они имеют обычный
+ текстовый формат и в основном содержат указания типа <quote>Удалить
+ строку 10</quote> или <quote>Заменить строку 26 на
+ такую ...</quote>. Патчи также называются
+ <quote>diff-файлами</quote> или просто <quote>диффами</quote>,
+ потому что они генерируются программой &man.diff.1;.</para>
+
+ <para>Этот каталог также может содержать другие файлы, используемые
+ для построения порта.</para>
+ </listitem>
+
+ <listitem>
+ <para><filename>pkg-descr</filename>. Это более подробное,
+ зачастую многострочное описание программы.</para>
+ </listitem>
+
+ <listitem>
+ <para><filename>pkg-plist</filename>. Это список всех файлов,
+ которые будут установлены портом. В нем также содержатся
+ указания системе портов на удаление определенных файлов во
+ время удаления порта.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>В некоторых портах присутствуют и другие файлы, такие, как
+ <filename>pkg-message</filename>. Система портов использует эти файлы
+ для обработки особых ситуаций. Если вы хотите узнать более подробно
+ об этих файлах и о портах вообще, то обратитесь к <ulink
+ url="&url.books.porters-handbook;/index.html">Руководству по созданию
+ портов для FreeBSD</ulink>.</para>
+
+ <para>В порт включаются инструкции
+ относительно того, как выполнять построение из исходного кода, но не
+ сам код. Вы можете получить исходный код с CD-ROM или из Интернет.
+ Исходный код распространяется в том виде, какой предпочёл выбрать
+ разработчик. Зачастую это tar-файл, обработанный утилитой gzip, но он
+ может также быть упакован каким-то другим инструментом или быть
+ не сжатым. Исходный код программы, в каком бы то виде он ни был,
+ называется <quote>дистрибутивным</quote> (distfile). Два метода
+ установки портов &os; описаны ниже.</para>
+
+ <note>
+ <para>Для установки портов вы должны войти в систему как пользователь
+ <username>root</username>.</para>
+ </note>
+
+ <warning>
+ <para>Перед установкой любого порта необходимо убедиться в
+ наличии свежей Коллекции Портов и заглянуть на <ulink
+ url="http://vuxml.freebsd.org/"></ulink>, где могут
+ освещаться вопросы безопасности, связанные с этим портом.</para>
+
+ <para>Проверка на наличие уязвимостей может быть автоматически
+ выполнена <application>portaudit</application> перед установкой
+ нового приложения. Эту программу можно найти в Коллекции Портов
+ (<filename role="package">security/portaudit</filename>).
+ Запустите <command>portaudit -F</command> перед установкой
+ нового порта для загрузки свежей базы данных уязвимостей.
+ Проверка безопасности и обновление базы данных должны
+ выполняться при повседневной проверке безопасности системы.
+ За дальнейшей информацией обращайтесь к страницам справочника
+ &man.portaudit.1; и &man.periodic.8;.</para>
+ </warning>
+
+ <sect3 id="ports-cd">
+ <title>Установка портов с CD-ROM</title>
+
+ <indexterm>
+ <primary>порты</primary>
+
+ <secondary>установка с CD-ROM</secondary>
+ </indexterm>
+
+ <para>Официальные образы CD-ROM Проекта FreeBSD больше не содержат
+ дистрибутивные файлы. На них есть достаточно места, которое лучше
+ использовать для предкомпилированных пакетов. Продукты на CD-ROM,
+ такие, как FreeBSD PowerPak, включают дистрибутивные файлы, и вы
+ можете заказать их от таких поставщиков, как <ulink
+ url="http://www.freebsdmall.com/">FreeBSD Mall</ulink>. В этом
+ разделе предполагается, что у вас есть такой набор CD-ROM с
+ FreeBSD.</para>
+
+ <para>Вставьте ваш CD-ROM с FreeBSD в привод. Смонтируйте его в
+ каталог <filename>/cdrom</filename>. (Если вы используете другую
+ точку монтирования, то задайте make-переменную
+ <makevar>CD_MOUNTPTS</makevar>.) Чтобы начать установку, перейдите в
+ каталог с нужным вам портом:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports/sysutils/lsof</userinput></screen>
+
+ <para>Оказавшись в каталоге <filename>lsof</filename>, вы увидите
+ структуру порта. Следующим шагом является компиляция, или построение
+ (<quote>build</quote>) порта. Это выполняется простой выдачей
+ команды <command>make</command> в ответ на приглашение командного
+ процессора. Как только вы это сделаете, то увидите вывод команды,
+ выглядящий примерно так:</para>
+
+ <screen>&prompt.root; <userinput>make</userinput>
+&gt;&gt; lsof_4.57D.freebsd.tar.gz doesn't seem to exist in /usr/ports/distfiles/.
+&gt;&gt; Attempting to fetch from file:/cdrom/ports/distfiles/.
+===&gt; Extracting for lsof-4.57
+...
+[вывод команды при распаковке опущен]
+...
+&gt;&gt; Checksum OK for lsof_4.57D.freebsd.tar.gz.
+===&gt; Patching for lsof-4.57
+===&gt; Applying FreeBSD patches for lsof-4.57
+===&gt; Configuring for lsof-4.57
+...
+[вывод команды при конфигурации опущен]
+...
+===&gt; Building for lsof-4.57
+...
+[вывод команды при компиляции опущен]
+...
+&prompt.root;</screen>
+
+ <para>Заметьте, что как только компиляция закончится, вы снова
+ вернётесь к приглашению вашего командного процессора. Следующим
+ шагом является установка порта. Чтобы это сделать, вам нужно просто
+ добавить одно слово к команде <command>make</command>, а именно слово
+ <command>install</command>:</para>
+
+ <screen>&prompt.root; <userinput>make install</userinput>
+===&gt; Installing for lsof-4.57
+...
+[вывод команды при установке опущен]
+...
+===&gt; Generating temporary packing list
+===&gt; Compressing manual pages for lsof-4.57
+===&gt; Registering installation for lsof-4.57
+===&gt; SECURITY NOTE:
+ This port has installed the following binaries which execute with
+ increased privileges.
+&prompt.root;</screen>
+
+ <para>Как только вы вернулись к приглашению вашей оболочки, вы должны
+ суметь запустить приложение, которое только что установили. Так как
+ <command>lsof</command> является программой, которая запускается с
+ повышенными правами, выдаётся предупреждение о безопасности. Во
+ время построения и установки портов вы должны принимать во внимание
+ все выдаваемые предупреждения.</para>
+
+ <note>
+ <para>Вы можете сэкономить лишний шаг, просто выдав команду
+ <command>make install</command> вместо <command>make</command> и
+ последующей <command>make install</command> в двух отдельных
+ шагах.</para>
+ </note>
+
+ <note>
+ <para>Некоторые командные процессоры для ускорения поиска выполнимых
+ файлов и команд кэшируют имена программ, доступных для
+ вызова из каталогов, перечисленных в переменной окружения
+ <envar>PATH</envar>. Если вы используете один из таких командных
+ процессоров, то перед использованием только что добавленных
+ программ вам может понадобиться вызвать команду
+ <command>rehash</command> после установки порта. Эта команда будет
+ работать с такими оболочками, как, например,
+ <command>tcsh</command>. При работе с такими командными
+ процессорами, как <command>sh</command> или <filename
+ role="package">shells/bash</filename>, воспользуйтесь командой
+ <command>hash -r</command>. Дополнительную информацию можно найти
+ в документации к вашему командному процессору.</para>
+ </note>
+
+ <note>
+ <para>Пожалуйста, будьте готовы к тому, что лицензии некоторых
+ портов не позволяют помещать их на CD-ROM. Это может
+ делаться из-за обязательности заполнения регистрационной формы
+ перед загрузкой, или запрета на дальнейшее распространение, либо по
+ какой-то другой причине. Если вы хотите установить порт, которого
+ нет на CD-ROM, вам нужно иметь подключение к Интернет; чтобы это
+ сделать (обратитесь к <link
+ linkend="ports-inet">следующему разделу</link>).</para>
+ </note>
+ </sect3>
+
+ <sect3 id="ports-inet">
+ <title>Установка портов из Интернет</title>
+
+ <para>Как и в предыдущем разделе, здесь предполагается, что у вас
+ имеется работающее подключение к Интернет. Если это не ваш случай,
+ выполняйте <link linkend="ports-cd">установку с
+ CD-ROM</link>, либо поместите копию дистрибутивного файла в каталог
+ <filename>/usr/ports/distfiles</filename> вручную.</para>
+
+ <para>Установка порта из Интернет производится точно так же, как если
+ бы вы делали её с CD-ROM. Единственным отличием между ними
+ является тот факт, что дистрибутивный файл загружается из Интернет, а
+ не считывается с CD-ROM.</para>
+
+ <para>Выполняются те же самые шаги:</para>
+
+ <screen>&prompt.root; <userinput>make install</userinput>
+&gt;&gt; lsof_4.57D.freebsd.tar.gz doesn't seem to exist in /usr/ports/distfiles/.
+&gt;&gt; Attempting to fetch from ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/.
+Receiving lsof_4.57D.freebsd.tar.gz (439860 bytes): 100%
+439860 bytes transferred in 18.0 seconds (23.90 kBps)
+===&gt; Extracting for lsof-4.57
+...
+[вывод команды при распаковке опущен]
+...
+&gt;&gt; Checksum OK for lsof_4.57D.freebsd.tar.gz.
+===&gt; Patching for lsof-4.57
+===&gt; Applying FreeBSD patches for lsof-4.57
+===&gt; Configuring for lsof-4.57
+...
+[вывод команды процесса конфигурации опущен]
+...
+===&gt; Building for lsof-4.57
+...
+[вывод команды компиляции опущен]
+...
+===&gt; Installing for lsof-4.57
+...
+[вывод команды процедуры установки опущен]
+...
+===&gt; Generating temporary packing list
+===&gt; Compressing manual pages for lsof-4.57
+===&gt; Registering installation for lsof-4.57
+===&gt; SECURITY NOTE:
+ This port has installed the following binaries which execute with
+ increased privileges.
+&prompt.root;</screen>
+
+ <para>Как вы видите, единственным отличием является строка, в которой
+ указывается, откуда система загружает дистрибутивный файл
+ порта.</para>
+
+ <para>Для загрузки файлов система портов использует утилиту
+ &man.fetch.1;, которая принимает во внимание различные переменные
+ окружения, включая <envar>FTP_PASSIVE_MODE</envar>,
+ <envar>FTP_PROXY</envar> и <envar>FTP_PASSWORD</envar>. Если вы
+ находитесь за сетевым экраном или для работы с FTP/HTTP вам
+ необходимо использовать прокси, то определите соответствующие
+ переменные. Обратитесь к справочной странице по &man.fetch.3; для
+ получения полного списка переменных.</para>
+
+ <para>Пользователям, которые не могут быть постоянно подключены
+ к сети, поможет команда <command>make
+ <maketarget>fetch</maketarget></command>. Просто запустите эту
+ команду в каталоге самого верхнего уровня
+ (<filename>/usr/ports</filename>), и требуемые файлы будут загружены.
+ Эта команда будет работать также и с вложенными категориями,
+ например: <filename>/usr/ports/net</filename>.
+ Заметьте, что если порт имеет зависимости от библиотек или других
+ портов, то он <emphasis>не будет</emphasis> также загружать
+ дистрибутивные файлы этих портов. Замените
+ <maketarget>fetch</maketarget> на
+ <maketarget>fetch-recursive</maketarget>, если вы хотите выполнить
+ загрузку также и всех этих зависимостей порта.</para>
+
+ <note>
+ <para>Вы можете построить все порты в категории за раз, запустив
+ команду <command>make</command> в каталоге верхнего уровня, как и
+ в вышеописанном методе с <command>make
+ <makevar>fetch</makevar></command>. Однако это опасно, так как
+ некоторые порты не могут сосуществовать. В других случаях
+ некоторые порты могут устанавливать два различных файла с одним и
+ тем же именем.</para>
+ </note>
+
+ <para>В некоторых редких случая пользователям необходимо получить
+ tar-архивы с сайтов, отличающихся от <makevar>MASTER_SITES</makevar>
+ (это место, откуда файлы обычно загружаются). Вы можете
+ переопределять значение <makevar>MASTER_SITES</makevar> посредством
+ следующей команды:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports/<replaceable>directory</replaceable></userinput>
+&prompt.root; <userinput>make MASTER_SITE_OVERRIDE= \
+ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ fetch</userinput></screen>
+
+ <para>В этом примере мы изменили значение переменной
+ <makevar>MASTER_SITES</makevar> на <hostid role="fqdn">
+ ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/</hostid>.</para>
+
+ <note>
+ <para>Некоторые порты позволяют (или даже требуют) задавать
+ параметры, которые включают или выключают построение отдельных
+ частей приложения, которые не нужны, некоторые параметры
+ безопасности, а также прочие настройки. К некоторым из них, часто
+ упоминаемым, относятся
+ пакеты <filename role="package">www/mozilla</filename>,
+ <filename role="package">security/gpgme</filename> и
+ <filename role="package">mail/sylpheed-claws</filename>. При
+ наличии подобных параметров будет выдано сообщение.</para>
+ </note>
+ </sect3>
+
+ <sect3>
+ <title>Переназначение каталогов с портами по умолчанию</title>
+
+ <para>Иногда бывает полезным (или необходимым) использование
+ других каталогов с портами и дистрибутивными файлами. Для
+ переопределения каталогов, используемых по умолчанию, используются
+ переменные <makevar>PORTSDIR</makevar> и <makevar>PREFIX</makevar>.
+ К примеру:</para>
+
+ <screen>&prompt.root; <userinput>make PORTSDIR=/usr/home/example/ports install</userinput></screen>
+
+ <para>будет компилировать порт в каталоге
+ <filename>/usr/home/example/ports</filename>, а установит всё в
+ <filename>/usr/local</filename>.</para>
+
+ <screen>&prompt.root; <userinput>make PREFIX=/usr/home/example/local install</userinput></screen>
+
+ <para>будет компилировать его в каталоге
+ <filename>/usr/ports</filename>, а установит в
+ <filename>/usr/home/example/local</filename>.</para>
+
+ <para>И, конечно,</para>
+
+ <screen>&prompt.root; <userinput>make PORTSDIR=../ports PREFIX=../local install</userinput></screen>
+
+ <para>использует обе возможности (полная команда слишком длинна для
+ написания на этой странице, однако вы должны уловить общую
+ идею).</para>
+
+ <para>Альтернативным способом является задание значений этих переменных
+ в параметрах окружения. Обратитесь к страницам справки по
+ вашему командному процессору для получения инструкций о том, как это
+ сделать.</para>
+ </sect3>
+
+ <sect3>
+ <title>Работа с <command>imake</command></title>
+
+ <para>Некоторые порты, использующие <command>imake</command> (часть
+ X Window System) не работают нормально с <makevar>PREFIX</makevar>,
+ и будут пытаться установиться в дерево
+ <filename>/usr/X11R6</filename>. Аналогично некоторые Perl-порты
+ игнорируют значения <makevar>PREFIX</makevar> и устанавливаются в
+ дерево Perl. Заставить такие порты воспринимать переменную
+ <makevar>PREFIX</makevar> является сложной или невыполнимой
+ задачей.</para>
+ </sect3>
+ </sect2>
+
+ <sect2 id="ports-removing">
+ <title>Удаление установленных портов</title>
+
+ <indexterm>
+ <primary>порты</primary>
+
+ <secondary>удаление</secondary>
+ </indexterm>
+
+ <para>Теперь, когда вы знаете, как устанавливать порты, вы наверное, уже
+ задумывались о том, как же их удалять &mdash; просто даже на тот случай, если
+ вы установили один из них, а позже решили, что установили не тот порт.
+ Мы удалим порт из нашего предыдущего примера (а это была программа
+ <command>lsof</command>, если вы обратили внимание). Как и при
+ установке портов, первым делом вы должны перейти в каталог с портом,
+ <filename>/usr/ports/sysutils/lsof</filename>. После смены каталога вы
+ готовы к удалению <command>lsof</command>. Это делается командой
+ <command>make deinstall</command>:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/ports/sysutils/lsof</userinput>
+&prompt.root; <userinput>make deinstall</userinput>
+===&gt; Deinstalling for lsof-4.57</screen>
+
+ <para>Это было достаточно легко. Вы удалили <command>lsof</command> из
+ вашей системы. Если вам захочется переустановить эту программу, то это
+ можно будет сделать, выдав команду <command>make reinstall</command>
+ из каталога <filename>/usr/ports/sysutils/lsof</filename>.</para>
+
+ <para>Последовательность команд <command>make deinstall</command> и
+ <command>make reinstall</command> не сработает, если вы запустите
+ команду <command>make clean</command>. Если вы хотите убрать порт из
+ системы после очистки каталога, используйте команду
+ &man.pkg.delete.1;, как это описано в <link
+ linkend="packages-using">разделе о пакетах Руководства</link>.</para>
+ </sect2>
+
+ <sect2 id="ports-disk-space">
+ <title>Порты и дисковое пространство</title>
+
+ <indexterm>
+ <primary>порты</primary>
+
+ <secondary>дисковое пространство</secondary>
+ </indexterm>
+
+ <para>Использование Коллекции Портов со временем требует всё большего
+ дискового пространства. Из-за тенденции к постоянному росту
+ дерева портов, после построения и установки программного обеспечения
+ из портов вы не должны забывать об очистке каталогов <filename
+ class="directory">work</filename> командой <command>make
+ <makevar>clean</makevar></command>. При этом будет удаляться каталог
+ <filename class="directory">work</filename>, возникающий после
+ построения и установки порта. Вы можете также удалить исходные
+ файлы программы из каталога <filename
+ class="directory">distfiles</filename>, а позже удалить
+ установленные порты, если они более не используются.</para>
+
+ <para>Некоторые пользователи ограничивают набор доступных категорий портов,
+ помещая в файл <filename>refuse</filename> соответствующую запись.
+ В этом случае, при запуске программы <application>CVSup</application>
+ она не будет загружать файлы из указанных категорий. Дополнительную
+ информацию, относящуюся к файлу <filename>refuse</filename>, можно
+ найти в <xref linkend="cvsup-refuse-file">.</para>
+ </sect2>
+
+ <sect2 id="ports-upgrading">
+ <title>Обновление портов</title>
+
+ <indexterm>
+ <primary>portupgrade</primary>
+ </indexterm>
+
+ <indexterm>
+ <primary>порты</primary>
+
+ <secondary>обновление</secondary>
+ </indexterm>
+ <note>
+ <para>После обновления Коллекции Портов, и перед тем, как обновить
+ приложение из порта, сверьтесь с файлом
+ <filename>/usr/ports/UPDATING</filename>. В нем дана информация
+ по различным вопросам и дополнительным шагам, которые
+ могут быть необходимы для обновления порта.</para>
+ </note>
+
+ <para>Поддержание ваших портов в актуальном состоянии может оказаться
+ нудным занятием. К примеру, чтобы обновить порт, вам нужно перейти в
+ каталог с портами, построить порт, удалить старый порт, установить
+ новый, а затем вычистить его после построения. Представьте, сколько
+ действий (пять) нужно сделать! Скучно, да? Это было большой
+ проблемой для системных администраторов, но теперь есть утилиты,
+ выполняющие эти действия за нас. Например, утилита
+ <filename role="package">sysutils/portupgrade</filename> сделает всё за
+ вас сама! Просто установите её, как обычный порт, при помощи команды
+ <command>make <makevar>install clean</makevar></command>.</para>
+
+ <para>Теперь создайте базу данных командой <command>pkgdb -F</command>.
+ Она выяснит перечень установленных портов и создаст файл базы данных
+ в каталоге <filename>/var/db/pkg</filename>. Теперь при вызове
+ команды <command>portupgrade -a</command>, она будет использовать эту
+ базу данных и файл портов <filename>INDEX</filename>. Наконец,
+ <application>portupgrade</application> загрузит, построит, сделает
+ резервную копию, установит и очистит порты, которые были обновлены.
+ <application>portupgrade</application> имеет массу параметров для
+ использования в разных ситуациях, из которых наибольшего внимания
+ заслуживают описываемые далее.</para>
+
+ <para>Если вы хотите обновить только определённое приложение, но не
+ полностью базу данных, используйте <command>portupgrade
+ <replaceable>pkgname</replaceable></command>, с флагом
+ <option>-r</option>, если <application>portupgrade</application>
+ должен отработать все пакеты, которые зависят от указанного, и
+ использовать флаг <option>-R</option> для отработки всех пакетов,
+ которые требуют указанные пакеты.</para>
+
+ <para>Для использования при установке пакетов, а не портов, укажите
+ флаг <option>-P</option>. С этим параметром
+ <application>portupgrade</application> будет искать пакеты в
+ локальных каталогах, указанных в переменной окружения
+ <envar>PKG_PATH</envar>, или, если не найдет их, загрузит с
+ удаленного сайта. Если пакеты не могут быть найдены локально
+ или загружены удаленно, <application>portupgrade</application>
+ использует порты. Чтобы запретить использование портов,
+ укажите <option>-PP</option>.</para>
+
+ <para>Для простой
+ загрузки дистрибутивных файлов без построения или установки чего бы то
+ ни было, задайте флаг <option>-F</option>. Дополнительную информацию
+ можно получить на странице справки по
+ утилите &man.portupgrade.1;.</para>
+
+ <note>
+ <para>Важно регулярно обновлять базу данных пакетов при помощи
+ команды <command>pkgdb -F</command> для восстановления целостности,
+ особенно когда <application>portupgrade</application> запрашивает
+ вас это сделать. Не прерывайте работы
+ <application>portupgrade</application> при обновлении базы данных
+ пакетов, это может привести к рассогласованию данных.</para>
+ </note>
+
+ <para>Существуют и другие утилиты, которые делают подобные вещи,
+ посмотрите в каталоге <filename>ports/sysutils</filename> и выберите
+ то, что вам подходит.</para>
+ </sect2>
+ </sect1>
+
+ <sect1 id="ports-nextsteps">
+ <title>Действия после установки</title>
+
+ <para>После установки нового приложения вам обычно требуется прочесть
+ какую-либо документацию, если она есть, отредактировать нужные
+ конфигурационные файлы, проверить, что приложение запускается во время
+ загрузки системы (если это даемон), и так далее.</para>
+
+ <para>Очевидно, что шаги, в точности требуемые для конфигурации каждого
+ приложения, отличаются. Однако, если если вы только что установили
+ новое приложение и вам интересно, <quote>Что же дальше?</quote>, то вам
+ могут помочь следующие советы:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Воспользуйтесь командой &man.pkg.info.1; для определения того,
+ куда и какие файлы были установлены. К примеру, если вы только что
+ установили FooPackage версии 1.0.0, то по команде</para>
+
+ <screen>&prompt.root; <userinput>pkg_info -L foopackage-1.0.0 | less</userinput></screen>
+
+ <para>будет выведен список всех файлов, установленных пакетом.
+ Обратите особое внимание на файлы в каталогах
+ <filename>man/</filename>, которые являются справочными страницами,
+ <filename>etc/</filename>, которые являются конфигурационными
+ файлами, и <filename>doc/</filename>, которые являются более
+ подробной документацией.</para>
+
+ <para>Если вы не уверены, какая версия приложения была только что
+ установлена, то по команде вида</para>
+
+ <screen>&prompt.root; <userinput>pkg_info | grep -i foopackage</userinput></screen>
+
+ <para>будет выведен список всех установленных пакетов, в названии
+ которых присутствует <literal>foopackage</literal>. Замените
+ <literal>foopackage</literal> в командной строке на то, что вам
+ нужно.</para>
+ </listitem>
+
+ <listitem>
+ <para>Как только вы определите, куда были установлены справочные
+ страницы приложения, просмотрите их при помощи команды &man.man.1;.
+ Подобным же образом просмотрите примеры конфигурационных файлов и
+ всю дополнительную документацию, которая была установлена.</para>
+ </listitem>
+
+ <listitem>
+ <para>Если у приложения имеется веб-сервер, поищите там дополнительную
+ документацию, ответы на часто задаваемые вопросы и так далее. Если
+ вы не уверены, каков адрес веб-сайта, он может быть указан в выводе
+ команды</para>
+
+ <screen>&prompt.root; <userinput>pkg_info <replaceable>foopackage-1.0.0</replaceable></userinput></screen>
+
+ <para>Строка <literal>WWW:</literal>, если она есть, должна содержать
+ URL Web-сайта приложения.</para>
+ </listitem>
+
+ <listitem>
+ <para>Порты, которые должны запускаться при загрузке системы (такие,
+ как сервисы интернет), как правило, устанавливают скрипт в
+ каталог <filename>/usr/local/etc/rc.d</filename>. Вы должны
+ просмотреть скрипт на предмет его корректности и отредактировать или
+ переименовать его, если это нужно. Обратитесь к разделу о <link
+ linkend="configtuning-starting-services">Запуске сервисов</link> для
+ получения более полной информации.</para>
+ </listitem>
+ </itemizedlist>
+ </sect1>
+
+ <sect1 id="ports-broken">
+ <title>Обработка нерабочих портов</title>
+
+ <para>Если вы встретили порт, который у вас не работает, есть несколько
+ вещей, которые вы можете сделать, а именно:</para>
+
+ <orderedlist>
+ <listitem>
+ <para>Исправьте его! В <ulink
+ url="&url.books.porters-handbook;/index.html">Руководстве по созданию
+ портов</ulink> содержится подробная информация об инфраструктуре
+ <quote>Портов</quote>, так что вы сможете исправить иногда
+ встречающиеся порты с ошибками или даже создать собственные!</para>
+ </listitem>
+
+ <listitem>
+ <para>Надавите &mdash; <emphasis>только по электронной
+ почте</emphasis>! Сначала пошлите письмо человеку, сопровождающему
+ порт. Наберите команду <command>make maintainer</command> или
+ прочтите <filename>Makefile</filename>, чтобы найти его адрес. Не
+ забудьте указать имя и версию порта (скопировав строчку
+ <literal>&dollar;FreeBSD:</literal> из файла
+ <filename>Makefile</filename>) и включите в письмо весь
+ вывод, предшествующий возникновению ошибки.
+ Если вы не получили ответа от этого человека, то можете
+ воспользоваться командой &man.send-pr.1; для посылки
+ сообщения об ошибке.</para>
+ </listitem>
+
+ <listitem>
+ <para>Загрузите пакет с ближайшего к вам FTP-сервера.
+ <quote>Основная</quote> Коллекция Пакетов находится на сервере
+ <hostid role="fqdn">ftp.FreeBSD.org</hostid> в <ulink
+ url="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/packages/">каталоге
+ с пакетами</ulink>, но <emphasis>первым делом</emphasis> проверьте
+ местное зеркало! Скорее всего, это будет работать. Кроме того,
+ сделать это будет гораздо быстрее, чем пытаться компилировать порты
+ из исходного кода. Воспользуйтесь программой &man.pkg.add.1; для
+ установки пакета в вашу систему.</para>
+ </listitem>
+ </orderedlist>
+ </sect1>
+</chapter>
+
+<!--
+ Local Variables:
+ mode: sgml
+ sgml-declaration: "../chapter.decl"
+ sgml-indent-data: t
+ sgml-omittag: nil
+ sgml-always-quote-attributes: t
+ sgml-parent-document: ("../book.sgml" "part" "chapter")
+ End:
+-->