diff options
Diffstat (limited to 'ru_RU.KOI8-R/books/handbook/ports/chapter.sgml')
-rw-r--r-- | ru_RU.KOI8-R/books/handbook/ports/chapter.sgml | 1357 |
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> – это + название программы, которую вы хотите найти. Например, если + вы ищете <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><</entry> + + <entry>Установленная версия старее, чем та, что имеется в + дереве портов.</entry> + </row> + + <row> + <entry>></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>Перед тем, как вы сможете устанавливать порты, + установите Коллекцию Портов — она представляет собой в основном + набор файлов <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> +>> lsof_4.57D.freebsd.tar.gz doesn't seem to exist in /usr/ports/distfiles/. +>> Attempting to fetch from file:/cdrom/ports/distfiles/. +===> Extracting for lsof-4.57 +... +[вывод команды при распаковке опущен] +... +>> Checksum OK for lsof_4.57D.freebsd.tar.gz. +===> Patching for lsof-4.57 +===> Applying FreeBSD patches for lsof-4.57 +===> Configuring for lsof-4.57 +... +[вывод команды при конфигурации опущен] +... +===> Building for lsof-4.57 +... +[вывод команды при компиляции опущен] +... +&prompt.root;</screen> + + <para>Заметьте, что как только компиляция закончится, вы снова + вернётесь к приглашению вашего командного процессора. Следующим + шагом является установка порта. Чтобы это сделать, вам нужно просто + добавить одно слово к команде <command>make</command>, а именно слово + <command>install</command>:</para> + + <screen>&prompt.root; <userinput>make install</userinput> +===> Installing for lsof-4.57 +... +[вывод команды при установке опущен] +... +===> Generating temporary packing list +===> Compressing manual pages for lsof-4.57 +===> Registering installation for lsof-4.57 +===> 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> +>> lsof_4.57D.freebsd.tar.gz doesn't seem to exist in /usr/ports/distfiles/. +>> 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) +===> Extracting for lsof-4.57 +... +[вывод команды при распаковке опущен] +... +>> Checksum OK for lsof_4.57D.freebsd.tar.gz. +===> Patching for lsof-4.57 +===> Applying FreeBSD patches for lsof-4.57 +===> Configuring for lsof-4.57 +... +[вывод команды процесса конфигурации опущен] +... +===> Building for lsof-4.57 +... +[вывод команды компиляции опущен] +... +===> Installing for lsof-4.57 +... +[вывод команды процедуры установки опущен] +... +===> Generating temporary packing list +===> Compressing manual pages for lsof-4.57 +===> Registering installation for lsof-4.57 +===> 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>Теперь, когда вы знаете, как устанавливать порты, вы наверное, уже + задумывались о том, как же их удалять — просто даже на тот случай, если + вы установили один из них, а позже решили, что установили не тот порт. + Мы удалим порт из нашего предыдущего примера (а это была программа + <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> +===> 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>Надавите — <emphasis>только по электронной + почте</emphasis>! Сначала пошлите письмо человеку, сопровождающему + порт. Наберите команду <command>make maintainer</command> или + прочтите <filename>Makefile</filename>, чтобы найти его адрес. Не + забудьте указать имя и версию порта (скопировав строчку + <literal>$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: +--> |