diff options
author | Alexey Zelkin <phantom@FreeBSD.org> | 2001-03-11 16:45:15 +0000 |
---|---|---|
committer | Alexey Zelkin <phantom@FreeBSD.org> | 2001-03-11 16:45:15 +0000 |
commit | 4b5ef55b5cd6e6b81bb1c5a0fec4cd3b47874e43 (patch) | |
tree | f3ea6408bfdc065b5817999a5f19fd821eb1e6c7 | |
parent | 4b7735a32a05a98420d97983f946763aebd45e36 (diff) | |
download | doc-4b5ef55b5cd6e6b81bb1c5a0fec4cd3b47874e43.tar.gz doc-4b5ef55b5cd6e6b81bb1c5a0fec4cd3b47874e43.zip |
synchronize handbook sources with Russian Docu Project Repository.
see "Original revision" note for synchronization revision number.
Obtained from: The FreeBSD Russian Documentation Project
Notes
Notes:
svn path=/head/; revision=8958
-rw-r--r-- | ru_RU.KOI8-R/books/handbook/Makefile | 8 | ||||
-rw-r--r-- | ru_RU.KOI8-R/books/handbook/book.sgml | 12 | ||||
-rw-r--r-- | ru_RU.KOI8-R/books/handbook/boot/chapter.sgml | 11 | ||||
-rw-r--r-- | ru_RU.KOI8-R/books/handbook/cutting-edge/chapter.sgml | 1719 | ||||
-rw-r--r-- | ru_RU.KOI8-R/books/handbook/disks/chapter.sgml | 29 | ||||
-rw-r--r-- | ru_RU.KOI8-R/books/handbook/introduction/chapter.sgml | 52 | ||||
-rw-r--r-- | ru_RU.KOI8-R/books/handbook/ports/chapter.sgml | 10 | ||||
-rw-r--r-- | ru_RU.KOI8-R/books/handbook/x11/chapter.sgml | 99 |
8 files changed, 1882 insertions, 58 deletions
diff --git a/ru_RU.KOI8-R/books/handbook/Makefile b/ru_RU.KOI8-R/books/handbook/Makefile index d3fd8111ce..83393fa484 100644 --- a/ru_RU.KOI8-R/books/handbook/Makefile +++ b/ru_RU.KOI8-R/books/handbook/Makefile @@ -3,7 +3,7 @@ # # The FreeBSD Russian Documentation Project # $FreeBSD$ -# $FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/Makefile,v 1.16 2000/11/15 17:21:30 phantom Exp $ +# $FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/Makefile,v 1.18 2001/03/11 12:04:50 phantom Exp $ # Original version: 1.28 # @@ -29,7 +29,7 @@ SRCS+= basics/chapter.sgml SRCS+= bibliography/chapter.sgml SRCS+= boot/chapter.sgml #SRCS+= contrib/chapter.sgml -#SRCS+= cutting-edge/chapter.sgml +SRCS+= cutting-edge/chapter.sgml SRCS+= disks/chapter.sgml #SRCS+= eresources/chapter.sgml #SRCS+= hw/chapter.sgml @@ -44,7 +44,8 @@ SRCS+= linuxemu/chapter.sgml SRCS+= mail/chapter.sgml SRCS+= mirrors/chapter.sgml SRCS+= pgpkeys/chapter.sgml -#SRCS+= policies/chapter.sgml +SRCS+= policies/chapter.sgml +SRCS+= ports/chapter.sgml #SRCS+= ppp-and-slip/chapter.sgml #SRCS+= printing/chapter.sgml SRCS+= security/chapter.sgml @@ -52,7 +53,6 @@ SRCS+= security/chapter.sgml SRCS+= staff/chapter.sgml #SRCS+= users/chapter.sgml SRCS+= x11/chapter.sgml -SRCS+= ports/chapter.sgml # Entities SRCS+= ../../../en_US.ISO_8859-1/books/handbook/authors.ent diff --git a/ru_RU.KOI8-R/books/handbook/book.sgml b/ru_RU.KOI8-R/books/handbook/book.sgml index acdb152998..a46d82d95c 100644 --- a/ru_RU.KOI8-R/books/handbook/book.sgml +++ b/ru_RU.KOI8-R/books/handbook/book.sgml @@ -2,7 +2,7 @@ The FreeBSD Russian Documentation Project $FreeBSD$ - $FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/book.sgml,v 1.19 2000/11/10 13:01:50 phantom Exp $ + $FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/book.sgml,v 1.22 2001/03/11 12:04:50 phantom Exp $ Original revision: 1.89 --> @@ -23,7 +23,7 @@ <!-- Это текущий релиз FreeBSD. Это значение используется для формирования некоторых ссылок на web сервере, поэтому НЕ стоит изменять это значение до выпуска релиза --> -<!ENTITY rel.current CDATA "4.0"> +<!ENTITY rel.current CDATA "4.2"> ]> <book> @@ -50,11 +50,13 @@ <year>1998</year> <year>1999</year> <year>2000</year> + <year>2001</year> <holder>The FreeBSD Documentation Project</holder> </copyright> <copyright> <year>2000</year> + <year>2001</year> <holder>Проект Русской Документации FreeBSD</holder> </copyright> @@ -63,7 +65,7 @@ <abstract> <para>Добро пожаловать в FreeBSD! Это руководство охватывает процесс инсталляции и ежедневного использования <emphasis>FreeBSD Release - &rel.current;</emphasis>. Это руководство <emphasis>в процессе + &rel.current;</emphasis>. Это руководство находится <emphasis>в процессе разработки</emphasis> и являет собой результат работы множества людей. Многие из разделов до сих пор не существуют, а некоторые из существующих требуют обновления. Если Вы заинтересованы в помощи @@ -122,11 +124,11 @@ <part> <title>Углубленные темы</title> -<!-- &chap.cutting-edge; +<!-- &chap.contrib; - &chap.policies; --> + &chap.policies; &chap.kernelopts; &chap.kerneldebug; &chap.linuxemu; diff --git a/ru_RU.KOI8-R/books/handbook/boot/chapter.sgml b/ru_RU.KOI8-R/books/handbook/boot/chapter.sgml index 02060178fa..65ff99e67b 100644 --- a/ru_RU.KOI8-R/books/handbook/boot/chapter.sgml +++ b/ru_RU.KOI8-R/books/handbook/boot/chapter.sgml @@ -2,8 +2,9 @@ The FreeBSD Russian Documentation Project $FreeBSD$ - $FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/boot/chapter.sgml,v 1.4 2000/11/09 03:29:52 danfe Exp $ - Original revision: 1.8 + $FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/boot/chapter.sgml,v 1.5 2001/02/09 14:49:15 andy Exp $ + + Original revision: 1.10 --> <chapter id="boot"> @@ -164,9 +165,9 @@ boot: <filename>loader.rc</filename>, загружающий выбранные модули и ядро.</para> - <para>И наконец, по умолчанию загрузчик выдерживает 10-секундную паузу - в ожидании нажатия клавиши, и загружает ядро, если оно не было - сделано. Если ожидание было прервано, пользователю выдается + <para>И наконец, по умолчанию загрузчик выдерживает 10-секундную паузу, + ожидая нажатия клавиши, и загружает ядро, если этого не произошло. + Если ожидание было прервано, пользователю выдается приглашение, которое воспринимает простой набор команд, в помощью которых пользователь может изменить значения переменных, выгрузить все модули, загрузить модули и окончательно продолжить процесс diff --git a/ru_RU.KOI8-R/books/handbook/cutting-edge/chapter.sgml b/ru_RU.KOI8-R/books/handbook/cutting-edge/chapter.sgml new file mode 100644 index 0000000000..83d5220b22 --- /dev/null +++ b/ru_RU.KOI8-R/books/handbook/cutting-edge/chapter.sgml @@ -0,0 +1,1719 @@ +<!-- + The FreeBSD Russian Documentation Project + + $FreeBSD$ + $FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/cutting-edge/chapter.sgml,v 1.2 2001/01/15 15:45:03 phantom Exp $ + + Original revision: 1.57 +--> + +<chapter id="cutting-edge"> + <title>На переднем крае разработок</title> + + <para><emphasis>Реструктуризацию, реорганизацию и добавление частей + выполнил &a.jim; в марте 2000. Оригинальный текст написали &a.jkh;, + &a.phk;, &a.jdp; и &a.nik; при помощи многих других.</emphasis></para> + + <sect1> + <title>Краткий обзор</title> + + <para>Между релизами над FreeBSD ведется постоянная работа. Для тех, + кто хочет быть не переднем крае, есть несколько простых методов для + поддержания своей системы в соответствии с последними разработками. + Будьте осторожны—передний край не для всех! Эта глава поможет + вам решить, хотите ли вы отслеживать систему в процессе работы над ней + или останетесь верным одному из выпущенных релизов.</para> + </sect1> + + <sect1 id="current-stable"> + <title>-CURRENT против -STABLE</title> + + <para>Во FreeBSD имеется две ветки разработки; -CURRENT и -STABLE. Этот + раздел описывает каждую из них и объясняет, как синхронизировать вашу + систему с каждой соответствующей веткой. Сначала будет обсуждена ветка + -CURRENT, затем -STABLE.</para> + + <sect2 id="current"> + <title>Как оставаться с текущими разработками во FreeBSD</title> + + <para>Пока вы читаете этот текст, помните, что -CURRENT является + <quote>передовым краем</quote> работ над FreeBSD, и если вы являетесь + во FreeBSD новичком, вам лучше сначала дважды подумать, прежде чем + работать с этой веткой.</para> + + <sect3> + <title>Что такое FreeBSD-CURRENT?</title> + + <para>FreeBSD-CURRENT это, если точно, не более чем ежедневный слепок + исходных текстов FreeBSD, над которыми ведется работа. Сюда + включаются неоконченные работы, экспериментальные изменения и + промежуточные механизмы, которые могут присутствовать, а могут и + отсутствовать в следующем официальном релизе программного + обеспечения. Хотя многие из нас выполняют компиляцию из исходных + текстов FreeBSD-CURRENT практически ежедневно, случаются периоды + времени, когда исходные тексты заведомо не могут быть + откомпилированы. Такие проблемы обычно решаются быстро, насколько + это возможно, но содержат или нет исходные тексты FreeBSD-CURRENT + мину замедленного действия или очень нужную функциональность, + может оказаться зависящим от того, в какой момент из 24-часового + периода времени вы их сгрузили!</para> + </sect3> + + <sect3> + <title>Кому нужна FreeBSD-CURRENT?</title> + + <para>FreeBSD-CURRENT в основном предназначается трем основным + заинтересованным группам:</para> + + <orderedlist> + <listitem> + <para>Члены команды разработчиков FreeBSD, активно работающие над + некоторой частью дерева исходных текстов и для кого работа в + <quote>current</quote> является абсолютной + необходимостью.</para> + </listitem> + + <listitem> + <para>Члены команды разработчиков FreeBSD, которые являются + активными тестерами, тратящие время на работу с проблемами для + того, чтобы определить, что FreeBSD-CURRENT остается, насколько + это возможно, нормально работающей системой. Есть также люди, + которые вносят важные предложения по изменениям и общему + направлению развития FreeBSD.</para> + </listitem> + + <listitem> + <para>Остальные члены групп разработчиков FreeBSD (или других + групп), которые просто хотят быть в курсе всех изменений и + используют текущие исходные тексты для ознакомительных целей (к + примеру, для <emphasis>чтения</emphasis>, но не для + использования). Такие люди также иногда высказывают замечания + или предоставляют код.</para> + </listitem> + </orderedlist> + </sect3> + + <sect3> + <title>Чем FreeBSD-CURRENT <emphasis>не</emphasis> является?</title> + + <orderedlist> + <listitem> + <para>Быстрым способом получить предварительную версию, потому + что вы слышали, что здесь появилась некая крутая возможность + и вы хотите быть первым в вашем микрорайоне, у кого она + есть.</para> + </listitem> + + <listitem> + <para>Быстрым способом получения исправлений.</para> + </listitem> + + <listitem> + <para><quote>Официально поддерживаемой</quote> нами каким бы то + ни было способом. Мы прилагаем все усилия, чтобы помочь тем, + кто изначально принадлежит одной из трех + <quote>признанных</quote> категорий FreeBSD-CURRENT, но у нас + просто <emphasis>нет времени</emphasis> на техническую + поддержку этой ветки. Это не потому, что мы гадкие и злые + люди, которые не хотят помочь другим (если бы это было так, мы + не создали бы FreeBSD), это исключительно потому, что мы не + можем отвечать на 400 сообщений в день <emphasis>и</emphasis> + что-то еще делать по FreeBSD! Я уверен, что если бы стоял + выбор между тем, отвечать ли нам на вопросы или продолжать + усовершенствовать FreeBSD, большинство из вас проголосовали бы + за нашу работу над усовершенствованием.</para> + </listitem> + </orderedlist> + </sect3> + + <sect3> + <title>Использование FreeBSD-CURRENT</title> + + <orderedlist> + <listitem> + <para>Присоединитесь к спискам рассылки &a.current; и &a.cvsall;. + Это не просто хорошая мысль, это + <emphasis>необходимо</emphasis>. Если вы не являетесь + участником списка рассылки + <emphasis>FreeBSD-CURRENT</emphasis>, вы не увидите замечания, + высказываемые о текущем состоянии системы и в итоге можете + столкнуться со множеством проблем, которые уже были найдены и + решены другими. Еще хуже, если вы пропустите важные сообщения, + касающиеся жизнеспособности вашей системы.</para> + + <para>Список рассылки &a.cvsall; позволит вам для каждого + изменения увидеть соответствующую запись в журнале коммитов, + так как они делаются вместе со всей относящейся к делу + информацией о возможных посторонних эффектах.</para> + + <para>Чтобы подключиться к этим спискам, пошлите письмо на адрес + &a.majordomo; указав в теле письма следующее:</para> + + <programlisting> +subscribe freebsd-current +subscribe cvs-all + </programlisting> + + <para>Дополнительно вы можете также указать + <literal>help</literal>, а Majordomo вышлет вам подробную + справку о том, как подписаться и отказаться от подписки на + различные другие списки рассылки, которые мы ведем.</para> + </listitem> + + <listitem> + <para>Сгрузите исходные тексты с <hostid + role="fqdn">ftp.FreeBSD.org</hostid>. Вы можете сделать это + одним из трех способов:</para> + + <orderedlist> + <listitem> + <para>При помощи <application><link + linkend="ctm">CTM</link></application>. Если у вас нет + хорошего подключения по TCP/IP с фиксированной абонентской + платой, то это то, что нужно.</para> + </listitem> + + <listitem> + <para>При помощи программы <link linkend="cvsup">cvsup</link> + с <ulink + url="ftp://ftp.FreeBSD.org/pub/FreeBSD/FreeBSD-current/src/share/examples/cvsup/standard-supfile"> + таким sup-файлом</ulink>. Это второй самый рекомендуемый + метод, так как он позволяет вам сгрузить набор исходных + текстов один раз полностью, а затем сгружать только + произошедшие изменения. Многие запускают cvsup при помощи + прграммы cron и получают самые свежие исходные тексты + автоматически. Для облегчения его получения просто + наберите:</para> + + <blockquote> + <screen> +&prompt.root; <userinput>pkg_add -f \ +ftp://ftp.FreeBSD.org/pub/FreeBSD/development/CVSup/cvsupit.tgz</userinput> + </screen> + </blockquote> + </listitem> + + <listitem> + <para>При помощи <command>ftp</command>. Дерево исходных + текстов для FreeBSD-CURRENT всегда + <quote>экспортируется</quote> на: <ulink + url="ftp://ftp.FreeBSD.org/pub/FreeBSD/FreeBSD-current/"> + ftp://ftp.FreeBSD.org/pub/FreeBSD/FreeBSD-current/</ulink>. + К тому же мы используем <command>wu-ftpd</command>, + позволяющий выполнять сгрузку полных деревьев каталогов + сжатых/упакованных при помощи tar, к примеру, + возьмем:</para> + + <screen>usr.bin/lex</screen> + + <para>Чтобы получить весь каталог в виде tar-файла, вы можете + сделать следующее:</para> + + <screen> +<prompt>ftp></prompt> <userinput>cd usr.bin</userinput> +<prompt>ftp></prompt> <userinput>get lex.tar</userinput> + </screen> + </listitem> + </orderedlist> + </listitem> + + <listitem> + <para>Итак, если вам нужен быстрый доступ по требованию к + исходным текстам и нагрузка на каналы связи для вас не + представляет проблемы, то используйте <command>cvsup</command> + или <command>ftp</command>. В противном случае воспользуйтесь + <application>CTM</application>.</para> + + <para>Если вам нужны исходные тексты для компиляции и запуска, а + не просто для ознакомления, то сгружайте исходные тексты + ветки current <emphasis>полностью</emphasis>, а не отдельные + ее части. Причиной является то, что многие части исходных + текстов зависят от других обновлений где-то еще, и попытка + компиляции лишь некоторой части программ гарантированно + приведет к возникновению проблем.</para> + + <para>Перед тем, как компилировать current, внимательно прочтите + файл <filename>Makefile</filename> в каталоге + <filename>/usr/src</filename>. В процессе обновления вы + по крайней мере раз должны пройти через <link + linkend="makeworld">make world</link>. Чтение &a.current; + позволит вам быть в курсе всех процедур начальной загрузки, + которые иногда бывают необходимы при переходе к следующему + релизу.</para> + </listitem> + + <listitem> + <para>Будьте активными подписчиками! Если вы работаете с + FreeBSD-CURRENT, мы хотим знать, что вы думаете о ней, особенно + если у вас есть соображения по ее улучшению или исправлению + ошибок. Пожелания, к которым прилагается код, всегда + принимаются с большим энтузиазмом!!</para> + </listitem> + </orderedlist> + </sect3> + </sect2> + + <sect2 id="stable"> + <title>Работа с веткой stable во FreeBSD</title> + + <para>Если вы используете FreeBSD в производстве и хотите быть + уверенными, что у вас есть все последние исправления из ветки + -CURRENT, то вам нужно работать со -STABLE. Это та ветка, из которой + делаются -RELEASE при их выпуске. Например, если у вас есть копия + 3.4-RELEASE, то это всего лишь <quote>снэпшот</quote> ветки -STABLE, + который мы поместили на компакт-диск. Для того, чтобы получить все + изменения, вошедшие в -STABLE после выхода -RELEASE, вам нужно + <quote>отслеживать</quote> ветку -STABLE.</para> + + <sect3> + <title>Что такое FreeBSD-STABLE?</title> + + <para>FreeBSD-STABLE является нашей веткой разработки для менее + важных и более консервативных изменений, предназнанных для + следующего основного релиза. Экспериментальные или + непротестированные изменения в эту ветку не преднаханчены для этой + ветки (смотрите материал о <link linkend="current"> + FreeBSD-CURRENT</link>).</para> + </sect3> + + <sect3> + <title>Кому нужна FreeBSD-STABLE?</title> + + <para>Если вы корпоративный пользователь или тот, кто вопрос + надежность работы своей системы FreeBSD ставит прежде всех других + аспектов, то вам необходимо отслеживать ветку + <emphasis>stable</emphasis>. Это особенно важно, если вы + установили самый последний релиз (<ulink + url="ftp://ftp.FreeBSD.org/pub/FreeBSD/&rel.current;-RELEASE/"> + &rel.current;-RELEASE</ulink> на момент написания этого текста), + так как ветка <emphasis>stable</emphasis> на самом деле является + разработкой свободной от ошибок предыдущего релиза.</para> + + <warning> + <para>Кроме всего прочего. дерево <emphasis>stable</emphasis> + пытается быть всегда надежным и пригодным к компиляции, однако + иногда мы делаем ошибки (в конце концов, это все таки активная + разработка с часто происходящими обновлениями). Мы также + прилагаем все усилия, чтобы протестировать все исправления в + <emphasis>current</emphasis> перед тем, как вносить их в + <emphasis>stable</emphasis>, однако наши тесты иногда + предусматривают не все возможные случаи. Если у вас что-то + работает в <emphasis>stable</emphasis> не так, то, пожалуйста, + дайте нам знать <emphasis>немедленно!</emphasis> (смотрите + следующий раздел).</para> + </warning> + </sect3> + + <sect3> + <title>Использование FreeBSD-STABLE</title> + + <orderedlist> + <listitem> + <para>Подключитесь к списку рассылки &a.stable;. Это позволит + вам быть информированным о зависимостях этапа построения, + которые могут появиться в ветке <emphasis>stable</emphasis> или + любых других проблемах, требущих особого внимания. В этом + списке рассылки разработчики также делают объявления, когда + они рассматривают некоторое спорное исправление или добавление, + давая пользователям возможность ответить, возникли ли у них + проблемы, вызванные предполагаемым изменением.</para> + + <para>Список рассылки &a.cvsall; позволит вам для каждого + изменения увидеть соответствующую запись в журнале коммитов, + так как они делаются вместе со всей относящейся к делу + информацией о возможных посторонних эффектах.</para> + + <para>Чтобы подключиться к этим спискам, пошлите письмо на адрес + &a.majordomo; указав в теле письма следующее:</para> + + <programlisting> +subscribe freebsd-stable +subscribe cvs-all + </programlisting> + + <para>Дополнительно вы можете также указать + <literal>help</literal>, а Majordomo вышлет вам подробную + справку о том, как подписаться и отказаться от подписки на + различные другие списки рассылки, которые мы ведем.</para> + </listitem> + + <listitem> + <para>Если вы устанавливаете новую систему и хотите, чтобы она + работала максимально стабильно, то можете просто сгрузить + самый последний по дате снэпшот ветки по адресу <ulink + url="ftp://releng4.FreeBSD.org/pub/FreeBSD/"> + ftp://releng4.FreeBSD.org/pub/FreeBSD/</ulink> и установить + его, как любой другой релиз.</para> + + <para>Если вы уже работаете с предыдущим релизом FreeBSD и хотите + обновить его из исходных текстов, то вы можете легко это + сделать с сервера <hostid role="fqdn">ftp.FreeBSD.org</hostid>. + Это можно сделать одним из трех способов:</para> + + <orderedlist> + <listitem> + <para>При помощи <application><link + linkend="ctm">CTM</link></application>. Если у вас нет + хорошего подключения по TCP/IP с фиксированной абонентской + платой, то это то, что нужно.</para> + </listitem> + + <listitem> + <para>При помощи программы <link linkend="cvsup">cvsup</link> + с <ulink + url="ftp://ftp.FreeBSD.org/pub/FreeBSD/FreeBSD-current/src/share/examples/cvsup/stable-supfile"> + таким sup-файлом</ulink>. Это второй самый рекомендуемый + метод, так как он позволяет вам сгрузить набор исходных + текстов один раз полностью, а затем сгружать только + произошедшие изменения. Многие запускают cvsup при помощи + прграммы cron и получают самые свежие исходные тексты + автоматически. Для облегчения его получения просто + наберите:</para> + + <blockquote> + <screen> +&prompt.root; <userinput>pkg_add -f \ +ftp://ftp.FreeBSD.org/pub/FreeBSD/development/CVSup/cvsupit.tgz</userinput> + </screen> + </blockquote> + </listitem> + + <listitem> + <para>При помощи <command>ftp</command>. Дерево исходных + текстов для FreeBSD-STABLE всегда + <quote>экспортируется</quote> на: <ulink + url="ftp://ftp.FreeBSD.org/pub/FreeBSD/FreeBSD-stable/"> + ftp://ftp.FreeBSD.org/pub/FreeBSD/FreeBSD-stable/</ulink>. + К тому же мы используем <command>wu-ftpd</command>, + позволяющий выполнять сгрузку полных деревьев каталогов + сжатых/упакованных при помощи tar, к примеру, + возьмем:</para> + + <screen>usr.bin/lex</screen> + + <para>Чтобы получить весь каталог в виде tar-файла, вы можете + сделать следующее:</para> + + <screen> +<prompt>ftp></prompt> <userinput>cd usr.bin</userinput> +<prompt>ftp></prompt> <userinput>get lex.tar</userinput> + </screen> + </listitem> + </orderedlist> + </listitem> + + <listitem> + <para>Итак, если вам нужен быстрый доступ по требованию к + исходным текстам и нагрузка на каналы связи для вас не + представляет проблемы, то используйте <command>cvsup</command> + или <command>ftp</command>. В противном случае воспользуйтесь + <application>CTM</application>.</para> + </listitem> + + <listitem> + <para>Перед тем, как компилировать stable, внимательно прочтите + файл <filename>Makefile</filename> в каталоге + <filename>/usr/src</filename>. В процессе обновления вы + по крайней мере раз должны пройти через <link + linkend="makeworld">make world</link>. Чтение &a.stable; + позволит вам быть в курсе всех процедур начальной загрузки, + которые иногда бывают необходимы при переходе к следующему + релизу.</para> + </listitem> + </orderedlist> + </sect3> + </sect2> + </sect1> + + <sect1 id="synching"> + <title>Синхронизация ваших исходных текстов</title> + + <para>Имеются различные способы использования Интернет (или почтового) + подключения для того, чтобы иметь самые последние версии исходных + текстов любого проекта FreeBSD, во всех областях, в зависимости от + того, чем вы интересуетесь. Основной сервисы, который мы предлагаем, + это <link linkend="anoncvs">Анонимный CVS</link>, <link + linkend="cvsup">CVSup</link> и <link linkend="ctm">CTM</link>.</para> + + <para><application>Анонимный CVS</application> и + <application>CVSup</application> используют модель + <emphasis>pull</emphasis> обновления исходных текстов. В случае + <application>CVSup</application> пользователь (или скрипт программы + cron) вызывают <command>cvsup</command>, а она работает с каким-либо + сервером <command>cvsupd</command>, чтобы выполнить обновление ваших + файлов. Обновления, которые вы получаете, обнолены с точностью до + минуты и вы получаете их тогда и только тогда, когда сами захотите. + Вы можете с легкостью ограничить ваши обновления конкретными файлами + или каталогами, которые представляют для вас интерес. Обновления + создаются на лету сервером согласно тому, что у вас есть и что вы + хотите иметь. <application>Анонимный CVS</application> гораздо проще, + чем CVSup в том смысле, что он представляет собой всего лишь расширение + <application>CVS</application>, позволяющее сгрузить изменения + непосредственно с удаленного хранилища CVS. + <application>CVSup</application> может делать это гораздо более + эффективно, однако <application>анонимным CVS</application> легче + пользоваться.</para> + + <para><application>CTM</application>, с другой стороны, не сравнивает + последовательно исходные тексты, имеющиеся у вас, с теми, что + находятся в главном архиве и ни каким-либо другим способом их не + сгружает.. Вмесо этого несколько раз в день на главной машине CTM + запускается скрипт, идентифицирующий изменения в файлах с момента + своего предыдущего запуска, все замеченные изменения подвергаются + сжатию, пометке последовательным номером и кодировке для передачи по + электронной почте (исключительно в форме печатаемых символов ASCII). + После получения эти <quote>дельта-файлы CTM</quote> могут быть + переданы утилите &man.ctm.rmail.1;, которая осуществит автоматическое + декодирования, проверку и применение изменений к пользовательской + копии исходных текстов. Этот процесс гораздо более эффективен, чем + <application>CVSup</application> и требует меньше ресурсов нашего + сервера, так как он сделан по модели <emphasis>push</emphasis>, а не + <emphasis>pull</emphasis>.</para> + + <para>Есть другие минусы, конечно. Если вы случайно уничтожили + часть вашего архива, то <application>CVSup</application> обнаружит + и перестроит поврежденную часть. <application>CTM</application> этого + делать не будет, и если вы уничтожили какую-то часть вашего дерева + исходных текстов (и у вас нет архивной копии), то вам нужно будет + начать с самого начала (с самого последнего <quote>базового + дельта-файла</quote> CVS), перестроив все с помощью CTM, или, используя + anoncvs, просто удалить поврежденную часть и + пересинхронизироваться.</para> + + <para>Более подробная информация об <application>анонимном + CVS</application>, <application>CTM</application> и + <application>CVSup</application> находится в этом разделе далее.</para> + </sect1> + + <sect1 id="makeworld"> + <title>Использование <command>make world</command></title> + + <para>После того, как вы засинхронизировали ваше локальное дерево + исходных текстов с некоторой версией FreeBSD + (<literal>stable</literal>, <literal>current</literal> и так далее), + то должны использовать эти исходные тексты для перестроения + системы.</para> + + <warning> + <title>Создайте резервную копию</title> + + <para>Я не могу удивить вас тем, насколько важно сделать резервную + копию вашей системы <emphasis>до того</emphasis>, как вы будете + это делать. Хотя перестроение всей системы (пока вы следуете этим + инструкциям) является простой задачей, вы всегда можете допустить + ошибку, или ошибка может оказаться в исходных текстах, что может + привести к тому, что система перестанет загружаться.</para> + + <para>Обязательно сделайте резервную копию. И держите под рукой + аварийную дискету. Мне никогда не приходилось ими пользоваться, но, + постучав по дереву, всегда лучше подготовиться, чем потом + извиняться.</para> + </warning> + + <warning> + <title>Подпишитесь на соответствующий список рассылки</title> + + <para>Ветки -STABLE и -CURRENT кода FreeBSD по природе своей являются + <emphasis>изменяющимися</emphasis>. В разработке FreeBSD участвуют + люди, и время от времени случаются ошибки.</para> + + <para>Иногда эти ошибки достаточно безобидны и приводят к выводу + нового диагностического сообщения. Бывает, что изменение оказывается + катастрофичным, и система не может загрузиться или разрушаются + файловые системы (или еще хуже).</para> + + <para>Если возникают подобные проблемы, в соответствующем списке + рассылки публикается сообщение <quote>heads up</quote>, в котором + описывается природа проблемы и затрагиваемые системы. Когда проблема + решается, публикуется сообщение <quote>all clear</quote>.</para> + + <para>Если вы пытаетесь отслеживать -STABLE или -CURRENT и не читаете + списки рассылки <email>stable@FreeBSD.org</email> или + <email>current@FreeBSD.org</email>, то вы напрашиваетесь на + неприятности.</para> + </warning> + + <sect2> + <title>Прочтите <filename>/usr/src/UPDATING</filename></title> + + <para>Перед тем, как делать что-либо, прочтите + <filename>/usr/src/UPDATING</filename> (или соответствующий файл, + если у вас есть копия исходных текстов). В этом файле должна + содержаться важная информация о проблемах, с которыми вы можете + столкнуться, или указан порядок, в котором вы должны запускать + определенные команды. Если в файле <filename>UPDATING</filename> + написано нечто, противоречающее тому, что вы здесь читаете, то + нужно следовать указаниям в <filename>UPDATING</filename>.</para> + + <important> + <para>Чтение <filename>UPDATING</filename> не заменит подписки на + соответствующий список рассылки, как это и описано выше. Эти два + условия являются дополняющими, а не взаимоисключающими друг + друга.</para> + </important> + </sect2> + + <sect2> + <title>Проверьте содержимое <filename>/etc/make.conf</filename></title> + + <para>Просмотрите файлы <filename>/etc/defaults/make.conf</filename> и + <filename>/etc/make.conf</filename>. Первый содержит некоторые + предопределенные по умолчанию значения – большинство из них + закомментировано. Чтобы воспользоваться ими при перестроении системы + из исходных текстов, добавьте их в файл + <filename>/etc/make.conf</filename>. Имейте в виду, что все, + добавляемое вами в <filename>/etc/make.conf</filename>, используется + также каждый раз при запуске команды <command>make</command>, так что + полезно задать здесь значения, подходящие вашей системе.</para> + + <para>Как обычный пользователь (не разработчик FreeBSD), вам может + потребоваться скопировать строки <makevar>CFLAGS</makevar> и + <makevar>NOPROFILE</makevar>, расположенные в + <filename>/etc/defaults/make.conf</filename>, в файл + <filename>/etc/make.conf</filename> и раскомментировать их.</para> + + <note> + <title/Версии 2.1.7 и ниже/ + + <para>Если в вашей машине имеется сопроцессор для работы с + вещественными числами (машины класса 386DX, 486DX, Pentium и выше), + то вы можете также раскомментировать строчку HAVE_FPU.</para> + + <para>Это определение было убрано в версиях FreeBSD 2.2.2 и + выше.</para> + </note> + + <para>Посмотрите на другие определения (COPTFLAGS, NOPORTDOCS и так + далее) и решите, имеют ли они для вас значение.</para> + </sect2> + + <sect2> + <title>Обновите файл <filename>/etc/group</filename></title> + + <para>Каталог <filename>/etc</filename> содержит значительную часть + информации о конфигурации вашей системы, а также скрипты, работающие + в начале работы системы. Некоторые из этих скриптов меняются от + версии к версии FreeBSD.</para> + + <para>Некоторые конфигурационные файлы также используются в ежедневной + работе системы. В частности, файл + <filename>/etc/group</filename>.</para> + + <para>Случалось, что установочная часть <quote>make world</quote> + ожидала существования определенных имен пользователей или групп. При + обновлении вероятно, что эти группы не существуют. Это вызывает + проблемы при обновлении.</para> + + <para>Самым свежим примером этого является добавление группы + <quote/ppp/ (позже переименованной в <quote/network/). Пользователи + сталкивались с прерыванием процесса установки, когда части подсистемы + <filename>ppp</filename> устанавливались с использованием + не существующего (для них) имени группы.</para> + + <para>Выходом является просмотр файла + <filename>/usr/src/etc/group</filename> и сравнение списка групп в + нем с вашим собственным. Если в новом файле есть группы, + отсутствующие в вашем, то скопируйте их. Таким же образом вы должны + переименовывать все группы в <filename>/etc/group</filename>, которые + имеют тот же самый GID, но другое название в + <filename>/usr/src/etc/group</filename>.</para> + + <tip> + <para>Если ощущаете себя параноиком, вы можете проверить вашу систему + в поиске файлов, владельцем которых является та группа, которую вы + переименовываете или удаляете.</para> + + <screen> +&prompt.root; <userinput>find / -group <replaceable>GID</replaceable> -print</userinput> + </screen> + + <para>выдаст список всех файлов, владельцем которых является группа + <replaceable>GID</replaceable> (задаваемая по имени группы или + численному значению ID).</para> + </tip> + </sect2> + + <sect2> + <title/Перейдите в однопользовательский режим/ + + <para>Вам может понадобиться откомпилировать систему в + однопользовательском режиме. Кроме обычного выигрыша в значительном + ускорении процесса, переустановка системы затрагивает много важных + системных файлов, все стандартные выполнимые файлы системы, + библиотеки, include-файлы и так далее. Изменение их на работающей + системе (в частности, в которой работают пользователи) может + привести к неприятностям.</para> + + <para>Если вы смелы и предупреждены о неприятностях, то можете + пропустить этот шаг.</para> + + <note> + <title>Версия 2.2.5 и выше</title> + + <para>Как описывается более подробно ниже, в версиях FreeBSD 2.2.5 и + выше процессы установки и построения разделены. Таким образом, вы + можете <emphasis>построить</emphasis> новую систему в + многопользовательском режиме, а для установки затем перейти в + однопользовательский режим.</para> + </note> + + <para>Как администратор, вы можете выполнить</para> + + <screen> +&prompt.root; <userinput/shutdown now/ + </screen> + + <para>на работающей системе, что переведет ее в однопользовательский + режим.</para> + + <para>Либо вы можете выполнить перезагрузку и в приглашении загрузчика + задать флаг <option>-s</option>. После этого система загрузится в + однопользовательском режиме. В приглашии командного процессора вы + должны тогда запустить:</para> + + <screen> +&prompt.root; <userinput>fsck -p</userinput> +&prompt.root; <userinput>mount -u /</userinput> +&prompt.root; <userinput>mount -a -t ufs</userinput> +&prompt.root; <userinput>swapon -a</userinput> + </screen> + + <para>Эти команды выполнят проверку файловых систем, перемонтируют + <filename>/</filename> в режиме чтения/записи, смонтируют все + остальные файловые системы UFS, перечисленные в файле + <filename>/etc/fstab</filename> и включат подкачку.</para> + </sect2> + + <sect2> + <title>Удалите <filename>/usr/obj</filename></title> + + <para>При перестроении частей системы они помещаются в каталоги, + которые (по умолчанию) находятся в <filename>/usr/obj</filename>. + Каталоги скрывают их в <filename>/usr/src</filename>.</para> + + <para>Вы можете ускорить выполнение процесса <quote>make world</quote> + и, возможно, избавить себя от некоторой головной боли, связанной с + зависимостями, удалив этот каталог.</para> + + <para>На некоторых файлах из <filename>/usr/obj</filename> будут + установлены специальные флаги (обратитесь к &man.chflags.1; за + дополнительной информацией), которые сначала должны быть + сняты.</para> + + <screen> +&prompt.root; <userinput>cd /usr/obj</userinput> +&prompt.root; <userinput>chflags -R noschg *</userinput> +&prompt.root; <userinput>rm -rf *</userinput> + </screen> + </sect2> + + <sect2> + <title/Перекомпилируйте исходные тексты и установите новую систему/ + + <sect3> + <title>Все версии</title> + + <para>Вы должны находиться в каталоге + <filename>/usr/src</filename>...</para> + + <screen> +&prompt.root; <userinput>cd /usr/src</userinput> + </screen> + + <para>(если, конечно, ваш исходный код находится где-то еще, в случае + чего вам нужно перейти в соответствующий каталог).</para> + + <para>Для полного перестроения системы используется + команда &man.make.1;. Эта команда читает инструкции из файла + <filename>Makefile</filename>, описывающего, как должны быть + перестроены команды, которые составляют систему FreeBSD, в каком + порядке они должны быть построены и так далее.</para> + + <para>Общий формат командной троки, которую вы будет набирать, + таков:</para> + + <screen> +&prompt.root; <userinput>make <option>-<replaceable/x/</option> <option>-D<replaceable>VARIABLE</replaceable></option> <replaceable>target</replaceable></userinput> + </screen> + + <para>В этом примере <option>-<replaceable>x</replaceable></option> + является параметром, который вы передаете в &man.make.1;. + Обратитесь к справочной странице программы &man.make.1;, в которой + есть пример параметров, которые вы можете передать.</para> + + <para><option>-D<replaceable>VARIABLE</replaceable></option> + передает переменную в <filename>Makefile</filename>. Поведение + <filename>Makefile</filename> определяется этими переменными. Это + те же самые переменные, которые задаются в + <filename>/etc/make.conf</filename>, и это дает еще один способ + их задания.</para> + + <screen> +&prompt.root; <userinput>make -DNOPROFILE=true <replaceable>target</replaceable></userinput> + </screen> + + <para>является другим способом указания того, что библиотеки для + профилирования строить не нужно, и соответствует строкам</para> + + <programlisting> +NOPROFILE= true +# Avoid compiling profiled libraries + </programlisting> + + <para>в файле <filename>/etc/make.conf</filename>.</para> + + <para><replaceable>target</replaceable> указывает программе + &man.make.1; на то, что вы хотите сделать. Каждый файл + <filename>Makefile</filename> определяет некоторое количество + различных <quote>целей</quote>, и ваш выбор цели определяет то, что + будет делаться.</para> + + <para>Некоторые цели перечислены в файле + <filename>Makefile</filename>, но вам не нужно их вызывать. Просто + они используются в процессе построения для разбиения шагов, + необходимых для перестроения системы, на несколько + под-шажков.</para> + + <para>В большинстве случаев вам не нужно передавать никаких + параметров в &man.make.1;, так что ваша команда будет выглядеть + примерно так:</para> + + <screen> +&prompt.root; <userinput>make <replaceable>target</replaceable></userinput> + </screen> + </sect3> + + <sect3> + <title>Сохраните вывода</title> + + <para>Неплохо сохранить вывод, получаемый при работе программы + &man.make.1;, в другой файл. Если что-то идет не так, вы будете + иметь копию сообщения об ошибке и полную картину того, где она + произошла. Хотя это может и не помочь в определении причин + происходящего, это может помочь другим, если вы опишите вашу + проблему в одном из списков рассылки FreeBSD.</para> + + <para>Проще всего это сделать при помощи команды &man.script.1; с + параметром, в котором указано имя файла, в который нужно сохранить + вывод. Вы должны сделать это непосредственно перед тем, как + перестроить систему, а по окончании процесса набрать + <userinput>exit</userinput>.</para> + + <screen> +&prompt.root; <userinput>script /var/tmp/mw.out</userinput> +Script started, output file is /var/tmp/mw.out +&prompt.root; <userinput>make world</userinput> +<emphasis>… compile, compile, compile …</emphasis> +&prompt.root; <userinput>exit</userinput> +Script done, … + </screen> + + <para>Если вы делаете это, <emphasis>не</emphasis> сохраняйте + вывод в <filename>/tmp</filename>. Этот каталог может быть + очищен при следующей перезагрузке. Лучше сохранить его в + <filename>/var/tmp</filename> (как в предыдущем примере) или в + домашнем каталоге пользователя <username>root</username>.</para> + </sect3> + + <sect3> + <title>Версия 2.2.2 и ниже</title> + + <para><filename>/usr/src/Makefile</filename> содержит цель + <maketarget>world</maketarget>, при выполнении которой система + перестраивается и переустанавливается полностью.</para> + + <para>Используйте ее вот так:</para> + + <screen>&prompt.root; <userinput>make world</userinput></screen> + </sect3> + + <sect3> + <title>Версия 2.2.5 и выше</title> + + <para>Начиная с версии FreeBSD 2.2.5 (на самом деле впервые это было + сделано в ветке -CURRENT, а затем адаптировано в -STABLE где-то + между 2.2.2 и 2.2.5) цель <maketarget>world</maketarget> была + разделена на две. <maketarget>buildworld</maketarget> и + <maketarget>installworld</maketarget>.</para> + + <para>Как указывают на это названия, + <maketarget>buildworld</maketarget> строит полностью новое дерево + в каталоге <filename>/usr/obj</filename>, а + <maketarget>installworld</maketarget> устанавливает это дерево на + используемой машине.</para> + + <para>Это весьма полезно по двум причинам. Во-первых, это позволяет + вам безопасно строить систему, зная, что компоненты вашей + рабочей системы затронуты не будут. Построение + <quote>самодостаточно</quote>. По этой причине вы можете + спокойно запустить <maketarget>buildworld</maketarget> на машине, + работающей в многопользовательском режиме без признаков каких-либо + проблем. Но все же я рекомендую запускать цель + <maketarget>installworld</maketarget> в однопользовательском + режиме.</para> + + <para>Во-вторых, это позволяет вам использовать монтирование по + NFS для обновления многих машин в сети. Если у вас есть три + машины, A, B и C, которые вы хотите обновить, запустите + <command>make buildworld</command> и + <command>make installworld</command> на машине A. B и C должны + затем смонтировать по NFS каталоги <filename>/usr/src</filename> + и <filename>/usr/obj</filename> с машины A, а вы сможете запустить + <command>make installworld</command> для установки результатов + построения на машинах B и C.</para> + + <para>Цель <maketarget>world</maketarget> все еще существует, и вы + можете использовать ее точно также, как это делается для версии + 2.2.2. <command>make world</command> выполняет <command>make + buildworld</command>, за которым следует <command>make + installworld</command>.</para> + + <note> + <para>Если вы выполняете команды <command>make buildworld</command> + и <command>make installworld</command> раздельно, вы должны + передавать команде &man.make.1; каждый раз одни и те же + параметры.</para> + + <para>Если вы запускаете:</para> + + <screen> +&prompt.root; <userinput>make -DNOPROFILE=true buildworld</userinput> + </screen> + + <para>вы должны установить полученный результат командой:</para> + + <screen> +&prompt.root; <userinput>make -DNOPROFILE=true installworld</userinput> + </screen> + + <para>в противном случае будет делаться попытка установить + библиотеки для профилирования, которые не строились во время + выполнения фазы <command>make buildworld</command>.</para> + </note> + </sect3> + + <sect3> + <title>-CURRENT и выше</title> + + <para>Если вы отслеживаете -CURRENT, вы можете также передать команде + <command>make</command> параметр <option>-j</option>. Это позволит + команде <command>make</command> запустить несколько параллельных + процессов.</para> + + <para>Лучше всего это делать на многопроцессорных машинах. Однако + из-за того, что большая часть процесса компиляции заключается во + вводе/выводе, а не обработке, это также полезно и в случае + однопроцессорных машин.</para> + + <para>На типичной машине с одним CPU вы должны запускать:</para> + + <screen> +&prompt.root; <userinput>make -j4 <replaceable>target</replaceable></userinput> + </screen> + + <para>&man.make.1; будет иметь до 4 одновременно работающих + процессов. Эмпирические замеры, публикуемые в списках рассылки, + показывают, что в среднем это дает наибольшее улучшение + производительности.</para> + + <para>Если у вас многопроцессорная машина и вы используете ядро с + настройками для SMP, попробуйте использовать значения между 6 и + 10 и посмотрите, как это отразится на скорости работы.</para> + + <para>Имейте в виду, что (на момент написания этого текста) это + остается экспериментальной возможностью, и изменения в дереве + исходных текстов иногда могут это портить. Если система не + может быть построена с использованием этого параметра, попробуйте + еще раз без него перед тем, как сообщать о проблемах.</para> + </sect3> + + <sect3> + <title>Время на построение</title> + + <para>Полагая, что все проходит нормально, приготовьтесь подождать от + полутора часов до суток и больше.</para> + + <para>Примите во внимание, что P6 с тактовой частотой 200МГц с более + чем 32МБ ОЗУ и нормальными дисками SCSI выполняет команду + <command>make world</command> примерно за полтора часа. P133 с + 32МБ делает это за 5 или 6 часов. Увеличьте эти числа, если + ваша машина медленнее…</para> + </sect3> + </sect2> + + <sect2> + <title>Обновите файлы, не обновленные по команде + <command>make world</command></title> + + <para>При перестроении системы не будут обновляться некоторые каталоги + (в частности, <filename>/etc</filename>, <filename>/var</filename> и + <filename>/usr</filename>) с новыми или измененными конфигурационными + файлами.</para> + + <para>Самым простым способом обновить такие файлы является запуск + утилиты &man.mergemaster.8;, хотя можно сделать это и вручную, если + вам так нравится. Однако мы настоятельно рекомендуем использовать + &man.mergemaster.8;, и если вы это сделаете, то можете сразу перейти + к <link linkend="update-dev">следующему разделу</link>, так как + программа &man.mergemaster.8; весьма проста в использовании. Сначала + вы должны прочитать справочную страницу и сделать резервную копию + <filename>/etc</filename> на случай, если что-то пойдет не + так.</para> + + <para>Если вы хотите произвести обновление вручную, то вы не можете + просто скопировать файлы из <filename>/usr/src/etc</filename> в + <filename>/etc</filename> и получить работающую систему. Некоторые + из этих файлов сначала нужно <quote>установить</quote>. Это нужно + потому, что каталог <filename>/usr/src/etc</filename> + <emphasis>не</emphasis> является копией того, что должен содержать + ваш каталог <filename>/etc</filename>. Кроме того, есть файлы, + которые должны присутствовать в <filename>/etc</filename>, но которых + нет в <filename>/usr/src/etc</filename>.</para> + + <para>Вручную проще всего сделать это, установив файлы в новый каталог, + а затем пройтись по ним, отмечая разницу.</para> + + <warning> + <title>Сделайте резервную копию вашего каталога + <filename>/etc</filename></title> + + <para>Хотя, теоретически, автоматически этот каталог не трогается, + всегда лучше чувствовать себя уверенно. Так что скопируйте + имеющийся каталог <filename>/etc</filename> в какое-нибудь + безопасное место. Нечто вроде:</para> + + <screen> +&prompt.root; <userinput>cp -Rp /etc /etc.old</userinput> + </screen> + + <para><option>-R</option> задает выполнение рекурсивного копирования, + а <option>-p</option> сохраняет даты, владельца файлов и тому + подобное.</para> + </warning> + + <para>Вам нужно создать простенький набор каталогов для установки + нового каталога <filename>/etc</filename> и других файлов. Обычно я + размещаю этот каталог в <filename>/var/tmp/root</filename>, и к тому + же сюда требуется разместить некоторое количество + подкаталогов.</para> + + <screen> +&prompt.root; <userinput>mkdir /var/tmp/root</userinput> +&prompt.root; <userinput>cd /usr/src/etc</userinput> +&prompt.root; <userinput>make DESTDIR=/var/tmp/root distrib-dirs distribution</userinput> + </screen> + + <para>Эти команды приведут к созданию нужной структуры каталогов и + установке файлов. Множество каталогов, созданных в каталоге + <filename>/var/tmp/root</filename>, пусты и должны быть удалены. + Проще всего сделать это так:</para> + + <screen> +&prompt.root; <userinput>cd /var/tmp/root</userinput> +&prompt.root; <userinput>find -d . -type d | xargs rmdir 2>/dev/null</userinput> + </screen> + + <para>Эти команды удалят все пустые каталоги. (Стандартный поток + диагностических сообщений перенаправляется в + <filename>/dev/null</filename> для исключения предупреждений о + непустых каталогах.)</para> + + <para>Теперь <filename>/var/tmp/root</filename> содержит все файлы, + которые должны быть помещены в соответствующие места в + <filename>/</filename>. Теперь пройдитесь по каждому их этих файлов + и определите, чем они отличаются от имеющихся у вас файлов.</para> + + <para>Заметьте, что некоторые из файлов, которые были установлены в + <filename>/var/tmp/root</filename>, имеют первым символом <quote/./. + На момент написания единственными такими файлами являлись файлы + начальных скриптов командных процессоров в + <filename>/var/tmp/root/</filename> и + <filename>/var/tmp/root/root/</filename>, хотя могут быть и другие + (зависи от того, когда вы это читаете. Пользуйтесь командой + <command/ls -a/, чтобы выявить их.</para> + + <para>Проще всего сделать это при помощи команды &man.diff.1; для + сравнения двух файлов.</para> + + <screen> +&prompt.root; <userinput>diff /etc/shells /var/tmp/root/etc/shells</userinput> + </screen> + + <para>По это команде будет показана разница между вашим файлом + <filename>/etc/shells</filename> и новым файлом + <filename>/etc/shells</filename>. Используйте это для определения + того, переносить ли сделанные вами изменения или скопировать поверх + вашего старого файла.</para> + + <tip> + <title>Называйте новый корневой каталог + (<filename>/var/tmp/root</filename>) по дате, чтобы вы смогли легко + выявить разницу между версиями</title> + + <para>Частое перестроение системы означает также и частое обновление + <filename>/etc</filename>, которое может быть несколько + обременительным.</para> + + <para>Вы можете ускорить этот процесс, сохраняя копию последнего + набора измененных файлов, которые вы перенесли в + <filename>/etc</filename>. Следующая процедура подаст вам одну + идею о том, как это сделать.</para> + + <procedure> + <step> + <para>Выполните перестроение системы обычным образом. Когда вы + вам потребуется обновить <filename>/etc</filename> и другие + каталоги, дайте целевому каталогу имя на основе текущей даты. + Если вы делаете это 14 февраля 1998 года, то вы можете сделать + следующее.</para> + + <screen> +&prompt.root; <userinput>mkdir /var/tmp/root-19980214</userinput> +&prompt.root; <userinput>cd /usr/src/etc</userinput> +&prompt.root; <userinput>make DESTDIR=/var/tmp/root-19980214 \ + distrib-dirs distribution</userinput> + </screen> + </step> + + <step> + <para>Перенесите изменение из этого каталога, как это описано + выше.</para> + + <para><emphasis>Не</emphasis> удаляйте каталог + <filename>/var/tmp/root-19980214</filename> после окончания + этого процесса.</para> + </step> + + <step> + <para>Когда вы сгрузите самую последнюю версию исходного кода и + перестроите систему, выполните шаг 1. Это даст вам новый + каталог, который может называться + <filename>/var/tmp/root-19980221</filename> (если вы ждете + неделю между обновлениями).</para> + </step> + + <step> + <para>Теперь вы можете видеть изменения, которые были сделаны + за прошедшую неделю, выполнив при помощи команды &man.diff.1; + рекурсивное сравнение двух каталогов.</para> + + <screen> +&prompt.root; <userinput>cd /var/tmp</userinput> +&prompt.root; <userinput>diff -r root-19980214 root-19980221</userinput> + </screen> + + <para>Как правило, здесь содержится гораздо меньше отличий, чем + между каталогами + <filename>/var/tmp/root-19980221/etc</filename> и + <filename>/etc</filename>. Так как отличий мешьше, то и легче + перенести эти изменения в ваш каталог + <filename>/etc</filename>.</para> + </step> + + <step> + <para>Теперь вы можете удалить более старый из двух каталогов + <filename>/var/tmp/root-*</filename>.</para> + + <screen> +&prompt.root; <userinput>rm -rf /var/tmp/root-19980214</userinput> + </screen> + </step> + + <step> + <para>Повторяйте этот процесс всякий раз, когда вам нужно + перенести изменения в каталог <filename>/etc</filename>.</para> + </step> + </procedure> + + <para>Для автоматической генерации имен каталогов вы можете + использовать команду &man.date.1;.</para> + + <screen> +&prompt.root; <userinput>mkdir /var/tmp/root-`date "+%Y%m%d"`</userinput> + </screen> + </tip> + </sect2> + + <sect2 id="update-dev"> + <title>Обновите <filename>/dev</filename></title> + + <note> + <title>DEVFS</title> + + <para>Если вы используете DEVFS, то вам это, скорее всего, делать не + нужно.</para> + </note> + + <para>Для безопасности этот процесс делается в несколько шагов.</para> + + <procedure> + <step> + <para>Скопируйте <filename>/var/tmp/root/dev/MAKEDEV</filename> в + <filename>/dev</filename>.</para> + + <screen> +&prompt.root; <userinput>cp /var/tmp/root/dev/MAKEDEV /dev</userinput> + </screen> + + <para>Если вы использовали &man.mergemaster.8; для обновления + <filename>/etc</filename>, то ваш скрипт + <filename>MAKEDEV</filename> уже должен быть обновлен, так что + его не нужно проверять (утилитой &man.diff.1;) и копировать + вручную в случае необходимости.</para> + </step> + + <step> + <para>Теперь выведите текущее содержимое вашего каталога + <filename>/dev</filename>. Этот список должен содержать права, + владельцев, старшее и младшее числа каждого файла, но не должен + содержать информацию о времени. Проще всего это сделать, + отрезав при помощи &man.awk.1; часть информации.</para> + + <screen> +&prompt.root; <userinput>cd /dev</userinput> +&prompt.root; <userinput>ls -l | awk '{print $1, $2, $3, $4, $5, $6, $NF}' > /var/tmp/dev.out</userinput> + </screen> + </step> + + <step> + <para>Повторно создайте все устройства.</para> + + <screen>&prompt.root; <userinput/sh MAKEDEV all/</screen> + </step> + + <step> + <para>Создайте еще один список содержимого каталога, на этот раз в + <filename>/var/tmp/dev2.out</filename>. Теперь просмотрите оба + эти файла и поищите устройства, которые вы забыли создать. Таких + быть не должно, но лишний раз удостовериться не помешает.</para> + + <screen> +&prompt.root; <userinput>diff /var/tmp/dev.out /var/tmp/dev2.out</userinput> + </screen> + + <para>Скорее всего, вы заметите разногласия в именовании дисковых + слайсов, что решается такими командами, как + + <screen> +&prompt.root; <userinput>sh MAKEDEV sd0s1</userinput> + </screen> + + для повторного создания устройств слайсов. Точное название + зависит от вашей системы и может отличаться от + приведенного.</para> + </step> + </procedure> + </sect2> + + <sect2> + <title>Обновите <filename>/stand</filename></title> + + <note> + <para>Этот шаг описан только для полноты. Он может быть + безболезненно пропущен.</para> + </note> + + <para>В целях полноты обновления вам может потребоваться обновить также + файлы в каталоге <filename>/stand</filename>. Эти файлы представляют + собой жесткие ссылки на выполнимый файл + <filename>/stand/sysinstall</filename>. Этот файл должен быть + статически скомпонован, чтобы его работа не зависела от других + файловых систем (в частности, от наличия смонтированной файловой + системы <filename>/usr</filename>).</para> + + <screen> +&prompt.root; <userinput>cd /usr/src/release/sysinstall</userinput> +&prompt.root; <userinput>make all install</userinput> + </screen> + + <note> + <title>Исходные тексты, старее, чем 2 апреля 1998</title> + + <para>Если ваш исходный код старше, чем 2 апреля 1998 или версия + файла <filename>Makefile</filename> не равна 1.68 и выше (для + текущих версий FreeBSD и систем 3.X) или 1.48.2.21 и выше (для + систем 2.2.X), вам нужно добавить параметр + <userinput>NOSHARED=yes</userinput>, как здесь;</para> + + <screen> +&prompt.root; <userinput>make NOSHARED=yes all install</userinput> + </screen> + </note> + </sect2> + + <sect2> + <title>Откомпилируйте и установите новое ядро</title> + + <para>Чтобы получить полную отдачу от вашей новой системы, вы должны + перекомпилировать ядро. Это практически необходимость, так как + отдельные структуры в памяти могут меняться, и программы типа + &man.ps.1; и &man.top.1; не будут работать, пока версии ядра и + исходных текстов системы не будут совпадать.</para> + + <para>Для компиляции нового ядра следуйте указаниям в Руководстве. + Если ранее вы строили собственное ядро, то внимательно + проанализируйте конфигурационный файл <filename>LINT</filename> на + предмет наличия новых параметров, которые вы должны + использовать.</para> + + <para>В предыдущем варианте этого документа советуется выполнить + перезагрузку перед тем, как перестраивать ядро. Это неправильно, + потому что:</para> + + <itemizedlist> + <listitem> + <para>Такие команды, как &man.ps.1;, &man.ifconfig.8; и + &man.sysctl.8; могут отказаться работать. Это может привести к + невозможности подключиться к сети.</para> + </listitem> + + <listitem> + <para>Могут не работать основные утилиты, такие, как &man.mount.8;, + приводя к невозможности монтирования <filename>/</filename>, + <filename>/usr</filename> и так далее. Скорее всего, этого не + случится, если вы отслеживате кандидата на -STABLE, но весьма + вероятно при отслеживании -CURRENT во время большого + изменения.</para> + </listitem> + + <listitem> + <para>Загружаемые модули ядра (LKM на системах до 3.X, KLD в + системах 3.X и выше) строящиеся как часть + <quote>окружения</quote>, могут привести к сбою в работе старого + ядра.</para> + </listitem> + </itemizedlist> + + <para>По этим причинам всегда лучше перестроить и установить новое ядро + до перезагрузки.</para> + + <para>Вы должны строить свое новое ядро после того, как завершили + процесс <userinput>make world</userinput> (или <userinput>make + installworld</userinput>). Если вы не хотите этого делать (может + быть, вы хотите убедиться в построении ядра до обновления вашей + системы), то у вас могут возникнуть проблемы. Это может происходить + из-за того, что ваша команда &man.config.8; старее, чем исходные + тексты ядра.</para> + + <para>В этом случае вы можете построить ваше ядро с новой версией + &man.config.8;</para> + + <screen> +&prompt.root; <userinput>/usr/obj/usr/src/usr.sbin/config/config <replaceable>KERNELNAME</replaceable></userinput> + </screen> + + <para>Во всех случаях это может и не работать. Рекомендуется, чтобы + вы закончили выполнение команд <userinput>make world</userinput> (или + <userinput>make installworld</userinput>) до компиляции нового + ядра.</para> + </sect2> + + <sect2> + <title/Перезагрузка/ + + <para>Теперь вы сделали все. После того, как вы проверили, что все + на месте, можете перегрузить систему. Простая команда + &man.fastboot.8; должна это сделать.</para> + + <screen>&prompt.root; <userinput>fastboot</userinput></screen> + </sect2> + + <sect2> + <title>Завершение</title> + + <para>Вы должны иметь успешно обновленную систему FreeBSD. + Поздравляем.</para> + + <para>Вы можете заметить некоторые проблемы из-за того, что вы что-то + забыли. Например, однажды я удалил <filename>/etc/magic</filename> + в процессе обновления, перенес это в <filename>/etc</filename>, и + команда <command>file</command> перестала работать. В результате + недолгих размышлений оказалось, что команды + + <screen> +&prompt.root; <userinput>cd /usr/src/usr.bin/file</userinput> +&prompt.root; <userinput/make all install/ + </screen> + + достаточно для исправления этой ситуации.</para> + </sect2> + + <sect2> + <title/Вопросы?/ + + <qandaset> + <qandaentry> + <question> + <para>Нужно ли полностью перестраивать систему при каждом + изменении?</para> + </question> + + <answer> + <para>Простого ответа на этот вопрос нет, так как это зависит от + характера изменения. Например, я только что запустил CVSup, и + он выдал, что с момента последнего его запуска были изменены + следующие файлы;</para> + + <screen> +<filename>src/games/cribbage/instr.c</filename> +<filename>src/games/sail/pl_main.c</filename> +<filename>src/release/sysinstall/config.c</filename> +<filename>src/release/sysinstall/media.c</filename> +<filename>src/share/mk/bsd.port.mk</filename> + </screen> + + <para>Здесь нет ничего, ради чего нужно перестраивать систему. + Я перейду в соответствующие подкаталоги и выдам команду + <command>make all install</command>, и этого достаточно. + Однако, если меняется что-то важное, например, + <filename>src/lib/libc/stdlib</filename>, то перестрою всю + систему или по крайней мере те ее части, которые скомпонованы + статически (а также все остальное, что добавлял я и что + статически скомпоновано).</para> + + <para>В конце концов, выбор за вами. Вам может быть достаточно + перестраивать систему, скажем, каждый вечер, а изменения + скачивать ночью. Или вы можете захотеть перестраивать только + те вещи, которые менялись, и проверять, что вы отследили все + изменения.</para> + + <para>И, конечно же, это все зависит от того, как часто вы хотите + делать обновление, и отслеживаете ли вы -STABLE или + -CURRENT.</para> + </answer> + </qandaentry> + + <qandaentry> + <question> + <para>Компиляция прерывается с большим количеством ошибок по + сигналу 11 (или с другим номером сигнала). Что + случилось?</para> + </question> + + <answer> + <para>Как правило, это говорит о проблемах с оборудованием. + (Пере)построение системы является эффективным стресс-тестом для + вашего оборудования и частенько выявляет проблемы с памятью. + Обычно это проявляется в виде неожиданных сбоев компилятора + или получения странных программных сигналов.</para> + + <para>Явным указателем на это является то, что при перезапуске + процедуры построения она прекращается в различные моменты + времени.</para> + + <para>В этом случае вы мало что можете сделать, разве что + попробовать заменить комплектующие вашей машины для определения + сбоящей компоненты.</para> + </answer> + </qandaentry> + + <qandaentry> + <question> + <para>Могу ли я удалить каталог <filename>/usr/obj</filename> + после окончания?</para> + </question> + + <answer> + <para>Это зависит от того, как вы хотите выполнять построение + системы в будущем.</para> + + <para>Каталог <filename>/usr/obj</filename> содержит все + объектные файлы, которые создаются во время фазы компиляции. + Обычно одним из первых шагов в процессе <quote/make world/ + является удаление этого каталога и начало с нуля. В этом + случае сохранение <filename>/usr/obj</filename> после окончания + имеет мало смысла, и будет занимать большой объем дискового + пространства (на данный момент около 150МБ).</para> + + <para>Однако если вы знаете, что делаете, то можете заставить + процедуру <quote/make world/ пропустить этот шаг. Это позволит + последующие построения выполняться гораздо быстрее, так как + большинство исходных текстов не нужно будет перекомпилировать. + Оборотной стороной медали этого подхода является вероятность + появления некоторых проблем с зависимостями, что может привести + к прерыванию построения по странным причинам. Это частенько + вызывает шум в списках рассылки FreeBSD, когда кто-либо + жалуется на прерывание процесса построения, не обращая + внимания на то, что он пытается срезать углы на + повороте.</para> + + <para>Если вы хотите так поступать, то выполняйте построение, + задавая переменную <makevar>NOCLEAN</makevar> утилите make, + как это сделано здесь:</para> + + <screen> +&prompt.root; <userinput>make -DNOCLEAN world</userinput> + </screen> + </answer> + </qandaentry> + + <qandaentry> + <question> + <para>Могут ли быть продолжены прерванные процессы + построения?</para> + </question> + + <answer> + <para>Это зависит от того, насколько далеко зашел процесс + построения перед тем, как вы обнаружили проблему.</para> + + <para><emphasis>В общем случае</emphasis> (и это не сложное и + быстрое правило) процесс <quote>make world</quote> строит + новые копии необходимых инструментальных средств (таких, как + &man.gcc.1; и &man.make.1;>) и системные библиотеки. Затем эти + средства и библиотеки устанавливаются. Новые инструментальные + средства и библиотеки затем используются для перестроения + самих себя, и повторно устанавливаются. Система в целом + (теперь включая обычные пользовательские программы, такие, + как &man.ls.1; или &man.grep.1;) теперь перестраивается с + новыми системными файлами.</para> + + <para>Если вы на последнем шаге, и вы знаете это (потому что + просматривали вывод, который сохраняете), то вы можете + (достаточно безболезненно) выполнить команду</para> + + <screen> +<emphasis>… исправление проблемы …</emphasis> +&prompt.root; <userinput>cd /usr/src</userinput> +&prompt.root; <userinput>make -DNOCLEAN all</userinput> + </screen> + + <para>При этом результат предыдущего запуска + <quote>make world</quote> откатываться не будет.</para> + + <para>Если вы видите сообщение + + <screen> +-------------------------------------------------------------- +Building everything.. +-------------------------------------------------------------- + </screen> + + в выводе команды <quote>make world</quote>, то делать так + достаточно безопасно.</para> + + <para>Если этого сообщения не было, или вы в этом не уверены, то + всегда лучше обезопасить себя, и начать построение с самого + начала.</para> + </answer> + </qandaentry> + + <qandaentry> + <question> + <para>Могу ли я использовать одну машину как <emphasis/главную/ + для обновления множества машин (NFS)?</para> + </question> + + <answer> + <para>В списках рассылки FreeBSD часто задается вопрос о том, + можно ли выполнять всю компиляцию на одной машине, а затем + использовать результаты этой компиляции для выполнения команды + <command>make install</command> на других машинах в + сети.</para> + + <para>Я этого не делал, так что рекомендации ниже исходят от + других людей или вытекают из логики работы make-файлов.</para> + + <para>Точные инструкции зависят от вашей версии FreeBSD</para> + + <para>Вы все же должны будете обновить <filename>/etc</filename> + и <filename>/dev</filename> на целевых машинах после выполнения + этих рекомендаций.</para> + + <para>Для 2.1.7 и ниже, Antonio Bemfica рекомендует такую + последовательность действий:</para> + + <screen> +Date: Thu, 20 Feb 1997 14:05:01 -0400 (AST) +From: Antonio Bemfica <bemfica@militzer.me.tuns.ca> +To: freebsd-questions@FreeBSD.org +Message-ID: <Pine.BSI.3.94.970220135725.245C-100000@militzer.me.tuns.ca> + +Josef Karthauser спрашивал: + +> У кого-нибудь есть хороший метод обновления машин в сети + +Во-первых, выполните процедуры make world и так далее на вашей главной машине + +Во-вторых, смонтируйте / и /usr с удаленной машины: + +main_machine% mount remote_machine:/ /mnt +main_machine% mount remote_machine:/usr /mnt/usr + +В-третьих, выполните 'make install' с целевым каталогом /mnt: + +main_machine% make install DESTDIR=/mnt + +Повторите это для каждой удаленной машины в вашей сети. У меня это +работает прекрасно. + +Antonio + </screen> + + <para>Этот механизм будет работать, если только (насколько я + знаю) вы имеете право на запись в каталог + <filename>/usr/src</filename> сервера NFS, так как цель + <maketarget>install</maketarget> в 2.1.7 и ниже этого + требует.</para> + + <para>Между 2.1.7 и 2.2.0 появилась цель + <quote>reinstall</quote>. Вы можете действовать точно также, + как это было описано для 2.1.7, но вместо + <quote>install</quote> использовать + <quote>reinstall</quote>.</para> + + <para>Эта схема <emphasis>не</emphasis> требует доступа с правом + на запись к каталогу <filename>/usr/src</filename> на сервере + NFS.</para> + + <para>Между версиями 1.68 и 1.107 файла Makefile в этой цели + присутствовала ошибка, которая приводила к тому, что доступ с + правом записи к NFS-серверу все же + <emphasis>требовался</emphasis>. Эта ошибка была исправлена + до выхода FreeBSD версии 2.2.0, но может быть причиной ошибок, + если у вас старый сервер, на котором работает -STABLE с тех + времен.</para> + + <para>Для версий 2.2.5 и выше вы можете воспользоваться целями + <quote>buildworld</quote> и <quote>installworld</quote>. + Используйте их для построения дерева исходных текстов на одной + машине, затем смонтируйте по NFS <filename>/usr/src</filename> + и <filename>/usr/obj</filename> на удаленной машине и + устанавливайте все здесь.</para> + </answer> + </qandaentry> + + <qandaentry> + <question> + <para>Как ускорить процесс построения системы?</para> + + <itemizedlist> + <listitem> + <para>Работайте в однопользовательском режиме.</para> + </listitem> + + <listitem> + <para>Разместите каталоги <filename>/usr/src</filename> и + <filename>/usr/obj</filename> в отдельных файловых + системах, располагающихся на разных дисках. Если это + возможно, то разместите эти диски на разных дисковых + контролерах.</para> + </listitem> + + <listitem> + <para>Еще лучше разместить эти файловые системы на нескольких + отдельных дисках при помощи устройства <quote>ccd</quote> + (драйвер объединенных дисков).</para> + </listitem> + + <listitem> + <para>Выключите генерацию профилирующего кода (установив + <quote>NOPROFILE=true</quote> в файле + <filename>/etc/make.conf</filename>). Вам это практически + никогда не нужно.</para> + </listitem> + + <listitem> + <para>Также в <filename>/etc/make.conf</filename> установите + значение <quote>CFLAGS</quote> во что-то типа <quote>-O + -pipe</quote>. Оптимизация <quote>-O2</quote> выполняется + гораздо медленнее, а разница между <quote>-O</quote> и + <quote>-O2</quote> обычно несущественна. + <quote>-pipe</quote> позволяет компилятору использовать для + связи вместо временных файлов программные каналы, что + уменьшает обращение к диску (за счет оперативной + памяти).</para> + </listitem> + + <listitem> + <para>Передайте утилите make параметры + <option>-j<n></option> (если вы работаете с + достаточно свежей версией FreeBSD) для запуска параллельно + нескольких процессов. Это поможет вне зависимости от того, + сколько процессоров установлено в вашей машине.</para> + </listitem> + + <listitem> + <para>Файловая система, на которой располагается каталог + <filename>/usr/src</filename>, может быть смонтирована (или + перемонтирована) с опцией <quote>noatime</quote>. Это + отключит запись на диск информации о времени последнего + доступа к файлам. Скорее всего, вам эта информация и + не нужна. + + <note> + <para><quote>noatime</quote> есть в версии 2.2.0 и + выше.</para> + </note> + + <screen> +&prompt.root; <userinput>mount -u -o noatime /usr/src</userinput> + </screen> + + <warning> + <para>В примере предполагается, что + <filename>/usr/src</filename> располагается на + собственной файловой системе. Если это не так (то + есть он является частью, скажем, + <filename>/usr</filename>), то вам нужно использовать + точку монтирования той файловой системы, а не + <filename>/usr/src</filename>.</para> + </warning> + </para> + </listitem> + + <listitem> + <para>Файловая система, на которой располагается + <filename>/usr/obj</filename>, может быть смонтирована (или + перемонтирована) с опцией <quote>async</quote>. Это + приведет к тому, что операции записи на диск будут + выполняться асинхронно. Другими словами, запись будет + завершаться немедленно, а данные записываться на диск + несколькими секундами позже. Это позволит объединять + операции записи и приведет к значительному приросту + производительности.</para> + + <warning> + <para>Имейте в виду, что эта опция делает вашу файловую + систему менее устойчивой. С этой опцией имеется больше + шансов, что при перезагрузке машины после неожиданного + сбоя при пропадании напряжения файловая система окажется + в невосстановимом состоянии.</para> + + <para>Если каталог <filename>/usr/obj</filename> - это все, + что есть в этой фаловой системе, то это не проблема. + Если на той же самой файловой системе имеются какие-то + еще важные данные, то проверьте давность ваших резервных + копий перед включением этой опции.</para> + </warning> + + <screen> +&prompt.root; <userinput>mount -u -o async /usr/obj</userinput> + </screen> + + <warning> + <para>Как и раньше, если каталог + <filename>/usr/obj</filename> располагается не на + собственной файловой системе, то в примере замените его + на имя соответствующей точки монтирования.</para> + </warning> + </listitem> + </itemizedlist> + </question> + </qandaentry> + </qandaset> + </sect2> + </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: +--> + diff --git a/ru_RU.KOI8-R/books/handbook/disks/chapter.sgml b/ru_RU.KOI8-R/books/handbook/disks/chapter.sgml index 43fea936f0..ed5eed802d 100644 --- a/ru_RU.KOI8-R/books/handbook/disks/chapter.sgml +++ b/ru_RU.KOI8-R/books/handbook/disks/chapter.sgml @@ -2,10 +2,11 @@ The FreeBSD Russian Documentation Project $FreeBSD$ - $FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/disks/chapter.sgml,v 1.4 2000/11/10 12:05:03 phantom Exp $ - Original revision: 1.23 + $FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/disks/chapter.sgml,v 1.5 2001/02/21 08:45:39 andy Exp $ + Original revision: 1.25 --> + <chapter id="disks"> <title>Диски</title> @@ -556,9 +557,29 @@ <title>Использовании утилит командной строки</title> <sect3> - <title>* Использование слайсов</title> + <title>Работа со слайсами</title> + + <para>Следующая настройка позволит вашему диску корректно работать с + другими операционными системами, которые могут быть установлены на + вашем компьютере, и не вызовет конфликта с утилитами fdisk других + операционных систем. Этот способ рекомендуется использовать для + установок новых дисков. Используйте <literal>выделенный</literal> + режим если только у вас есть реальные причины делать это!</para> - <para></para> + <screen> +&prompt.root; <userinput>dd if=/dev/zero of=/dev/rda1 bs=1k count=1</userinput> +&prompt.root; <userinput>fdisk -BI da1</userinput> # Инициализируем новый диск. +&prompt.root; <userinput>disklabel -B -w -r da1s1 auto</userinput> # Размечаем его. +&prompt.root; <userinput>disklabel -e da1s1</userinput> # Теперь редактируем только что созданную метку диска и добавляем разделы. +&prompt.root; <userinput>mkdir -p /1</userinput> +&prompt.root; <userinput>newfs /dev/da1s1e</userinput> # Повторяем этот шаг для всех созданных разделов. +&prompt.root; <userinput>mount -t ufs /dev/da1s1e /1</userinput> # Монтируем раздел(ы) +&prompt.root; <userinput>vi /etc/fstab</userinput> # В конце концов добавляем соответствующую запись/записи в файл <filename>/etc/fstab</filename>. + </screen> + + <para>Если у вас установлен диск IDE, подставьте + <filename>ad</filename> вместо <filename>da</filename>. На системах + версий ранее 4.x используйте <filename>wd</filename>.</para> </sect3> <sect3> diff --git a/ru_RU.KOI8-R/books/handbook/introduction/chapter.sgml b/ru_RU.KOI8-R/books/handbook/introduction/chapter.sgml index 2f596f2a48..9bbac73784 100644 --- a/ru_RU.KOI8-R/books/handbook/introduction/chapter.sgml +++ b/ru_RU.KOI8-R/books/handbook/introduction/chapter.sgml @@ -2,7 +2,7 @@ The FreeBSD Russian Documentation Project $FreeBSD$ - $FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/introduction/chapter.sgml,v 1.5 2000/12/17 10:56:34 danfe Exp $ + $FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/introduction/chapter.sgml,v 1.6 2001/01/10 00:04:09 danfe Exp $ Original revision: 1.32 --> @@ -40,7 +40,7 @@ <sect2> <title>Что такое FreeBSD?</title> - <para>Итак, FreeBSD это великолепная операционная система, + <para>Итак, FreeBSD – это великолепная операционная система, основанная на 4.4BSD-Lite2. Она работает на компьютерах с архитектурой Intel (x86) и DEC Alpha.</para> @@ -89,7 +89,7 @@ </sect2> <sect2> - <title>Что может делать FreeBSD?</title> + <title>Что может FreeBSD?</title> <para>FreeBSD имеет заслуживающие внимания особенности. Некоторые из них:</para> @@ -97,7 +97,7 @@ <itemizedlist> <listitem> <para><emphasis>Приоритетная многозадачность</emphasis> с - динамическим регулированием приоритетов, плавно и правильно + динамическим регулированием приоритетов плавно и правильно приспособится и учтиво распределит ресурсы компьютера между приложениями и пользователями, даже при тяжелейших нагрузках. </para> @@ -116,16 +116,16 @@ <listitem> <para>Мощный <emphasis>TCP/IP стек</emphasis> с поддержкой промышленных стандартов, таких как SLIP, PPP, NFS, DHCP и NIS. - Это говорит о том, что ваша FreeBSD может легко функционировать + Это говорит о том, что Ваша FreeBSD может легко функционировать с другими системами предприятия, предоставляя жизненно важные функции, такие как NFS (удалённый доступ к файлам) и услуги - электронной почты и представить вашу организацию в Internet с услугами + электронной почты и представить Вашу организацию в Internet с услугами WWW, FTP, маршрутизацией и брандмауэром (сетевая безопасность). </para> </listitem> <listitem> - <para><emphasis>Защита памяти</emphasis> гарантирует что + <para><emphasis>Защита памяти</emphasis> гарантирует, что приложения (или пользователи) не смогут чинить препятствия друг другу. Фатальная ошибка в выполнении одного приложения не скажется на работоспособности всей системы.</para> @@ -139,12 +139,12 @@ <listitem> <para>Промышленный стандарт <emphasis>X Window System</emphasis> - (X11R6) предоставит графический интерфейс пользователя (GUI) для + (X11R6) предоставляет графический интерфейс пользователя (GUI) для большинства VGA карт и мониторов и поставляется с полными исходными текстами.</para> </listitem> - - <listitem> + + <listitem> <para><emphasis>Двоичная совместимость</emphasis> с большинством программ, созданных для Linux, SCO, SVR4, BSDI и NetBSD.</para> </listitem> @@ -160,8 +160,8 @@ <listitem> <para>Тысячи других <emphasis>легко-адаптируемых</emphasis> приложений доступны в - Internet. FreeBSD в исходных текстах совместима с большинством - популярных коммерческих Unix систем и таким образом большинство + Internet. FreeBSD в исходных текстах совместима с большинством + популярных коммерческих Unix систем и, таким образом, большинство приложений требуют несколько достаточно мелких, если требуют, изменений для сборки.</para> </listitem> @@ -169,17 +169,17 @@ <listitem> <para><emphasis>Виртуальная память</emphasis> с поддержкой сброса неиспользуемых страниц по требованию и - <quote>обьедененный VM/буферный кэш</quote> спроектированы - так, чтоб максимально эффективно удовлетворить приложения с - огромными аппетитами к памяти, и в то же время сохранить + <quote>обьедененные VM/буферный кэш</quote> спроектированы + так, чтобы максимально эффективно удовлетворить приложения с + огромными аппетитами к памяти и, в то же время, сохранить интерактивность остальных пользователей.</para> </listitem> - + <listitem> - <para>Поддержка <emphasis>SMP</emphasis> для машин с + <para>Поддержка <emphasis>симметричной многопроцессорности</emphasis> (SMP) для машин с несколькими процессорами (только для Intel).</para> </listitem> - + <listitem> <para>Полный комплект инструментов для разработчика: <emphasis>C</emphasis>, <emphasis>C++</emphasis>, @@ -206,23 +206,23 @@ </listitem> </itemizedlist> - <para>FreeBSD основана на 4.4BSD-Lite от Computer + <para>FreeBSD основана на 4.4BSD-Lite2 от Computer Systems Research Group (CSRG) Калифорнийского Университета, Беркли, и имеет в себе характерные черты модели развития BSD-систем. В дополнении к прекрасной работе предоставленной CSRG, Проект FreeBSD тратит многие тысячи часов для тонкой настройки системы для максимальной производительности и надёжности - в условиях максимально приближенным к боевым. Когда большинство + в условиях максимально приближенным к боевым. Когда большинство коммерческих гигантов только борятся за рынок операционных систем для PC, FreeBSD может предложить такие особенности, производительность и надёжность прямо <emphasis>сейчас</emphasis>!</para> <para>Применение FreeBSD в действительности ограничено только Вашими - фантазиями. От разработки программного обеспечения до автоматизации + фантазиями. От разработки программного обеспечения до автоматизации производства, от контроля за качеством товара до коррекции азимутов удалённых спутниковых антен; эти задачи можно решить и с помощью коммерческих UNIX-систем, но более правильно - решить эти задачи с помощью FreeBSD! FreeBSD столь же многогранно + решить эти задачи с помощью FreeBSD! FreeBSD столь же многогранно полезна, как и буквально тысячи высококачественных приложений разработанных исследовательскими центрами и университетами во всём мире, доступные за минимальную цену или даже бесплатно. Коммерческие приложения также доступны @@ -306,7 +306,7 @@ <listitem> <para><emphasis>Рабочая станция X Window:</emphasis> FreeBSD прекрасный - выбор если вам нужен недорогой X-терминал. Можно использовать + выбор, если вам нужен недорогой X-терминал. Можно использовать свободно распространяемый XFree86 сервер или один из коммерческих серверов, поставляемых X Inside. В отличии от X терминала, на FreeBSD можно запускать множество приложений @@ -365,7 +365,7 @@ сделано вместо этого.</para> <para>Нам потребовалось немного времени, чтоб прийти к решению - продолжать следовать той цели, даже без поддержки Била, + продолжать следовать той цели, даже без поддержки Билла, и мы приняли имя <quote>FreeBSD</quote> приобретенное Дэвидом Гринмэном. Наши начальные цели были установлены после консультаций с пользователями существовавшей системы, и как только стало @@ -445,12 +445,12 @@ <para>Последнее на данный момент ветвление было произведено 13 Марта, 2000 в результате которого появились ветки 4.X-STABLE и 5.0-CURRENT. - Единственный релиз из этой ветки на данный момент это + Последний релиз из этой ветки на данный момент – это &rel.current;-RELEASE.</para> <para>Долговременные разработки и проекты продолжаются в ветке 5.0-CURRENT, и по ходу разработки будут доступны снэпшот-релизы - 5.0 на CDROM (и, конечно, в сети).</para> + 5.0 на CDROM (и, конечно же, в сети).</para> </sect2> <sect2 id="goals"> diff --git a/ru_RU.KOI8-R/books/handbook/ports/chapter.sgml b/ru_RU.KOI8-R/books/handbook/ports/chapter.sgml index 929d2d9ea9..c121416bf7 100644 --- a/ru_RU.KOI8-R/books/handbook/ports/chapter.sgml +++ b/ru_RU.KOI8-R/books/handbook/ports/chapter.sgml @@ -2,7 +2,7 @@ The FreeBSD Russian Documentation Project $FreeBSD$ - $FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/ports/chapter.sgml,v 1.21 2000/10/06 16:00:42 phantom Exp $ + $FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/ports/chapter.sgml,v 1.22 2001/02/09 14:29:17 andy Exp $ Original revision: 1.111 --> @@ -631,6 +631,14 @@ Receiving xchat-1.3.8.tar.bz2 (305543 bytes): 100% помещения на страницу полностью, но вы должны уловить общую идею).</para> + <para>Некоторые порты, использующие &man.imake.1; (часть X Windows + System), не очень хорошо работают с <makevar>PREFIX</makevar>, и + всё равно будут пытыться устанавливаться в каталог + <filename>/usr/X11R6</filename>. Подобным же образом некоторые + порты на языке Perl игнорируют значение <makevar>PREFIX</makevar> и + устанавливаются в дерево Perl. Заставить такие порты работать с + <makevar>PREFIX</makevar> трудно или невозможно.</para> + <para>Если вам не нравится набирать все это каждый раз при установке портов, можно поместить эти переменные в ваше окружение. Прочтите страницы Справочника по вашему командному diff --git a/ru_RU.KOI8-R/books/handbook/x11/chapter.sgml b/ru_RU.KOI8-R/books/handbook/x11/chapter.sgml index 2e1cc8082c..00914577db 100644 --- a/ru_RU.KOI8-R/books/handbook/x11/chapter.sgml +++ b/ru_RU.KOI8-R/books/handbook/x11/chapter.sgml @@ -2,20 +2,20 @@ The FreeBSD Russian Documentation Project $FreeBSD$ - $FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/x11/chapter.sgml,v 1.3 2000/10/06 16:00:45 phantom Exp $ - Original revision: 1.12 + $FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/x11/chapter.sgml,v 1.4 2001/01/08 12:40:45 andy Exp $ + + Original revision: 1.13 --> <chapter id="x11"> -<title>X Window System</title> + <title>X Window System</title> -<para> - <emphasis>Этот раздел нам любезно предоставил &a.grog;, и он взят из - его книги, <ulink - url="http://www.cdrom.com/titles/freebsd/bsdcomp_bkx.phtml">The - Complete FreeBSD</ulink>, соответственно, все права остаются за ним. - Изменения, требуемые для помещения в Руководство, выполнил - &a.jim;.</emphasis></para> + <para><emphasis>Этот раздел нам любезно предоставил &a.grog;, и он взят из + его книги <ulink + url="http://www.cdrom.com/titles/freebsd/bsdcomp_bkx.phtml">The Complete + FreeBSD</ulink>, соответственно, все права остаются за ним. Изменения, + требуемые для помещения в Руководство, выполнил &a.jim;. Раздел о шрифтах + в XFree86 предоставил &a.murray;.</emphasis></para> <sect1> <title>Предназначение</title> @@ -1387,8 +1387,82 @@ For further configuration, refer to /usr/X11R6/lib/X11/doc/README.Config. <para>После того, как Вы закончите эту настройку, можно начать работу с X.</para> </sect3> - </sect2> -</sect1> + </sect2> + </sect1> + + <sect1 id="x-fonts"> + <title>Использование шрифтов в XFree86</title> + + <sect2 id="truetype"> + <title>Шрифты TrueType</title> + + <para>Шрифты, используемые по умолчанию и распространяемые вместе с + <application>XFree86</application>, вряд ли можно назвать идеально + подходящими для применения в обычных издательских приложениях. Большие + презентационные шрифты выглядят рвано и непрофессионально, а мелкие + шрифты в Netscape вообще нефозможно разобрать. К счастью, + <application>XFree86</application> с минимальными усилияи может быть + настроена на использование шрифтов TrueType.</para> + + <para>В <application>XFree86</application> 4.0 имеется встроенная + поддержка шрифтов TrueType. Имеются два модуля, которые могут + обеспечить эту функциональность. В нашем примере используется модуль + "freetype", потому что он в большей степени похож на другие механизмы + для работы с шрифтами. Для включения модуля freetype достаточно + в раздел модулей вашего файла + <filename>/etc/X11/XF86Config</filename> добавить следующую строчку. + + <screen> +Load "freetype" + </screen> + </para> + + <para>В случае <application>XFree86</application> 3.3.X вам потребуется + запустить отдельный сервер шрифтов TrueType. Для этого обычно + используется <application>Xfstt</application>. Для установки + <application>Xfstt</application> на вашей системе FreeBSD просто + установите соответствующий порт из + <filename>/usr/ports/x11-servers/Xfstt</filename></para> + + <para>Теперь вам нужно создать каталог для ваших шрифтов TrueType + (скажем, <filename>/usr/X11R6/lib/X11/fonts/TrueType</filename>) и + скопировать все ваши шрифты TrueType в этот каталог. Имейте в виду, + что вы не сможете напрямую использовать шрифты TrueType с Macintosh; + для использования с <application>XFree86</application> они должны + быть в формате Unix/DOS/Windows. После того, как вы скопируете файлы + в этот каталог, вам нужно будет воспользоваться утилитой + <application>ttmkfdir</application> для создания файла + <filename>fonts.dir</filename>, который указывает механизму вывода + шрифтов X на местоположение этих новых файлов. Порт + <application>ttmkfdir</application> для FreeBSD находится в каталоге + <filename>/usr/ports/x11-fonts/ttmkfdir</filename>.</para> + + <screen> +&prompt.root; <userinput>cd /usr/X11R6/lib/X11/fonts/TrueType</userinput> +&prompt.root; <userinput>ttmkfdir > fonts.dir</userinput> + </screen> + + <para>После этого вам нужно добавить ваш каталог со шрифтами TrueType + к маршруту поиска шрифтов. Проще всего это сделать, добавив такие + строчки в ваш файл <filename>~/.xinitrc</filename>.</para> + + <screen> +&prompt.user; <userinput>xset fp+ /usr/X11R6/lib/X11/fonts/TrueType</userinput> +&prompt.user; <userinput>xset fp rehash</userinput> + </screen> + + <para>Это все. Теперь Netscape, Gimp, StarOffice и все остальные ваши + X-приложения должны увидеть установленные вами шрифты TrueType. + Очень маленькие (как текст веб-страницы на дисплее с высоким + разрешением) и очень большие (в StarOffice) шрифты будут теперь + выглядеть гораздо лучше.</para> + + <para>Одна неприятность: На данный момент XFree86 не поддерживает + вывод шрифтов с антиалиасингом. Эта не проблема при большом + резрешении, однако вывод все же менее оптимален по сравнению с MacOS + или Microsoft Windows.</para> + </sect2> + </sect1> </chapter> <!-- @@ -1401,4 +1475,3 @@ For further configuration, refer to /usr/X11R6/lib/X11/doc/README.Config. sgml-parent-document: ("../book.sgml" "part" "chapter") End: --> - |