diff options
| -rw-r--r-- | ru_RU.KOI8-R/articles/Makefile | 1 | ||||
| -rw-r--r-- | ru_RU.KOI8-R/articles/fbsd-from-scratch/Makefile | 41 | ||||
| -rw-r--r-- | ru_RU.KOI8-R/articles/fbsd-from-scratch/article.xml | 637 | ||||
| -rw-r--r-- | ru_RU.KOI8-R/htdocs/docs/books.xml | 5 | 
4 files changed, 0 insertions, 684 deletions
| diff --git a/ru_RU.KOI8-R/articles/Makefile b/ru_RU.KOI8-R/articles/Makefile index 2adddc56b1..d40335ad3d 100644 --- a/ru_RU.KOI8-R/articles/Makefile +++ b/ru_RU.KOI8-R/articles/Makefile @@ -16,7 +16,6 @@ SUBDIR+= cups  SUBDIR+= custom-gcc  SUBDIR+= cvs-freebsd  SUBDIR+= explaining-bsd -SUBDIR+= fbsd-from-scratch  #SUBDIR+= filtering-bridges  SUBDIR+= fonts  SUBDIR+= freebsd-questions diff --git a/ru_RU.KOI8-R/articles/fbsd-from-scratch/Makefile b/ru_RU.KOI8-R/articles/fbsd-from-scratch/Makefile deleted file mode 100644 index 7851a7a227..0000000000 --- a/ru_RU.KOI8-R/articles/fbsd-from-scratch/Makefile +++ /dev/null @@ -1,41 +0,0 @@ -# -# The FreeBSD Russian Documentation Project -# -# $FreeBSD$ -# $FreeBSDru: frdp/doc/ru_RU.KOI8-R/articles/fbsd-from-scratch/Makefile,v 1.3 2005/06/12 13:51:45 gad Exp $ -# -# Article: FreeBSD From Scratch -# -# Original revision: r39631 -# - -DOC?= article - -FORMATS?= html - -MAINTAINER= schweikh@FreeBSD.org - -INSTALL_COMPRESSED?= gz -INSTALL_ONLY_COMPRESSED?= - -EXTRAS= 	stage_1.sh -EXTRAS+=	stage_1.conf.default -EXTRAS+=	stage_2.sh -EXTRAS+=	stage_2.conf.default -EXTRAS+=	stage_3.mk - -CLEANFILES+= ${EXTRAS} - -SRCS=	article.xml -SRCS+= 	${EXTRAS} - -${EXTRAS}: -	${CP} ${DOC_PREFIX}/en_US.ISO8859-1/articles/fbsd-from-scratch/${.TARGET} ${.OBJDIR}/ - -afterinstall: -.for entry in ${EXTRAS} -	${INSTALL_DOCS} ${.OBJDIR}/${entry} ${DESTDIR} -.endfor - -DOC_PREFIX?= ${.CURDIR}/../../.. -.include "${DOC_PREFIX}/share/mk/doc.project.mk" diff --git a/ru_RU.KOI8-R/articles/fbsd-from-scratch/article.xml b/ru_RU.KOI8-R/articles/fbsd-from-scratch/article.xml deleted file mode 100644 index 22fa741afd..0000000000 --- a/ru_RU.KOI8-R/articles/fbsd-from-scratch/article.xml +++ /dev/null @@ -1,637 +0,0 @@ -<?xml version="1.0" encoding="koi8-r"?> -<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN" -	"http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd" [ -<!ENTITY scratch.ap "<application xmlns='http://docbook.org/ns/docbook'>FreeBSD From Scratch</application>"> -]> -<!-- -     The FreeBSD Russian Documentation Project - -     $FreeBSDru: frdp/doc/ru_RU.KOI8-R/articles/fbsd-from-scratch/article.xml,v 1.5 2005/06/12 13:52:24 gad Exp $ - -     Original revision: r43184 ---> -<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="ru"> -  <info><title>FreeBSD "с нуля"</title> -     - -    <author><personname><firstname>Jens</firstname><surname>Schweikhardt</surname></personname><affiliation> -        <address><email>schweikh@FreeBSD.org</email></address> -      </affiliation></author> - -    <copyright> -      <year>2002,2003,2004,2008</year> - -      <holder>Jens Schweikhardt</holder> -    </copyright> - -    <legalnotice xml:id="trademarks" role="trademarks"> -      &tm-attrib.freebsd; -      &tm-attrib.adobe; -      &tm-attrib.general; -    </legalnotice> - -    <pubdate>$FreeBSD$</pubdate> - -    <releaseinfo>$FreeBSD$</releaseinfo> - -  <abstract> -    <para>В этой статье описываются мои достижения в создании &scratch.ap;: -      полностью автоматизированной установки скомпилированной из исходных -      текстов системы &os;, включая компиляцию всех ваших любимых портов -      и преднастройку в соответствии с вашими представлениями о завершенной -      системе.  Если вы полагаете, что концепция <command>make world</command> -      является прекрасным подходом, то &scratch.ap; расширяет это понятие до -      <command>make evenmore</command>.</para> -  </abstract> -  </info> - -  <sect1 xml:id="introduction"> -    <title>Введение</title> - -    <para>Вы когда-либо обновляли вашу систему при помощи -      <command>make world</command>?  Существует одна проблема, возникающая -      при наличии всего лишь одной системы на диске.  Если выполнение цели -      <buildtarget>installworld</buildtarget> прерывается на середине, у вас -      остаётся неработоспособная система, которая может даже не загружаться. -      Либо цель <buildtarget>installworld</buildtarget> отрабатывает нормально, -      а новое ядро не загружается.  Тогда наступает момент для поиска Fixit CD -      и резервных копий, которые вы делали полгода назад.</para> - -    <para>Я исповедую подход <quote>сотрите данные на дисках при обновлении -      систем</quote>.  Удаление дисков, и даже разделов, обеспечивает вам то, -      что нигде не остаётся никаких частей старого, то, о чём не заботятся -      большее число процедур обновления.  Однако очистка разделов означает, что -      вам нужно перекомпилировать/переустановить все ваши порты и пакаджи, а -      также проделать все тонкие процедуры настройки.  Если вы думаете, что -      эта задача тоже должна быть автоматизирована, то читайте дальше.</para> -  </sect1> - -  <sect1 xml:id="why"> -    <title>Почему мне (не) нужна &scratch.ap;?</title> - -    <para>Это закономерный вопрос.  У нас имеется утилита -      <application>sysinstall</application> и хорошо изученный способ -      компиляции ядра и пользовательских приложений.</para> - -    <para>Проблема с утилитой <application>sysinstall</application> заключается -      в том, что она несколько ограничена в том, что, куда и как может -      устанавливать.</para> - -    <itemizedlist> -      <listitem> -        <para>Обычно она используется для установки уже откомпилированных -          дистрибутивных наборов и пакаджей с некоторого носителя (CD, DVD, -          FTP).  Она не может устанавливать результат выполнения -          <literal>make buildworld</literal>.</para> -      </listitem> - -      <listitem> -        <para>Она не может устанавливать вторую систему в некоторый каталог -          уже работающей системы.</para> -      </listitem> - -      <listitem> -        <para>Она не может выполнять установку в разделы -          <application>Vinum</application> или -	  <application>ZFS</application>.</para> -      </listitem> - -      <listitem> -        <para>Она не может строить порты, а лишь устанавливать уже -          откомпилированные пакаджи.</para> -      </listitem> - -      <listitem> -        <para>Создание скриптов или выполнение нестандартных действий после -          установки затруднено.</para> -      </listitem> - -      <listitem> -        <para>И последним, но одним из самых важных факторов, является -          полуофициальное прекращение дальнейшей поддержки -          <application>sysinstall</application>.</para> -      </listitem> -    </itemizedlist> - -    <para>Хорошо известный способ полного построения и установки системы, -      описанный в <link xlink:href="http://www.FreeBSD.org/doc/ru_RU.KOI8-R/books/handbook/makeworld.html"> -      Руководстве</link>, по умолчанию замещает существующую систему.  При -      этом сохраняются только модули и ядро.  Системные бинарные файлы, файлы -      объявлений функций и множество других файлов перезаписываются; уже -      ненужные файлы остаются и могут преподносить сюрпризы.  Если по -      какой-либо причине обновление завершилось неудачно, бывает трудно и даже -      невозможно вернуть систему в исходное состояние.</para> - -    <para>&scratch.ap; решает все эти проблемы.  Её стратегия проста: -      использование работающей системы для установки новой в пустое дерево -      каталогов, при этом новые разделы монтируются в соответствующие места -      этого дерева.  Многие конфигурационные файлы могут быть скопированы в -      соответствующее место, а &man.mergemaster.8; сможет позаботиться о тех, -      что скопировать не удалось.  Тонкая настройка новой системы может быть -      выполнена в старой, вплоть до момента, когда вы сможете выполнить chroot -      в новую систему.  Другими словами, мы проходим через три этапа, при этом -      каждый шаг представляет собой либо запуск скрипта, либо вызов команды -      <command>make</command>:</para> - -    <orderedlist> -      <listitem> -        <para><filename>stage_1.sh</filename>: -          Создание новой загружаемой системы в пустом каталоге и объединение -          либо копирование максимально большего количества необходимых файлов. -          Затем загрузка новой системы.</para> -      </listitem> - -      <listitem> -        <para><filename>stage_2.sh</filename>: -          Установка требуемых портов.</para> -      </listitem> - -      <listitem> -        <para><filename>stage_3.mk</filename>: -          Выполнение последующей настройки программного обеспечения, -          установленного на предыдущем этапе.</para> -      </listitem> -    </orderedlist> - -    <para>После того, как вы воспользуетесь &scratch.ap; для построения второй -      системы и в течение нескольких недель убедитесь, что она работает -      удовлетворительно, можете затем использовать её повторно для -      переустановки исходной системы.  С этого момента, как только вы -      почувствуете необходимость обновления, то просто выберите разделы, -      которые хотите удалить и выполнить переустановку.</para> - -    <para>Может быть, вы слышали и даже пробовали использовать систему <link xlink:href="http://www.linuxfromscratch.org/">Linux From Scratch</link>, или -      LFS для краткости.  LFS также определяет, как построить и установить -      систему с нуля на пустой раздел при помощи работающей системы.  LFS -      делает упор на выяснение роли каждого компонента системы (таких, как -      ядро, компилятор, устройства, командный процессор, база данных -      терминальных устройств и так далее) и деталей установки каждого -      компонента.  &scratch.ap; не опускается до такого уровня детализации. -      Моей целью является проведение автоматизированной и полной установки, а -      не описание всех кровавых подробностей полного перепостроения системы. -      В случае, если вы хотите изучить &os; до такого уровня, начните с -      просмотра <filename>/usr/src/Makefile</filename> и следуйте действиям, -      которые выполняет <command>make buildworld</command>.</para> - -    <para>В подходе, который применяется в &scratch.ap;, имеются свои -      отрицательные стороны, которые вы должны иметь в виду.</para> - -    <!-- XXX: Хорошо бы написать stage_2.sh с применением системы разделения -         jail, которые запускаются в только что установленной при помощи -         stage_1 системе.  При корректной настройке первичного IP-адреса jail, -         возможно строить порты в chroot без деинсталляции всего установленного -         из 'хостирующей' системы.  Однако не забывайте, что даже jail-системы -         работают на ядре 'хоста'. --> - -    <itemizedlist> -      <listitem> -        <para>При компиляции портов на втором этапе систему нельзя использовать -          в обычном режиме.  Если вы имеете дело с сервером, работающим в -          режиме промышленной эксплуатации, вы должны быть готовы к простою, -          к которому приводит выполнение второго этапа.  Порты, построенные -          при помощи <filename>stage_2.conf.default</filename> ниже, потребуют -	  для сборки около 8 часов на современной системе (4 из которых займет -	  компиляция <application>OpenOffice.org</application>).  Если вы -	  предпочитаете устанавливать пакеты, а не порты, то вы можете -	  существенно сократить время простоя, примерно до 10 минут.</para> -      </listitem> -    </itemizedlist> -  </sect1> - -  <sect1 xml:id="prerequisites"> -    <title>Предварительные требования</title> - -    <para>Для того, чтобы воспользоваться подходом &scratch.ap;, вам нужно -      иметь:</para> - -    <itemizedlist> -      <listitem> -        <para>Работающую систему &os; с исходными текстами и деревом -          портов.</para> -      </listitem> - -      <listitem> -        <para>По крайней мере один неиспользуемый раздел, куда будет -          устанавливаться новая система.</para> -      </listitem> - -      <listitem> -        <para>Опыт работы с &man.mergemaster.8;.  Или по крайней мере -          отсутствие страха его использовать.</para> -      </listitem> - -      <listitem> -        <para>Если у вас нет подключения или слабый канал в Internet: -          дистрибутивные файлы для ваших любимых портов.</para> -      </listitem> - -      <listitem> -        <para>Знание основ написания скриптов на языке командного процессора -          Bourne, &man.sh.1;.</para> -      </listitem> - -      <listitem> -        <para>Наконец, вы должны уметь указывать загрузчику системы на загрузку -          новой системы, либо интерактивно, либо из конфигурационного -          файла.</para> -      </listitem> -    </itemizedlist> -  </sect1> - -  <sect1 xml:id="stage1"> -    <title>Этап первый: Установка системы</title> - -    <para>В первом варианте этой статьи на первом шаге использовался -      единственный скрипт, в котором вся настройка выполнялась его -      редактированием.  После того, как пользователи высказали свои замечания, -      я решил разделить код и данные на уровне скриптов.  Это позволяет создавать -      разные наборы конфигурационных данных для установки различных систем без -      внесения изменений в скрипты с кодом.</para> - -    <para>Скрипт с кодом для первого этапа называется -      <filename>stage_1.sh</filename>, и он запускается с единственным -      аргументом, например</para> - -    <informalexample> -      <screen>&prompt.root; <userinput>./stage_1.sh <replaceable>default</replaceable></userinput></screen> -    </informalexample> - -    <para>будет считывать свою конфигурацию из файла -      <filename>stage_1.conf.default</filename> и записывать протокол в файл -      <filename>stage_1.log.default</filename>.</para> - -    <para>Далее приводится мой файл <filename>stage_1.conf.default</filename>. -      Вам необходимо подправить его в различных местах для того, чтобы он -      соответствовал вашим представлениям об <quote>идеальной системе</quote>. -      Я попытался подробно прокомментировать те места, которые вы должны -      исправлять.  Конфигурационный скрипт должен предоставлять четыре функции -      для оболочки, <command>create_file_systems</command>, -      <command>create_etc_fstab</command>, <command>copy_files</command> и -      <command>all_remaining_customization</command> (в случае, если это -      имеет смысл: именно в такой последовательности они будут вызываться из -      <filename>stage_1.sh</filename>).</para> - -    <para>Следует внимательно отнестись к следующим моментам:</para> - -    <itemizedlist> -      <listitem> -        <para>Разбиение разделов.</para> - -        <para>Я не являюсь сторонником наличия одного большого раздела для -          всей системы.  Мои системы, как правило, имеют по крайней мере по -          одному разделу для <filename>/</filename>, <filename>/usr</filename> -          и <filename>/var</filename> с каталогом <filename>/tmp</filename>, -          образованным символической ссылкой в <filename>/var/tmp</filename>. -          Вдобавок я использую файловые системы в режиме совместного доступа к -          <filename>/home</filename> (домашние каталоги пользователей), -          <filename>/home/ncvs</filename> (копия CVS-хранилища &os;), -          <filename>/usr/ports</filename> (дерево портов), -          <filename>/src</filename> (различные выгруженные из хранилища деревья -          исходных текстов) и <filename>/share</filename> (остальные совместно -          используемые данные, резервные копии которых не нужны, например, -          спул сервера телеконференций).</para> -      </listitem> - -      <listitem> -        <para>Новые возможности.</para> - -        <para>Это то, что вы хотите иметь сразу после загрузки новой -          системы и даже до запуска второго этапа.  Причина отказа от -	  создания и перехода в chroot-окружение новой системы во время -	  первого этапа и простой установки всех моих любимых портов -	  заключается в том, что теоретически и практически существуют -	  проблемы начальной загрузки и целостности: на первом этапе работает -	  ваше старое ядро, однако в chroot-окружении содержатся новые -	  двоичные файлы программ и файлы объявлений.  Если новые -	  программы используют новый системный вызов, то они будут -	  завершаться <literal>SIGSYS, Плохой системный вызов</literal>, так -	  как старое ядро не поддерживает этот новый вызов.  Я наблюдал -	  и другие проблемы при попытке построения -	  порта <package>lang/perl5.8</package>.</para> -      </listitem> -    </itemizedlist> - -    <para>Перед тем, как запускать <filename>stage_1.sh</filename>, убедитесь, -      что вы выполнили обычные действия при подготовке к -      <command>make installworld installkernel</command>, типа:</para> - -    <itemizedlist> -      <listitem> -        <para>отредактировали конфигурационный файл вашего ядра</para> -      </listitem> - -      <listitem> -        <para>успешно выполнили <command>make buildworld</command></para> -      </listitem> - -      <listitem> -        <para>успешно выполнили <command>make buildkernel -          KERNCONF=<replaceable>whatever</replaceable></command></para> -      </listitem> -    </itemizedlist> - -    <para>Когда вы запускаете <filename>stage_1.sh</filename> первый раз, и -      конфигурационный файл, скопированный с работающей системы в новую, -      является устаревшим по сравнению с тем, что находится в каталоге -      <filename>/usr/src</filename>, <command>mergemaster</command> будет -      запрашивать вас на отработку этой ситуации.  Я рекомендую переносить -      изменения.  Если вам надоело отвечать на запросы, вы можете просто -      единожды обновить файлы в вашей <emphasis>работающей</emphasis> системе -      (Если только это вам подходит.  Скорее всего, вам не нужно это делать, -      если одна из ваших систем работает под управлением -      <literal>-STABLE</literal>, а другая с <literal>-CURRENT</literal>. -      Изменения могут оказаться несовместимыми).  Последующие вызовы -      утилиты <command>mergemaster</command> обнаружат, что RCS-идентификаторы -      версий соответствуют тем, что находятся в <filename>/usr/src</filename>, -      и пропустят файл.</para> - -    <para>Скрипт <filename>stage_1.sh</filename> остановится на первой команде, -      которая завершится неудачно (возвратит ненулевой код завершения) из-за -      <command>set -e</command>, так что вы не пропустите ошибки.  Он также -      остановится, если вы используете неустановленную переменную окружения, -      как правило, из-за опечатки.  Вы должны исправить все ошибки в вашей -      версии <filename>stage_1.conf.default</filename> перед тем, как -      продолжить работу.</para> - -    <para>В скрипте <filename>stage_1.sh</filename> мы вызываем -      <command>mergemaster</command>.  Даже если никаким файлам объединение не -      требуется, он выведет сообщение и в конце сделает запрос</para> - -    <screen>*** Comparison complete -*** Saving mtree database for future upgrades - -Do you wish to delete what is left of /var/tmp/temproot.stage1? [no] <userinput>no</userinput></screen> - -    <para>Пожалуйста, ответьте <literal>no</literal> или просто нажмите -      <keycap>Enter</keycap>.  Причина в том, что -      <command>mergemaster</command> оставит несколько файлов нулевой длины в -      каталоге <filename>/var/tmp/temproot.stage1</filename>, которые позже -      будут скопированы в новую систему (в случае, если их там еще нет).</para> - -    <para>После этого <command>mergemaster</command> перечислит -      установленные им файлы и уточнит, стоит ли генерировать новый -      <filename>login.conf</filename>:</para> - -    <screen>*** You chose the automatic install option for files that did not -    exist on your system.  The following were installed for you: -      /newroot/etc/defaults/rc.conf -      ... -      /newroot/COPYRIGHT - -*** You installed a new aliases file into /newroot/etc/mail, but -    the newaliases command is limited to the directories configured -    in sendmail.cf.  Make sure to create your aliases database by -    hand when your sendmail configuration is done. - -*** You installed a login.conf file, so make sure that you run -    '/usr/bin/cap_mkdb /newroot/etc/login.conf' -     to rebuild your login.conf database - -    Would you like to run it now? y or n [n]</screen> - -    <para>Ответ не имеет значения, так как <filename>stage_1.sh</filename> -      будет запускать &man.cap.mkdb.1; в любом случае.</para> - -    <para>Вот авторский файл <link xlink:href="stage_1.conf.default"> -      <filename>stage_1.conf.default</filename></link>, который вы должны -      потом существенно модифицировать.  В комментариях даётся достаточно информации о том, -      что необходимо изменить.</para> - -    <programlisting> -<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="../../../en_US.ISO8859-1/articles/fbsd-from-scratch/stage_1.conf.default" parse="text"/> -    </programlisting> - -    <para>Скачайте <link xlink:href="stage_1.conf.default"> -      <filename>stage_1.conf.default</filename></link>.</para> - -    <para>При работе этот скрипт устанавливает систему, которая при загрузке -      предоставит:</para> - -    <itemizedlist> -      <listitem> -        <para>Унаследованные списки пользователей и групп.</para> -      </listitem> - -      <listitem> -        <para>Подключение к Internet по Ethernet с использованием -          межсетевого экрана.</para> -      </listitem> - -      <listitem> -        <para>Правильный временной пояс и NTP.</para> -      </listitem> - -      <listitem> -        <para>Другие более мелкие конфигурационные параметры, например, -          <filename>/etc/ttys</filename> и <command>inetd</command>.</para> -      </listitem> -    </itemizedlist> - -    <para>Другие функции готовы к настройке, но не будут работать, пока не -      будет завершён второй этап.  Например, мы скопировали файлы для настройки -      печати и X11.  Однако для печати, скорее всего, необходимы приложения, -      отсутствующие в базовом комплекте системы, например, такие как &postscript;.  X11 не будет работать, пока -      мы не откомпилируем сервер, библиотеки и программы.</para> -  </sect1> - -  <sect1 xml:id="stage2"> -    <title>Этап второй: Установка портов</title> - -    <note> -      <para>На этом этапе вместо компиляции портов возможна также установка -        (уже откомпилированных) пакаджей.  В этом случае -        <filename>stage_2.sh</filename> будет представлять собой не более, чем -        перечень команд <command>pkg_add</command>.  Я надеюсь, что вы сумеете -        написать такой скрипт.  Здесь мы сосредоточимся на более гибком и -        традиционном способе с использованием портов.</para> -    </note> - -    <para>Следующий скрипт <filename>stage_2.sh</filename> показывает, как -      я устанавливаю мои любимые порты.  Он может быть запущен любое количество -      раз и будет пропускать все порты, которые уже установлены.  Он -      поддерживает <emphasis>dryrun</emphasis>-параметр (<option>-n</option>) -      для показа того, что будет выполнено.  Вы запускаете его точно -      также, как <filename>stage_1.sh</filename>, с только одним аргументом, -      указывающим на конфигурационный файл, к примеру</para> - -    <informalexample> -      <screen>&prompt.root; <userinput>./stage_2.sh <replaceable>default</replaceable></userinput></screen> -    </informalexample> - -    <para>который будет считывать перечень портов из -      <filename>stage_2.conf.default</filename>.</para> - -    <para>Список портов состоит из строчек с двумя или большим количеством -      слов, разделённых пробелами: категория и порт, за которыми опционально -      следует команда установки, которая будет компилировать и устанавливать -      порт (по умолчанию: <command>make install BATCH=yes < /dev/null</command>). -      Пустые строки и строки, начинающиеся с символа #, игнорируются.  В большинстве -      случаев в них указывается только название категории и порт.  Однако -      некоторые порты могут быть тонко настроены при помощи указания -      <command>make</command>-переменных, к примеру:</para> - -    <programlisting>www mozilla make WITHOUT_MAILNEWS=yes WITHOUT_CHATZILLA=yes install</programlisting> - -    <para>На самом деле вы можете указать некоторые команды оболочки и не быть -      ограниченными простыми вызовами <command>make</command>:</para> - -    <programlisting>java jdk16            echo true > files/license.sh; make install BATCH=yes < /dev/null -print acroread8       yes accept | make install PAGER=ls -x11-fonts gnu-unifont make install && mkfontdir /usr/local/lib/X11/fonts/local -news inn-stable       CONFIGURE_ARGS="--enable-uucp-rnews --enable-setgid-inews" make install</programlisting> - -    <para>В первых двух строчках проиллюстрировано, как работать с портами, -      которые предлагают вам принять соглашения лицензии.  Заметьте, что строка для <package>news/inn-stable</package> является примером единократного -      задания переменной окружения <literal>CONFIGURE_ARGS</literal>.  Файл -      <filename>Makefile</filename> порта будет использовать это как начальное -      значение и определит некоторые другие необходимые аргументы.  Разница в -      задании <application>make</application>-переменных в командной строке -      по команде</para> - -    <programlisting>news inn-stable make CONFIGURE_ARGS="--enable-uucp-rnews --enable-setgid-inews" install</programlisting> - -    <para>заключается в том, что в последнем случае значение будет -      переназначено, но не расширено.  Выбор нужного метода зависит от -      конкретного порта.</para> - -    <para>Убедитесь в том, что ваши порты не используют интерактивный режим -      установки, то есть не должны пытаться читать со стандартного устройства -      ввода ничего кроме того, что вы им подаёте на вход.  Если это всё же -      происходит, то они будут считывать последующие строки из вашего перечня -      портов, описываемого в этом документе, и будут работать некорректно. -      Если скрипт <filename>stage_2.sh</filename> неожиданно пропустил порт -      или прекратил работу, причина может быть в этом.</para> - -    <para>Ниже приводится <filename>stage_2.conf.default</filename>.  Для -      каждого установленного им порта создаётся файл протокола -      <filename>LOGDIR/category+port</filename>.</para> - -    <programlisting> -<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="../../../en_US.ISO8859-1/articles/fbsd-from-scratch/stage_1.conf.default" parse="text"/> -    </programlisting> - -    <para>Скачайте <link xlink:href="stage_2.conf.default"> -      <filename>stage_2.conf.default</filename></link>.</para> -  </sect1> - -  <sect1 xml:id="stage3"> -    <title>Этап третий</title> - -    <para>На втором этапе вы установили ваши любимые порты.  Некоторые из них -      требуют небольшой настройки.  Именно для этого и предназначен третий -      этап — этап настройки.  Я мог бы интегрировать эту настройку в конец скрипта -      <filename>stage_2.sh</filename>.  Однако я думаю, что есть концептуальное -      различие между установкой порта и модификацией его начальной -      конфигурации, и это требует отдельного шага.</para> - -    <para>Я решил реализовать третий этап в виде файла -      <filename>Makefile</filename>, потому что это позволяет легко выбирать -      то, что вы хотите конфигурировать, следующим простым вызовом:</para> - -    <informalexample> -      <screen>&prompt.root; <userinput>make -f stage_3.mk <replaceable>target</replaceable></userinput></screen> -    </informalexample> - -    <para>Как и в случае с <filename>stage_2.sh</filename>, убедитесь, что файл -      <filename>stage_3.mk</filename> после загрузки новой системы есть в -      наличии, поместив его на совместно используемый раздел либо скопировав -      его куда-нибудь в новую систему.</para> -  </sect1> - -  <sect1 xml:id="limitations"> -    <title>Ограничения</title> - -    <para>Автоматизированная установка порта может оказаться затруднена, если -      она является интерактивной и не поддерживает команду <command>make -      BATCH=YES install</command>.  Для нескольких портов интерактивность -      означает не более, чем ввод <literal>yes</literal> в ответ на вопрос о -      принятии некоторого лицензионного соглашения.  Если такой ответ -      считывается со стандартного устройства ввода, мы просто направляем -      соответствующие ответы на вход установочной команды (к примеру: -      <command>yes | make install</command>).  Для остальных портов вам -      придется разобраться, где конкретно находится интерактивная команда -      и соответственно ее обработать.   Выше были приведены примеры для -      <package>print/acroread8</package> and -      <package>java/jdk16</package>.</para> - -    <para>Вы должны также принять во внимание вопросы обновления -      конфигурационных файлов.  Вообще говоря, вы не знаете, когда и сменился -      ли вообще формат или содержимое конфигурационного файла.  В файл -      <filename>/etc/group</filename> может быть добавлена новая группа, или в -      <filename>/etc/passwd</filename> может добавиться дополнительное поле. -      Всё это уже происходило в прошлом.  Простое копирование конфигурационного -      файла из старой в новую систему может в большинстве случаев оказаться -      достаточным, но в этих случаях это не так.  Если вы обновляете систему -      каноническим способом (путём перезаписывания старых файлов), вы должны -      использовать утилиту <command>mergemaster</command> для работы с -      изменениями, если вы хотите эффективно объединить вашу локальные -      настройки с потенциально новыми возможностями.  К сожалению, -      <command>mergemaster</command> работает только с файлами базового -      комплекта системы, а не с любыми файлами, устанавливаемыми портами. -      Похоже, что стороннее программное обеспечение специально проектируется -      для того, чтобы я не дремал, и меняет конфигурационные файлы по два -      раза в месяц.  Для обнаружения таких скрытых изменений, я держу копию -      изменённых конфигурационных файлов там же, где и <filename>stage_3.mk</filename> -      и сравниваю результат с помощью правил <command>make</command>. -      Например, для конфигурационного файла <application>Apache</application>, -      <filename>httpd.conf</filename>, целью будет -      <command>config_apache</command>.</para> - -<programlisting> -@if ! cmp -s /usr/local/etc/apache2/httpd.conf httpd.conf; then \ -    echo "ATTENTION: the httpd.conf has changed. Please examine if"; \ -    echo "the modifications are still correct. Here is the diff:"; \ -    diff -u /usr/local/etc/apache2/httpd.conf httpd.conf; \ -fi -</programlisting> - -    <para>Если разница между файлами несущественна я могу выполнить -      <command>cp /usr/local/etc/apache2/httpd.conf -        httpd.conf</command>.</para> - -    <para>Я использовал систему &scratch.ap; несколько раз для обновления -      <literal>7-CURRENT</literal> до <literal>7-CURRENT</literal> и -      <literal>8-CURRENT</literal> до <literal>8-CURRENT</literal>, то есть -      я никогда не пытался установить <literal>8-CURRENT</literal> из системы -      <literal>7-STABLE</literal> и наоборот.  Из-за количества изменений между -      релизами с разными старшими номерами я ожидаю, что этот процесс будет -      несколько более сложным.  Использование &scratch.ap; для обновления -      внутри ветки <literal>STABLE</literal> должно проходить безболезненно -      (хотя я ещё не пробовал этого делать).</para> -  </sect1> - -  <sect1 xml:id="files"> -    <title>Файлы</title> - -    <para>Вот три файла, которые вам нужны кроме тех конфигурационных, что -      уже показаны выше.</para> - -    <para>Это скрипт <link xlink:href="stage_1.sh"> -      <filename>stage_1.sh</filename></link>, который вы не должны -      модифицировать.</para> - -    <programlisting> -<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="../../../en_US.ISO8859-1/articles/fbsd-from-scratch/stage_1.conf.default" parse="text"/> -    </programlisting> - -    <para>Скачайте <link xlink:href="stage_1.sh"><filename>stage_1.sh</filename></link>.</para> - -    <para>Это скрипт <link xlink:href="stage_2.sh"><filename>stage_2.sh</filename></link>.  Вам может -      понадобиться изменить переменные в самом начале файла.</para> - -    <programlisting> -<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="../../../en_US.ISO8859-1/articles/fbsd-from-scratch/stage_1.sh" parse="text"/> -    </programlisting> - -    <para>Скачайте <link xlink:href="stage_2.sh"><filename>stage_2.sh</filename></link>.</para> - -    <para>Это мой файл <link xlink:href="stage_3.mk"><filename>stage_3.mk</filename></link>, который даст -      вам идею о том, как автоматизировать всю повторную конфигурацию.</para> - -    <programlisting> -<xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="../../../en_US.ISO8859-1/articles/fbsd-from-scratch/stage_1.conf.default" parse="text"/> -    </programlisting> - -    <para>Скачайте <link xlink:href="stage_3.mk"><filename>stage_3.mk</filename></link>.</para> -  </sect1> -</article> diff --git a/ru_RU.KOI8-R/htdocs/docs/books.xml b/ru_RU.KOI8-R/htdocs/docs/books.xml index 0709cdf046..0cf48f5287 100644 --- a/ru_RU.KOI8-R/htdocs/docs/books.xml +++ b/ru_RU.KOI8-R/htdocs/docs/books.xml @@ -152,11 +152,6 @@  	      Объяснение BSD</a> (explaining-bsd)<br/>  	      Ответ на вопрос ``Что такое BSD?''</p> -	    <p><a href="&url.ru.articles;/fbsd-from-scratch/index.html"> -	      FreeBSD из исходных текстов</a> (fbsd-from-scratch)<br/> -	      Как автоматически собрать, установить и настроить систему из -	      исходных текстов (на пустую файловую систему), включая порты.</p> -  	    <p><a href="&url.articles;/filtering-bridges/index.html">  	      Фильтрующие сетевые мосты</a> (filtering-bridges)<br/>  	      Настройка межсетевых экранов и фильтрации пакетов на хостах | 
