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
@@ -1,65 +1,65 @@
#
# Build the FreeBSD Handbook.
#
# 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
#
MAINTAINER=phantom@FreeBSD.org
DOC?= book
FORMATS?= html-split
INSTALL_COMPRESSED?= gz
INSTALL_ONLY_COMPRESSED?=
#
# SRCS lists the individual SGML files that make up the document. Changes
# to any of these files will force a rebuild
#
# SGML content
SRCS= book.sgml
SRCS+= advanced-networking/chapter.sgml
SRCS+= backups/chapter.sgml
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
SRCS+= install/chapter.sgml
#SRCS+= internals/chapter.sgml
SRCS+= introduction/chapter.sgml
#SRCS+= kernelconfig/chapter.sgml
SRCS+= kerneldebug/chapter.sgml
SRCS+= kernelopts/chapter.sgml
#SRCS+= l10n/chapter.sgml
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
#SRCS+= serialcomms/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
SRCS+= chapters.ent
SRCS+= mailing-lists.ent
SRCS+= newsgroups.ent
SRCS+= ruauthors.ent
DOC_PREFIX?= ${.CURDIR}/../../..
.include "${DOC_PREFIX}/share/mk/doc.project.mk"
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
@@ -1,161 +1,163 @@
%man;
%bookinfo;
%chapters;
%authors;
%ruauthors;
%mailing-lists;
%newsgroups;
-
+
]>
Руководство FreeBSDПроект Русской Документации FreeBSDru-freebsd-doc@FreeBSD.org.uaФевраль 1999199519961997199819992000
+ 2001The FreeBSD Documentation Project2000
+ 2001Проект Русской Документации FreeBSD
&bookinfo.legalnotice;
Добро пожаловать в FreeBSD! Это руководство охватывает процесс
инсталляции и ежедневного использования FreeBSD Release
- &rel.current;. Это руководство в процессе
+ &rel.current;. Это руководство находится в процессе
разработки и являет собой результат работы множества
людей. Многие из разделов до сих пор не существуют, а некоторые из
существующих требуют обновления. Если Вы заинтересованы в помощи
этому проекту, пошлите письмо в &a.ru.doc;. Обновленная версия этого
документа постоянно доступна с
Основного Web сервера FreeBSD. Он также может быть загружен из
Internet в одном из наиболее распространенных форматов с FTP сервера Проекта
FreeBSD или с одного из многочисленных зеркал. Вы также можете захотеть
воспользоваться возможностью Поиска в Руководстве
FreeBSD.В Начале
&chap.introduction;
&chap.install;
&chap.basics;
&chap.ports;
Системное Администрирование
&chap.boot;
&chap.security;
&chap.disks;
&chap.backups;
&chap.x11;
Сетевые Коммуникации
&chap.advanced-networking;
&chap.mail;
Углубленные темы
-
+ &chap.policies;
&chap.kernelopts;
&chap.kerneldebug;
&chap.linuxemu;
Приложения
&chap.mirrors;
&chap.bibliography;
&chap.staff;
&chap.pgpkeys;
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
@@ -1,563 +1,564 @@
Процесс загрузки FreeBSDОписаниеВо FreeBSD по умолчанию используется трехэтапный процесс загрузки,
в котором задействованы три программы, последовательно вызывающие друг
друга (два загрузочных блока и загрузчик). Каждая их этих трех программ
строится на функциях предыдущей программы и становится все более
сложной.Затем стартует ядро, которое детектирует устройства и выполняет
их инициализацию. После завершения процесса своей загрузки, ядро
передает управление пользовательскому процессу с именем &man.init.8;,
который выполняет проверку дисков на возможность использования. Затем
&man.init.8; запускает пользовательский процесс настройки ресурсов,
выполняющий монтирование файловых систем, настройку сетевых адаптеров
для работы в сети и вообще запуск всех процессов, обычно выполняемых
в системе FreeBSD при загрузке.Загрузочные блоки: первый и второй этапы начальной загрузкиНачальная загрузка представляет собой
процесс, в течение которого компьютер распознает и инициализирует свои
устройства и определяет, какие программы должны быть запущены.В этом процессе задействованы специальные микросхемы Постоянных
Запоминающих Устройств (ПЗУ), которые определяют, что делать и в свою
очередь, передают управление другим микросхемам, которые выполняют
проверку памяти и целостности системы, конфигурируют устройства и
предоставляют другим программам способ выяснить подробную информацию о
настройках.В случае обычных персональных компьютеров в этом процессе участвует
BIOS (который ответственен на начальную загрузку) и CMOS (которая
хранит конфигурацию). BIOS и CMOS умеют работать с дисками и также
знают, где на диске находится программа, которая знает, как загрузить
операционную систему.Эта глава не описывает первую часть процесса начальной загрузки.
Вместо этого она посвящена тому, что происходит после передачи
управления программе, находящейся на диске.Загрузочные блоки (как правило) отвечают за поиск загрузчика, его
запуск и поэтому должны уметь находить программу в файловой системе,
уметь ее запустить, а также должны иметь возможность выполнять
некоторую настройку своей работы.boot0На самом деле это предшествующий всему загрузочный блок по имени
boot0, который находится в Главной Загрузочной
Записи (Master Boot Record), особой части диска, которая
используется при начальной загрузке системы для определения порядка
загрузки, и содержит список возможных слайсов для загрузки.boot0 очень прост, так как программа в MBR может
иметь размер, не превышающий 512 байт.Эта программа выводит нечто вроде следующего:Образец экрана boot0
F1 DOS
F2 FreeBSD
F3 Linux
F4 ??
F5 Drive 1
Default: F2
boot1boot1 находится в загрузочном секторе загрузочного слайса,
то есть там, где boot0 или
любая другая программа из MBR ожидает найти
программу, которую следует запустить для продолжения процесса
загрузки.boot1 очень прост, так как он тоже может иметь размер, не
превышающий 512 байт, и знает достаточно о метке
диска FreeBSD, хранящей информацию о слайсе, для того,
чтобы найти и запустить boot2.boot2boot2 устроен несколько более сложно, и умеет работать с файловой
системой FreeBSD в объеме, достаточном для нахождения в ней файлов и
может предоставлять простой интерфейс для выбора и передачи
управления ядру или загрузчику.Так как загрузчик устроен
гораздо более сложно, и дает удобный и простой способ настройки
процесса загрузки, boot2 обычно запускает его, однако раньше его
задачей был запуск непосредственно самого ядра.Образец экрана boot2
>> FreeBSD/i386 BOOT
Default: 0:wd(0,a)/kernel
boot:
Загрузчик: третий этап процесса начальной загрузкиПередача управления загрузчику является последним, третьим этапом в
процессе начальной загрузки, а сам загрузчик находится в файловой
системе, обычно как /boot/loader.Когда как файлы /boot/boot0,
/boot/boot1 и
/boot/boot2 здесь присутствуют, они не являются
реальными копиями MBR, загрузочного сектора или
метки диска соответственно.Загрузчик являет собой удобный в использовании инструмент для
настройки при помощи простого набора команд, управляемого более мощным
интерпретатором с более сложным набором команд.Процесс работы загрузчикаВо время инициализации загрузчик пытается произвести поиск
консоли, дисков и определить, с какого диска он был запущен.
Соответствующим образом он задает значения переменных и после этого
запускает интерпретатор, а простые команды передаются уже ему.Затем загрузчик читает файл
/boot/loader.rc, который по умолчанию использует
файл /boot/defaults/loader.conf, устанавливающий
подходящие значения по умолчанию для переменных и читает файл
/boot/loader.conf для изменения в этих
переменных. Затем с этими переменными работает
loader.rc, загружающий выбранные модули и
ядро.
- И наконец, по умолчанию загрузчик выдерживает 10-секундную паузу
- в ожидании нажатия клавиши, и загружает ядро, если оно не было
- сделано. Если ожидание было прервано, пользователю выдается
+ И наконец, по умолчанию загрузчик выдерживает 10-секундную паузу,
+ ожидая нажатия клавиши, и загружает ядро, если этого не произошло.
+ Если ожидание было прервано, пользователю выдается
приглашение, которое воспринимает простой набор команд, в помощью
которых пользователь может изменить значения переменных, выгрузить
все модули, загрузить модули и окончательно продолжить процесс
загрузки или перезагрузить машину.Более подробное техническое описание этого процесса дается на
странице Справочника &man.loader.8;Встроенные команды загрузчикаПростой набор команд состоит из:autoboot секундыПродолжает загрузку ядра, если не будет прерван в течение
указанного в секундах промежутка времени. Он выводит счетчик,
и по умолчанию выдерживается интервал в 10 секунд.boot
-параметрыимя ядраПродолжить процесс загрузки указанного ядра, если оно было
указано, и с указанными параметрами, если они были
указаны.boot-confПовторно провести тот же самый процесс автоматической
настройки модулей на основе переменных, что был произведен при
загрузке. Это имеет смысл, если до этого вы выполнили команду
unload, изменили некоторые переменные,
например, наиболее часто меняемую kernel.help
темаВывод сообщений подсказки из файла
/boot/loader.help. Если в качестве темы
указано слово index, то выводится список
имеющихся тем.include имя файла
…Выполнить файл с указанным именем. Файл считывается и
его содержимое интерпретируется строчка за строчкой. Ошибка
приводит к немедленному прекращению выполнения команды
include.load типимя файлаЗагружает ядро, модуль ядра или файл указанного типа с
указанным именем. Все аргументы после имени файла передаются в
файл.ls маршрутВыводит список файлов по указанному маршруту или в корневом
каталоге, если маршрут не был указан. Если указан параметр
, будут выводиться и размеры файлов.lsdev Выводится список всех устройств, с которых могут быть
загружены модули. Если указан параметр ,
выводится дополнительная информация.lsmod Выводит список загруженных модулей. Если указан параметр
, то выводится дополнительная
информация.more имя файлаВывод указанного файла с паузой при выводе каждой строки
LINES.rebootВыполнить немедленную перезагрузку машины.set переменнаяset
переменная=значениеЗадает значения переменных окружения загрузчика.unloadУдаление из памяти всех загруженных модулей.Примеры использования загрузчикаВот несколько практического использования загрузчика.Чтобы просто загрузить ваше ядро обычным образом, но в
однопользовательском режиме:boot -sДля выгрузки обычных ядра и модулей, а потом просто загрузить
ваше старое (или другое) ядро:unloadload kernel.oldВы можете использовать kernel.GENERIC
для обозначения стандартного ядра, поставляемого на установочном
диске, или kernel.old для обращения к ранее
установленному ядру (после того, как, например, вы обновили или
отконфигурировали новое ядро).Для загрузки ваших обычных модулей с другим ядром
используйте такие команды:unloadset kernel="kernel.old"boot-confДля загрузки скрипта конфигурации ядра (автоматизированный
скрипт, который выполняет то, что вы обычно делаете в
конфигураторе ядра во время загрузки):load -t userconfig_script
/boot/kernel.confВзаимодействие с ядром во время загрузкиКак только ядро окажется загруженным при помощи загрузчика (обычный способ) или boot2 (минуя загрузчик), оно проверяет
флаги загрузки, если они есть, и действует соответствующим
образом.Флаги загрузки ядраВот наиболее часто используемые флаги загрузки:во время инициализации ядра запрашивать устройство для
его монтирования в качестве корневой файловой системы.загрузка с компакт-диска.запустить UserConfig для конфигурации ядра во время
загрузкипосле загрузки перейти в однопользовательский режимво время запуска ядра выводить более подробную
информациюЕсть и другие флаги загрузки, обратитесь к странице
справочника по &man.boot.8; для выяснения подробной информации по
ним.Init: инициализация управления процессамиПосле того, как ядро завершит загрузку, оно передает управление
пользовательскому процессу init, который расположен
в файле /sbin/init или в файле, маршрут к которому
указан в переменной init_pathзагрузчика.Процесс автоматической перезагрузкиПроцесс автоматической перезагрузки проверяет целостность
имеющихся файловых систем. Если это не так, и утилита
fsck не может исправить положение, то
init переводит систему в однопользовательский режим для того,
чтобы системный администратор сам разобрался с возникающими
проблемами.Однопользовательский режимВ этот режим можно перейти во время процесса автоматической
перезагрузки, при ручной загрузке с флагом
или заданием переменной boot_single в
загрузчике.Этот режим может быть также вызван запуском программы
shutdown без параметров перезагрузки
() или останова () из
многопользовательского
режима.Если режим доступа к системной консоли console
установлен в файле /etc/ttys в
insecure, то система выведет запрос на ввод пароля
пользователя root перед входом в однопользовательский режим.Незащищенная консоль в /etc/ttys
# name getty type status comments
#
# This entry needed for asking password when init goes to single-user mode
# If you want to be asked for password, change "secure" to "insecure" here
console none unknown off insecure
Обозначение консоли как insecure означает,
что вы считаете физический доступ к консоли незащищенным, и хотите,
чтобы только тот, кто знает пароль пользователя root, мог
воспользоваться однопользовательским режимом, но это не значит, что
вы хотите работать с консолью небезопасным способом. Таким
образом, если вы хотите добиться защищенности, указывайте
insecure, а не secure.Многопользовательский режимЕсли init определит, что ваши файловые системы
находятся в полном порядке, или после того, как пользователь выйдет
из однопользовательского
режима, система перейдет в многопользовательский режим, работа
в котором начинается с настройки ресурсов системы.Настройка ресурсов (rc)Система настройки ресурсов считывает настройки, применяемые по
умолчанию, из файла /etc/defaults/rc.conf, а
настройки, специфичные для конкретной системы, из
/etc/rc.conf, после чего осуществляется
монтирование файловых систем, перечисленных в файле
/etc/fstab, запуск сетевых служб, различных
системных даемонов и, наконец, выполнение скриптов запуска
дополнительно установленных пакаджей.Страница справочника по &man.rc.8; является хорошим источником
информации о системе настройки ресурсов. так же, как и
самостоятельное изучение скриптов.Процесс остановки системыВо время контролируемого процесса остановки системы через утилиту
shutdown, программа init будет
пытаться запустить скрипт /etc/rc.shutdown, после
чего будет посылать всем процессам сигнал прекращения работы, и затем
сигнал принудительного прекращения работы тем процессам, которые не
завершили работу вовремя.
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 @@
+
+
+
+ На переднем крае разработок
+
+ Реструктуризацию, реорганизацию и добавление частей
+ выполнил &a.jim; в марте 2000. Оригинальный текст написали &a.jkh;,
+ &a.phk;, &a.jdp; и &a.nik; при помощи многих других.
+
+
+ Краткий обзор
+
+ Между релизами над FreeBSD ведется постоянная работа. Для тех,
+ кто хочет быть не переднем крае, есть несколько простых методов для
+ поддержания своей системы в соответствии с последними разработками.
+ Будьте осторожны—передний край не для всех! Эта глава поможет
+ вам решить, хотите ли вы отслеживать систему в процессе работы над ней
+ или останетесь верным одному из выпущенных релизов.
+
+
+
+ -CURRENT против -STABLE
+
+ Во FreeBSD имеется две ветки разработки; -CURRENT и -STABLE. Этот
+ раздел описывает каждую из них и объясняет, как синхронизировать вашу
+ систему с каждой соответствующей веткой. Сначала будет обсуждена ветка
+ -CURRENT, затем -STABLE.
+
+
+ Как оставаться с текущими разработками во FreeBSD
+
+ Пока вы читаете этот текст, помните, что -CURRENT является
+ передовым краем работ над FreeBSD, и если вы являетесь
+ во FreeBSD новичком, вам лучше сначала дважды подумать, прежде чем
+ работать с этой веткой.
+
+
+ Что такое FreeBSD-CURRENT?
+
+ FreeBSD-CURRENT это, если точно, не более чем ежедневный слепок
+ исходных текстов FreeBSD, над которыми ведется работа. Сюда
+ включаются неоконченные работы, экспериментальные изменения и
+ промежуточные механизмы, которые могут присутствовать, а могут и
+ отсутствовать в следующем официальном релизе программного
+ обеспечения. Хотя многие из нас выполняют компиляцию из исходных
+ текстов FreeBSD-CURRENT практически ежедневно, случаются периоды
+ времени, когда исходные тексты заведомо не могут быть
+ откомпилированы. Такие проблемы обычно решаются быстро, насколько
+ это возможно, но содержат или нет исходные тексты FreeBSD-CURRENT
+ мину замедленного действия или очень нужную функциональность,
+ может оказаться зависящим от того, в какой момент из 24-часового
+ периода времени вы их сгрузили!
+
+
+
+ Кому нужна FreeBSD-CURRENT?
+
+ FreeBSD-CURRENT в основном предназначается трем основным
+ заинтересованным группам:
+
+
+
+ Члены команды разработчиков FreeBSD, активно работающие над
+ некоторой частью дерева исходных текстов и для кого работа в
+ current является абсолютной
+ необходимостью.
+
+
+
+ Члены команды разработчиков FreeBSD, которые являются
+ активными тестерами, тратящие время на работу с проблемами для
+ того, чтобы определить, что FreeBSD-CURRENT остается, насколько
+ это возможно, нормально работающей системой. Есть также люди,
+ которые вносят важные предложения по изменениям и общему
+ направлению развития FreeBSD.
+
+
+
+ Остальные члены групп разработчиков FreeBSD (или других
+ групп), которые просто хотят быть в курсе всех изменений и
+ используют текущие исходные тексты для ознакомительных целей (к
+ примеру, для чтения, но не для
+ использования). Такие люди также иногда высказывают замечания
+ или предоставляют код.
+
+
+
+
+
+ Чем FreeBSD-CURRENT не является?
+
+
+
+ Быстрым способом получить предварительную версию, потому
+ что вы слышали, что здесь появилась некая крутая возможность
+ и вы хотите быть первым в вашем микрорайоне, у кого она
+ есть.
+
+
+
+ Быстрым способом получения исправлений.
+
+
+
+ Официально поддерживаемой нами каким бы то
+ ни было способом. Мы прилагаем все усилия, чтобы помочь тем,
+ кто изначально принадлежит одной из трех
+ признанных категорий FreeBSD-CURRENT, но у нас
+ просто нет времени на техническую
+ поддержку этой ветки. Это не потому, что мы гадкие и злые
+ люди, которые не хотят помочь другим (если бы это было так, мы
+ не создали бы FreeBSD), это исключительно потому, что мы не
+ можем отвечать на 400 сообщений в день и
+ что-то еще делать по FreeBSD! Я уверен, что если бы стоял
+ выбор между тем, отвечать ли нам на вопросы или продолжать
+ усовершенствовать FreeBSD, большинство из вас проголосовали бы
+ за нашу работу над усовершенствованием.
+
+
+
+
+
+ Использование FreeBSD-CURRENT
+
+
+
+ Присоединитесь к спискам рассылки &a.current; и &a.cvsall;.
+ Это не просто хорошая мысль, это
+ необходимо. Если вы не являетесь
+ участником списка рассылки
+ FreeBSD-CURRENT, вы не увидите замечания,
+ высказываемые о текущем состоянии системы и в итоге можете
+ столкнуться со множеством проблем, которые уже были найдены и
+ решены другими. Еще хуже, если вы пропустите важные сообщения,
+ касающиеся жизнеспособности вашей системы.
+
+ Список рассылки &a.cvsall; позволит вам для каждого
+ изменения увидеть соответствующую запись в журнале коммитов,
+ так как они делаются вместе со всей относящейся к делу
+ информацией о возможных посторонних эффектах.
+
+ Чтобы подключиться к этим спискам, пошлите письмо на адрес
+ &a.majordomo; указав в теле письма следующее:
+
+
+subscribe freebsd-current
+subscribe cvs-all
+
+
+ Дополнительно вы можете также указать
+ help, а Majordomo вышлет вам подробную
+ справку о том, как подписаться и отказаться от подписки на
+ различные другие списки рассылки, которые мы ведем.
+
+
+
+ Сгрузите исходные тексты с ftp.FreeBSD.org. Вы можете сделать это
+ одним из трех способов:
+
+
+
+ При помощи CTM. Если у вас нет
+ хорошего подключения по TCP/IP с фиксированной абонентской
+ платой, то это то, что нужно.
+
+
+
+ При помощи программы cvsup
+ с
+ таким sup-файлом. Это второй самый рекомендуемый
+ метод, так как он позволяет вам сгрузить набор исходных
+ текстов один раз полностью, а затем сгружать только
+ произошедшие изменения. Многие запускают cvsup при помощи
+ прграммы cron и получают самые свежие исходные тексты
+ автоматически. Для облегчения его получения просто
+ наберите:
+
+
+
+
+
+ При помощи ftp. Дерево исходных
+ текстов для FreeBSD-CURRENT всегда
+ экспортируется на:
+ ftp://ftp.FreeBSD.org/pub/FreeBSD/FreeBSD-current/.
+ К тому же мы используем wu-ftpd,
+ позволяющий выполнять сгрузку полных деревьев каталогов
+ сжатых/упакованных при помощи tar, к примеру,
+ возьмем:
+
+ usr.bin/lex
+
+ Чтобы получить весь каталог в виде tar-файла, вы можете
+ сделать следующее:
+
+
+ftp>cd usr.bin
+ftp>get lex.tar
+
+
+
+
+
+
+ Итак, если вам нужен быстрый доступ по требованию к
+ исходным текстам и нагрузка на каналы связи для вас не
+ представляет проблемы, то используйте cvsup
+ или ftp. В противном случае воспользуйтесь
+ CTM.
+
+ Если вам нужны исходные тексты для компиляции и запуска, а
+ не просто для ознакомления, то сгружайте исходные тексты
+ ветки current полностью, а не отдельные
+ ее части. Причиной является то, что многие части исходных
+ текстов зависят от других обновлений где-то еще, и попытка
+ компиляции лишь некоторой части программ гарантированно
+ приведет к возникновению проблем.
+
+ Перед тем, как компилировать current, внимательно прочтите
+ файл Makefile в каталоге
+ /usr/src. В процессе обновления вы
+ по крайней мере раз должны пройти через make world. Чтение &a.current;
+ позволит вам быть в курсе всех процедур начальной загрузки,
+ которые иногда бывают необходимы при переходе к следующему
+ релизу.
+
+
+
+ Будьте активными подписчиками! Если вы работаете с
+ FreeBSD-CURRENT, мы хотим знать, что вы думаете о ней, особенно
+ если у вас есть соображения по ее улучшению или исправлению
+ ошибок. Пожелания, к которым прилагается код, всегда
+ принимаются с большим энтузиазмом!!
+
+
+
+
+
+
+ Работа с веткой stable во FreeBSD
+
+ Если вы используете FreeBSD в производстве и хотите быть
+ уверенными, что у вас есть все последние исправления из ветки
+ -CURRENT, то вам нужно работать со -STABLE. Это та ветка, из которой
+ делаются -RELEASE при их выпуске. Например, если у вас есть копия
+ 3.4-RELEASE, то это всего лишь снэпшот ветки -STABLE,
+ который мы поместили на компакт-диск. Для того, чтобы получить все
+ изменения, вошедшие в -STABLE после выхода -RELEASE, вам нужно
+ отслеживать ветку -STABLE.
+
+
+ Что такое FreeBSD-STABLE?
+
+ FreeBSD-STABLE является нашей веткой разработки для менее
+ важных и более консервативных изменений, предназнанных для
+ следующего основного релиза. Экспериментальные или
+ непротестированные изменения в эту ветку не преднаханчены для этой
+ ветки (смотрите материал о
+ FreeBSD-CURRENT).
+
+
+
+ Кому нужна FreeBSD-STABLE?
+
+ Если вы корпоративный пользователь или тот, кто вопрос
+ надежность работы своей системы FreeBSD ставит прежде всех других
+ аспектов, то вам необходимо отслеживать ветку
+ stable. Это особенно важно, если вы
+ установили самый последний релиз (
+ &rel.current;-RELEASE на момент написания этого текста),
+ так как ветка stable на самом деле является
+ разработкой свободной от ошибок предыдущего релиза.
+
+
+ Кроме всего прочего. дерево stable
+ пытается быть всегда надежным и пригодным к компиляции, однако
+ иногда мы делаем ошибки (в конце концов, это все таки активная
+ разработка с часто происходящими обновлениями). Мы также
+ прилагаем все усилия, чтобы протестировать все исправления в
+ current перед тем, как вносить их в
+ stable, однако наши тесты иногда
+ предусматривают не все возможные случаи. Если у вас что-то
+ работает в stable не так, то, пожалуйста,
+ дайте нам знать немедленно! (смотрите
+ следующий раздел).
+
+
+
+
+ Использование FreeBSD-STABLE
+
+
+
+ Подключитесь к списку рассылки &a.stable;. Это позволит
+ вам быть информированным о зависимостях этапа построения,
+ которые могут появиться в ветке stable или
+ любых других проблемах, требущих особого внимания. В этом
+ списке рассылки разработчики также делают объявления, когда
+ они рассматривают некоторое спорное исправление или добавление,
+ давая пользователям возможность ответить, возникли ли у них
+ проблемы, вызванные предполагаемым изменением.
+
+ Список рассылки &a.cvsall; позволит вам для каждого
+ изменения увидеть соответствующую запись в журнале коммитов,
+ так как они делаются вместе со всей относящейся к делу
+ информацией о возможных посторонних эффектах.
+
+ Чтобы подключиться к этим спискам, пошлите письмо на адрес
+ &a.majordomo; указав в теле письма следующее:
+
+
+subscribe freebsd-stable
+subscribe cvs-all
+
+
+ Дополнительно вы можете также указать
+ help, а Majordomo вышлет вам подробную
+ справку о том, как подписаться и отказаться от подписки на
+ различные другие списки рассылки, которые мы ведем.
+
+
+
+ Если вы устанавливаете новую систему и хотите, чтобы она
+ работала максимально стабильно, то можете просто сгрузить
+ самый последний по дате снэпшот ветки по адресу
+ ftp://releng4.FreeBSD.org/pub/FreeBSD/ и установить
+ его, как любой другой релиз.
+
+ Если вы уже работаете с предыдущим релизом FreeBSD и хотите
+ обновить его из исходных текстов, то вы можете легко это
+ сделать с сервера ftp.FreeBSD.org.
+ Это можно сделать одним из трех способов:
+
+
+
+ При помощи CTM. Если у вас нет
+ хорошего подключения по TCP/IP с фиксированной абонентской
+ платой, то это то, что нужно.
+
+
+
+ При помощи программы cvsup
+ с
+ таким sup-файлом. Это второй самый рекомендуемый
+ метод, так как он позволяет вам сгрузить набор исходных
+ текстов один раз полностью, а затем сгружать только
+ произошедшие изменения. Многие запускают cvsup при помощи
+ прграммы cron и получают самые свежие исходные тексты
+ автоматически. Для облегчения его получения просто
+ наберите:
+
+
+
+
+
+ При помощи ftp. Дерево исходных
+ текстов для FreeBSD-STABLE всегда
+ экспортируется на:
+ ftp://ftp.FreeBSD.org/pub/FreeBSD/FreeBSD-stable/.
+ К тому же мы используем wu-ftpd,
+ позволяющий выполнять сгрузку полных деревьев каталогов
+ сжатых/упакованных при помощи tar, к примеру,
+ возьмем:
+
+ usr.bin/lex
+
+ Чтобы получить весь каталог в виде tar-файла, вы можете
+ сделать следующее:
+
+
+ftp>cd usr.bin
+ftp>get lex.tar
+
+
+
+
+
+
+ Итак, если вам нужен быстрый доступ по требованию к
+ исходным текстам и нагрузка на каналы связи для вас не
+ представляет проблемы, то используйте cvsup
+ или ftp. В противном случае воспользуйтесь
+ CTM.
+
+
+
+ Перед тем, как компилировать stable, внимательно прочтите
+ файл Makefile в каталоге
+ /usr/src. В процессе обновления вы
+ по крайней мере раз должны пройти через make world. Чтение &a.stable;
+ позволит вам быть в курсе всех процедур начальной загрузки,
+ которые иногда бывают необходимы при переходе к следующему
+ релизу.
+
+
+
+
+
+
+
+ Синхронизация ваших исходных текстов
+
+ Имеются различные способы использования Интернет (или почтового)
+ подключения для того, чтобы иметь самые последние версии исходных
+ текстов любого проекта FreeBSD, во всех областях, в зависимости от
+ того, чем вы интересуетесь. Основной сервисы, который мы предлагаем,
+ это Анонимный CVS, CVSup и CTM.
+
+ Анонимный CVS и
+ CVSup используют модель
+ pull обновления исходных текстов. В случае
+ CVSup пользователь (или скрипт программы
+ cron) вызывают cvsup, а она работает с каким-либо
+ сервером cvsupd, чтобы выполнить обновление ваших
+ файлов. Обновления, которые вы получаете, обнолены с точностью до
+ минуты и вы получаете их тогда и только тогда, когда сами захотите.
+ Вы можете с легкостью ограничить ваши обновления конкретными файлами
+ или каталогами, которые представляют для вас интерес. Обновления
+ создаются на лету сервером согласно тому, что у вас есть и что вы
+ хотите иметь. Анонимный CVS гораздо проще,
+ чем CVSup в том смысле, что он представляет собой всего лишь расширение
+ CVS, позволяющее сгрузить изменения
+ непосредственно с удаленного хранилища CVS.
+ CVSup может делать это гораздо более
+ эффективно, однако анонимным CVS легче
+ пользоваться.
+
+ CTM, с другой стороны, не сравнивает
+ последовательно исходные тексты, имеющиеся у вас, с теми, что
+ находятся в главном архиве и ни каким-либо другим способом их не
+ сгружает.. Вмесо этого несколько раз в день на главной машине CTM
+ запускается скрипт, идентифицирующий изменения в файлах с момента
+ своего предыдущего запуска, все замеченные изменения подвергаются
+ сжатию, пометке последовательным номером и кодировке для передачи по
+ электронной почте (исключительно в форме печатаемых символов ASCII).
+ После получения эти дельта-файлы CTM могут быть
+ переданы утилите &man.ctm.rmail.1;, которая осуществит автоматическое
+ декодирования, проверку и применение изменений к пользовательской
+ копии исходных текстов. Этот процесс гораздо более эффективен, чем
+ CVSup и требует меньше ресурсов нашего
+ сервера, так как он сделан по модели push, а не
+ pull.
+
+ Есть другие минусы, конечно. Если вы случайно уничтожили
+ часть вашего архива, то CVSup обнаружит
+ и перестроит поврежденную часть. CTM этого
+ делать не будет, и если вы уничтожили какую-то часть вашего дерева
+ исходных текстов (и у вас нет архивной копии), то вам нужно будет
+ начать с самого начала (с самого последнего базового
+ дельта-файла CVS), перестроив все с помощью CTM, или, используя
+ anoncvs, просто удалить поврежденную часть и
+ пересинхронизироваться.
+
+ Более подробная информация об анонимном
+ CVS, CTM и
+ CVSup находится в этом разделе далее.
+
+
+
+ Использование make world
+
+ После того, как вы засинхронизировали ваше локальное дерево
+ исходных текстов с некоторой версией FreeBSD
+ (stable, current и так далее),
+ то должны использовать эти исходные тексты для перестроения
+ системы.
+
+
+ Создайте резервную копию
+
+ Я не могу удивить вас тем, насколько важно сделать резервную
+ копию вашей системы до того, как вы будете
+ это делать. Хотя перестроение всей системы (пока вы следуете этим
+ инструкциям) является простой задачей, вы всегда можете допустить
+ ошибку, или ошибка может оказаться в исходных текстах, что может
+ привести к тому, что система перестанет загружаться.
+
+ Обязательно сделайте резервную копию. И держите под рукой
+ аварийную дискету. Мне никогда не приходилось ими пользоваться, но,
+ постучав по дереву, всегда лучше подготовиться, чем потом
+ извиняться.
+
+
+
+ Подпишитесь на соответствующий список рассылки
+
+ Ветки -STABLE и -CURRENT кода FreeBSD по природе своей являются
+ изменяющимися. В разработке FreeBSD участвуют
+ люди, и время от времени случаются ошибки.
+
+ Иногда эти ошибки достаточно безобидны и приводят к выводу
+ нового диагностического сообщения. Бывает, что изменение оказывается
+ катастрофичным, и система не может загрузиться или разрушаются
+ файловые системы (или еще хуже).
+
+ Если возникают подобные проблемы, в соответствующем списке
+ рассылки публикается сообщение heads up, в котором
+ описывается природа проблемы и затрагиваемые системы. Когда проблема
+ решается, публикуется сообщение all clear.
+
+ Если вы пытаетесь отслеживать -STABLE или -CURRENT и не читаете
+ списки рассылки stable@FreeBSD.org или
+ current@FreeBSD.org, то вы напрашиваетесь на
+ неприятности.
+
+
+
+ Прочтите /usr/src/UPDATING
+
+ Перед тем, как делать что-либо, прочтите
+ /usr/src/UPDATING (или соответствующий файл,
+ если у вас есть копия исходных текстов). В этом файле должна
+ содержаться важная информация о проблемах, с которыми вы можете
+ столкнуться, или указан порядок, в котором вы должны запускать
+ определенные команды. Если в файле UPDATING
+ написано нечто, противоречающее тому, что вы здесь читаете, то
+ нужно следовать указаниям в UPDATING.
+
+
+ Чтение UPDATING не заменит подписки на
+ соответствующий список рассылки, как это и описано выше. Эти два
+ условия являются дополняющими, а не взаимоисключающими друг
+ друга.
+
+
+
+
+ Проверьте содержимое /etc/make.conf
+
+ Просмотрите файлы /etc/defaults/make.conf и
+ /etc/make.conf. Первый содержит некоторые
+ предопределенные по умолчанию значения – большинство из них
+ закомментировано. Чтобы воспользоваться ими при перестроении системы
+ из исходных текстов, добавьте их в файл
+ /etc/make.conf. Имейте в виду, что все,
+ добавляемое вами в /etc/make.conf, используется
+ также каждый раз при запуске команды make, так что
+ полезно задать здесь значения, подходящие вашей системе.
+
+ Как обычный пользователь (не разработчик FreeBSD), вам может
+ потребоваться скопировать строки CFLAGS и
+ NOPROFILE, расположенные в
+ /etc/defaults/make.conf, в файл
+ /etc/make.conf и раскомментировать их.
+
+
+ Если в вашей машине имеется сопроцессор для работы с
+ вещественными числами (машины класса 386DX, 486DX, Pentium и выше),
+ то вы можете также раскомментировать строчку HAVE_FPU.
+
+ Это определение было убрано в версиях FreeBSD 2.2.2 и
+ выше.
+
+
+ Посмотрите на другие определения (COPTFLAGS, NOPORTDOCS и так
+ далее) и решите, имеют ли они для вас значение.
+
+
+
+ Обновите файл /etc/group
+
+ Каталог /etc содержит значительную часть
+ информации о конфигурации вашей системы, а также скрипты, работающие
+ в начале работы системы. Некоторые из этих скриптов меняются от
+ версии к версии FreeBSD.
+
+ Некоторые конфигурационные файлы также используются в ежедневной
+ работе системы. В частности, файл
+ /etc/group.
+
+ Случалось, что установочная часть make world
+ ожидала существования определенных имен пользователей или групп. При
+ обновлении вероятно, что эти группы не существуют. Это вызывает
+ проблемы при обновлении.
+
+ Самым свежим примером этого является добавление группы
+ ppp устанавливались с использованием
+ не существующего (для них) имени группы.
+
+ Выходом является просмотр файла
+ /usr/src/etc/group и сравнение списка групп в
+ нем с вашим собственным. Если в новом файле есть группы,
+ отсутствующие в вашем, то скопируйте их. Таким же образом вы должны
+ переименовывать все группы в /etc/group, которые
+ имеют тот же самый GID, но другое название в
+ /usr/src/etc/group.
+
+
+ Если ощущаете себя параноиком, вы можете проверить вашу систему
+ в поиске файлов, владельцем которых является та группа, которую вы
+ переименовываете или удаляете.
+
+
+&prompt.root; find / -group GID -print
+
+
+ выдаст список всех файлов, владельцем которых является группа
+ GID (задаваемая по имени группы или
+ численному значению ID).
+
+
+
+
+ Вам может понадобиться откомпилировать систему в
+ однопользовательском режиме. Кроме обычного выигрыша в значительном
+ ускорении процесса, переустановка системы затрагивает много важных
+ системных файлов, все стандартные выполнимые файлы системы,
+ библиотеки, include-файлы и так далее. Изменение их на работающей
+ системе (в частности, в которой работают пользователи) может
+ привести к неприятностям.
+
+ Если вы смелы и предупреждены о неприятностях, то можете
+ пропустить этот шаг.
+
+
+ Версия 2.2.5 и выше
+
+ Как описывается более подробно ниже, в версиях FreeBSD 2.2.5 и
+ выше процессы установки и построения разделены. Таким образом, вы
+ можете построить новую систему в
+ многопользовательском режиме, а для установки затем перейти в
+ однопользовательский режим.
+
+
+ Как администратор, вы можете выполнить
+
+
+&prompt.root;
+
+ на работающей системе, что переведет ее в однопользовательский
+ режим.
+
+ Либо вы можете выполнить перезагрузку и в приглашении загрузчика
+ задать флаг . После этого система загрузится в
+ однопользовательском режиме. В приглашии командного процессора вы
+ должны тогда запустить:
+
+
+&prompt.root; fsck -p
+&prompt.root; mount -u /
+&prompt.root; mount -a -t ufs
+&prompt.root; swapon -a
+
+
+ Эти команды выполнят проверку файловых систем, перемонтируют
+ / в режиме чтения/записи, смонтируют все
+ остальные файловые системы UFS, перечисленные в файле
+ /etc/fstab и включат подкачку.
+
+
+
+ Удалите /usr/obj
+
+ При перестроении частей системы они помещаются в каталоги,
+ которые (по умолчанию) находятся в /usr/obj.
+ Каталоги скрывают их в /usr/src.
+
+ Вы можете ускорить выполнение процесса make world
+ и, возможно, избавить себя от некоторой головной боли, связанной с
+ зависимостями, удалив этот каталог.
+
+ На некоторых файлах из /usr/obj будут
+ установлены специальные флаги (обратитесь к &man.chflags.1; за
+ дополнительной информацией), которые сначала должны быть
+ сняты.
+
+
+&prompt.root; cd /usr/obj
+&prompt.root; chflags -R noschg *
+&prompt.root; rm -rf *
+
+
+
+
+
+ Все версии
+
+ Вы должны находиться в каталоге
+ /usr/src...
+
+
+&prompt.root; cd /usr/src
+
+
+ (если, конечно, ваш исходный код находится где-то еще, в случае
+ чего вам нужно перейти в соответствующий каталог).
+
+ Для полного перестроения системы используется
+ команда &man.make.1;. Эта команда читает инструкции из файла
+ Makefile, описывающего, как должны быть
+ перестроены команды, которые составляют систему FreeBSD, в каком
+ порядке они должны быть построены и так далее.
+
+ Общий формат командной троки, которую вы будет набирать,
+ таков:
+
+
+&prompt.root; make
+
+
+ В этом примере
-x
+ является параметром, который вы передаете в &man.make.1;.
+ Обратитесь к справочной странице программы &man.make.1;, в которой
+ есть пример параметров, которые вы можете передать.
+
+
-DVARIABLE
+ передает переменную в Makefile. Поведение
+ Makefile определяется этими переменными. Это
+ те же самые переменные, которые задаются в
+ /etc/make.conf, и это дает еще один способ
+ их задания.
+
+
+&prompt.root; make -DNOPROFILE=true target
+
+
+ является другим способом указания того, что библиотеки для
+ профилирования строить не нужно, и соответствует строкам
+
+
+NOPROFILE= true
+# Avoid compiling profiled libraries
+
+
+ в файле /etc/make.conf.
+
+ target указывает программе
+ &man.make.1; на то, что вы хотите сделать. Каждый файл
+ Makefile определяет некоторое количество
+ различных целей, и ваш выбор цели определяет то, что
+ будет делаться.
+
+ Некоторые цели перечислены в файле
+ Makefile, но вам не нужно их вызывать. Просто
+ они используются в процессе построения для разбиения шагов,
+ необходимых для перестроения системы, на несколько
+ под-шажков.
+
+ В большинстве случаев вам не нужно передавать никаких
+ параметров в &man.make.1;, так что ваша команда будет выглядеть
+ примерно так:
+
+
+&prompt.root; make target
+
+
+
+
+ Сохраните вывода
+
+ Неплохо сохранить вывод, получаемый при работе программы
+ &man.make.1;, в другой файл. Если что-то идет не так, вы будете
+ иметь копию сообщения об ошибке и полную картину того, где она
+ произошла. Хотя это может и не помочь в определении причин
+ происходящего, это может помочь другим, если вы опишите вашу
+ проблему в одном из списков рассылки FreeBSD.
+
+ Проще всего это сделать при помощи команды &man.script.1; с
+ параметром, в котором указано имя файла, в который нужно сохранить
+ вывод. Вы должны сделать это непосредственно перед тем, как
+ перестроить систему, а по окончании процесса набрать
+ exit.
+
+
+&prompt.root; script /var/tmp/mw.out
+Script started, output file is /var/tmp/mw.out
+&prompt.root; make world
+… compile, compile, compile …
+&prompt.root; exit
+Script done, …
+
+
+ Если вы делаете это, не сохраняйте
+ вывод в /tmp. Этот каталог может быть
+ очищен при следующей перезагрузке. Лучше сохранить его в
+ /var/tmp (как в предыдущем примере) или в
+ домашнем каталоге пользователя root.
+
+
+
+ Версия 2.2.2 и ниже
+
+ /usr/src/Makefile содержит цель
+ world, при выполнении которой система
+ перестраивается и переустанавливается полностью.
+
+ Используйте ее вот так:
+
+ &prompt.root; make world
+
+
+
+ Версия 2.2.5 и выше
+
+ Начиная с версии FreeBSD 2.2.5 (на самом деле впервые это было
+ сделано в ветке -CURRENT, а затем адаптировано в -STABLE где-то
+ между 2.2.2 и 2.2.5) цель world была
+ разделена на две. buildworld и
+ installworld.
+
+ Как указывают на это названия,
+ buildworld строит полностью новое дерево
+ в каталоге /usr/obj, а
+ installworld устанавливает это дерево на
+ используемой машине.
+
+ Это весьма полезно по двум причинам. Во-первых, это позволяет
+ вам безопасно строить систему, зная, что компоненты вашей
+ рабочей системы затронуты не будут. Построение
+ самодостаточно. По этой причине вы можете
+ спокойно запустить buildworld на машине,
+ работающей в многопользовательском режиме без признаков каких-либо
+ проблем. Но все же я рекомендую запускать цель
+ installworld в однопользовательском
+ режиме.
+
+ Во-вторых, это позволяет вам использовать монтирование по
+ NFS для обновления многих машин в сети. Если у вас есть три
+ машины, A, B и C, которые вы хотите обновить, запустите
+ make buildworld и
+ make installworld на машине A. B и C должны
+ затем смонтировать по NFS каталоги /usr/src
+ и /usr/obj с машины A, а вы сможете запустить
+ make installworld для установки результатов
+ построения на машинах B и C.
+
+ Цель world все еще существует, и вы
+ можете использовать ее точно также, как это делается для версии
+ 2.2.2. make world выполняет make
+ buildworld, за которым следует make
+ installworld.
+
+
+ Если вы выполняете команды make buildworld
+ и make installworld раздельно, вы должны
+ передавать команде &man.make.1; каждый раз одни и те же
+ параметры.
+
+ Если вы запускаете:
+
+
+&prompt.root; make -DNOPROFILE=true buildworld
+
+
+ вы должны установить полученный результат командой:
+
+
+&prompt.root; make -DNOPROFILE=true installworld
+
+
+ в противном случае будет делаться попытка установить
+ библиотеки для профилирования, которые не строились во время
+ выполнения фазы make buildworld.
+
+
+
+
+ -CURRENT и выше
+
+ Если вы отслеживаете -CURRENT, вы можете также передать команде
+ make параметр
-j
. Это позволит
+ команде make запустить несколько параллельных
+ процессов.
+
+ Лучше всего это делать на многопроцессорных машинах. Однако
+ из-за того, что большая часть процесса компиляции заключается во
+ вводе/выводе, а не обработке, это также полезно и в случае
+ однопроцессорных машин.
+
+ На типичной машине с одним CPU вы должны запускать:
+
+
+&prompt.root; make -j4 target
+
+
+ &man.make.1; будет иметь до 4 одновременно работающих
+ процессов. Эмпирические замеры, публикуемые в списках рассылки,
+ показывают, что в среднем это дает наибольшее улучшение
+ производительности.
+
+ Если у вас многопроцессорная машина и вы используете ядро с
+ настройками для SMP, попробуйте использовать значения между 6 и
+ 10 и посмотрите, как это отразится на скорости работы.
+
+ Имейте в виду, что (на момент написания этого текста) это
+ остается экспериментальной возможностью, и изменения в дереве
+ исходных текстов иногда могут это портить. Если система не
+ может быть построена с использованием этого параметра, попробуйте
+ еще раз без него перед тем, как сообщать о проблемах.
+
+
+
+ Время на построение
+
+ Полагая, что все проходит нормально, приготовьтесь подождать от
+ полутора часов до суток и больше.
+
+ Примите во внимание, что P6 с тактовой частотой 200МГц с более
+ чем 32МБ ОЗУ и нормальными дисками SCSI выполняет команду
+ make world примерно за полтора часа. P133 с
+ 32МБ делает это за 5 или 6 часов. Увеличьте эти числа, если
+ ваша машина медленнее…
+
+
+
+
+ Обновите файлы, не обновленные по команде
+ make world
+
+ При перестроении системы не будут обновляться некоторые каталоги
+ (в частности, /etc, /var и
+ /usr) с новыми или измененными конфигурационными
+ файлами.
+
+ Самым простым способом обновить такие файлы является запуск
+ утилиты &man.mergemaster.8;, хотя можно сделать это и вручную, если
+ вам так нравится. Однако мы настоятельно рекомендуем использовать
+ &man.mergemaster.8;, и если вы это сделаете, то можете сразу перейти
+ к следующему разделу, так как
+ программа &man.mergemaster.8; весьма проста в использовании. Сначала
+ вы должны прочитать справочную страницу и сделать резервную копию
+ /etc на случай, если что-то пойдет не
+ так.
+
+ Если вы хотите произвести обновление вручную, то вы не можете
+ просто скопировать файлы из /usr/src/etc в
+ /etc и получить работающую систему. Некоторые
+ из этих файлов сначала нужно установить. Это нужно
+ потому, что каталог /usr/src/etc
+ не является копией того, что должен содержать
+ ваш каталог /etc. Кроме того, есть файлы,
+ которые должны присутствовать в /etc, но которых
+ нет в /usr/src/etc.
+
+ Вручную проще всего сделать это, установив файлы в новый каталог,
+ а затем пройтись по ним, отмечая разницу.
+
+
+ Сделайте резервную копию вашего каталога
+ /etc
+
+ Хотя, теоретически, автоматически этот каталог не трогается,
+ всегда лучше чувствовать себя уверенно. Так что скопируйте
+ имеющийся каталог /etc в какое-нибудь
+ безопасное место. Нечто вроде:
+
+
+&prompt.root; cp -Rp /etc /etc.old
+
+
+
-R
задает выполнение рекурсивного копирования,
+ а
-p
сохраняет даты, владельца файлов и тому
+ подобное.
+
+
+ Вам нужно создать простенький набор каталогов для установки
+ нового каталога /etc и других файлов. Обычно я
+ размещаю этот каталог в /var/tmp/root, и к тому
+ же сюда требуется разместить некоторое количество
+ подкаталогов.
+
+
+&prompt.root; mkdir /var/tmp/root
+&prompt.root; cd /usr/src/etc
+&prompt.root; make DESTDIR=/var/tmp/root distrib-dirs distribution
+
+
+ Эти команды приведут к созданию нужной структуры каталогов и
+ установке файлов. Множество каталогов, созданных в каталоге
+ /var/tmp/root, пусты и должны быть удалены.
+ Проще всего сделать это так:
+
+
+&prompt.root; cd /var/tmp/root
+&prompt.root; find -d . -type d | xargs rmdir 2>/dev/null
+
+
+ Эти команды удалят все пустые каталоги. (Стандартный поток
+ диагностических сообщений перенаправляется в
+ /dev/null для исключения предупреждений о
+ непустых каталогах.)
+
+ Теперь /var/tmp/root содержит все файлы,
+ которые должны быть помещены в соответствующие места в
+ /. Теперь пройдитесь по каждому их этих файлов
+ и определите, чем они отличаются от имеющихся у вас файлов.
+
+ Заметьте, что некоторые из файлов, которые были установлены в
+ /var/tmp/root, имеют первым символом /var/tmp/root/ и
+ /var/tmp/root/root/, хотя могут быть и другие
+ (зависи от того, когда вы это читаете. Пользуйтесь командой
+
+
+ Проще всего сделать это при помощи команды &man.diff.1; для
+ сравнения двух файлов.
+
+
+&prompt.root; diff /etc/shells /var/tmp/root/etc/shells
+
+
+ По это команде будет показана разница между вашим файлом
+ /etc/shells и новым файлом
+ /etc/shells. Используйте это для определения
+ того, переносить ли сделанные вами изменения или скопировать поверх
+ вашего старого файла.
+
+
+ Называйте новый корневой каталог
+ (/var/tmp/root) по дате, чтобы вы смогли легко
+ выявить разницу между версиями
+
+ Частое перестроение системы означает также и частое обновление
+ /etc, которое может быть несколько
+ обременительным.
+
+ Вы можете ускорить этот процесс, сохраняя копию последнего
+ набора измененных файлов, которые вы перенесли в
+ /etc. Следующая процедура подаст вам одну
+ идею о том, как это сделать.
+
+
+
+ Выполните перестроение системы обычным образом. Когда вы
+ вам потребуется обновить /etc и другие
+ каталоги, дайте целевому каталогу имя на основе текущей даты.
+ Если вы делаете это 14 февраля 1998 года, то вы можете сделать
+ следующее.
+
+
+&prompt.root; mkdir /var/tmp/root-19980214
+&prompt.root; cd /usr/src/etc
+&prompt.root; make DESTDIR=/var/tmp/root-19980214 \
+ distrib-dirs distribution
+
+
+
+
+ Перенесите изменение из этого каталога, как это описано
+ выше.
+
+ Не удаляйте каталог
+ /var/tmp/root-19980214 после окончания
+ этого процесса.
+
+
+
+ Когда вы сгрузите самую последнюю версию исходного кода и
+ перестроите систему, выполните шаг 1. Это даст вам новый
+ каталог, который может называться
+ /var/tmp/root-19980221 (если вы ждете
+ неделю между обновлениями).
+
+
+
+ Теперь вы можете видеть изменения, которые были сделаны
+ за прошедшую неделю, выполнив при помощи команды &man.diff.1;
+ рекурсивное сравнение двух каталогов.
+
+
+&prompt.root; cd /var/tmp
+&prompt.root; diff -r root-19980214 root-19980221
+
+
+ Как правило, здесь содержится гораздо меньше отличий, чем
+ между каталогами
+ /var/tmp/root-19980221/etc и
+ /etc. Так как отличий мешьше, то и легче
+ перенести эти изменения в ваш каталог
+ /etc.
+
+
+
+ Теперь вы можете удалить более старый из двух каталогов
+ /var/tmp/root-*.
+
+
+&prompt.root; rm -rf /var/tmp/root-19980214
+
+
+
+
+ Повторяйте этот процесс всякий раз, когда вам нужно
+ перенести изменения в каталог /etc.
+
+
+
+ Для автоматической генерации имен каталогов вы можете
+ использовать команду &man.date.1;.
+
+
+&prompt.root; mkdir /var/tmp/root-`date "+%Y%m%d"`
+
+
+
+
+
+ Обновите /dev
+
+
+ DEVFS
+
+ Если вы используете DEVFS, то вам это, скорее всего, делать не
+ нужно.
+
+
+ Для безопасности этот процесс делается в несколько шагов.
+
+
+
+ Скопируйте /var/tmp/root/dev/MAKEDEV в
+ /dev.
+
+
+&prompt.root; cp /var/tmp/root/dev/MAKEDEV /dev
+
+
+ Если вы использовали &man.mergemaster.8; для обновления
+ /etc, то ваш скрипт
+ MAKEDEV уже должен быть обновлен, так что
+ его не нужно проверять (утилитой &man.diff.1;) и копировать
+ вручную в случае необходимости.
+
+
+
+ Теперь выведите текущее содержимое вашего каталога
+ /dev. Этот список должен содержать права,
+ владельцев, старшее и младшее числа каждого файла, но не должен
+ содержать информацию о времени. Проще всего это сделать,
+ отрезав при помощи &man.awk.1; часть информации.
+
+
+&prompt.root; cd /dev
+&prompt.root; ls -l | awk '{print $1, $2, $3, $4, $5, $6, $NF}' > /var/tmp/dev.out
+
+
+
+
+ Повторно создайте все устройства.
+
+ &prompt.root;
+
+
+
+ Создайте еще один список содержимого каталога, на этот раз в
+ /var/tmp/dev2.out. Теперь просмотрите оба
+ эти файла и поищите устройства, которые вы забыли создать. Таких
+ быть не должно, но лишний раз удостовериться не помешает.
+
+
+&prompt.root; diff /var/tmp/dev.out /var/tmp/dev2.out
+
+
+ Скорее всего, вы заметите разногласия в именовании дисковых
+ слайсов, что решается такими командами, как
+
+
+&prompt.root; sh MAKEDEV sd0s1
+
+
+ для повторного создания устройств слайсов. Точное название
+ зависит от вашей системы и может отличаться от
+ приведенного.
+
+
+
+
+
+ Обновите /stand
+
+
+ Этот шаг описан только для полноты. Он может быть
+ безболезненно пропущен.
+
+
+ В целях полноты обновления вам может потребоваться обновить также
+ файлы в каталоге /stand. Эти файлы представляют
+ собой жесткие ссылки на выполнимый файл
+ /stand/sysinstall. Этот файл должен быть
+ статически скомпонован, чтобы его работа не зависела от других
+ файловых систем (в частности, от наличия смонтированной файловой
+ системы /usr).
+
+
+&prompt.root; cd /usr/src/release/sysinstall
+&prompt.root; make all install
+
+
+
+ Исходные тексты, старее, чем 2 апреля 1998
+
+ Если ваш исходный код старше, чем 2 апреля 1998 или версия
+ файла Makefile не равна 1.68 и выше (для
+ текущих версий FreeBSD и систем 3.X) или 1.48.2.21 и выше (для
+ систем 2.2.X), вам нужно добавить параметр
+ NOSHARED=yes, как здесь;
+
+
+&prompt.root; make NOSHARED=yes all install
+
+
+
+
+
+ Откомпилируйте и установите новое ядро
+
+ Чтобы получить полную отдачу от вашей новой системы, вы должны
+ перекомпилировать ядро. Это практически необходимость, так как
+ отдельные структуры в памяти могут меняться, и программы типа
+ &man.ps.1; и &man.top.1; не будут работать, пока версии ядра и
+ исходных текстов системы не будут совпадать.
+
+ Для компиляции нового ядра следуйте указаниям в Руководстве.
+ Если ранее вы строили собственное ядро, то внимательно
+ проанализируйте конфигурационный файл LINT на
+ предмет наличия новых параметров, которые вы должны
+ использовать.
+
+ В предыдущем варианте этого документа советуется выполнить
+ перезагрузку перед тем, как перестраивать ядро. Это неправильно,
+ потому что:
+
+
+
+ Такие команды, как &man.ps.1;, &man.ifconfig.8; и
+ &man.sysctl.8; могут отказаться работать. Это может привести к
+ невозможности подключиться к сети.
+
+
+
+ Могут не работать основные утилиты, такие, как &man.mount.8;,
+ приводя к невозможности монтирования /,
+ /usr и так далее. Скорее всего, этого не
+ случится, если вы отслеживате кандидата на -STABLE, но весьма
+ вероятно при отслеживании -CURRENT во время большого
+ изменения.
+
+
+
+ Загружаемые модули ядра (LKM на системах до 3.X, KLD в
+ системах 3.X и выше) строящиеся как часть
+ окружения, могут привести к сбою в работе старого
+ ядра.
+
+
+
+ По этим причинам всегда лучше перестроить и установить новое ядро
+ до перезагрузки.
+
+ Вы должны строить свое новое ядро после того, как завершили
+ процесс make world (или make
+ installworld). Если вы не хотите этого делать (может
+ быть, вы хотите убедиться в построении ядра до обновления вашей
+ системы), то у вас могут возникнуть проблемы. Это может происходить
+ из-за того, что ваша команда &man.config.8; старее, чем исходные
+ тексты ядра.
+
+ В этом случае вы можете построить ваше ядро с новой версией
+ &man.config.8;
+
+
+&prompt.root; /usr/obj/usr/src/usr.sbin/config/config KERNELNAME
+
+
+ Во всех случаях это может и не работать. Рекомендуется, чтобы
+ вы закончили выполнение команд make world (или
+ make installworld) до компиляции нового
+ ядра.
+
+
+
+ Теперь вы сделали все. После того, как вы проверили, что все
+ на месте, можете перегрузить систему. Простая команда
+ &man.fastboot.8; должна это сделать.
+
+ &prompt.root; fastboot
+
+
+
+ Завершение
+
+ Вы должны иметь успешно обновленную систему FreeBSD.
+ Поздравляем.
+
+ Вы можете заметить некоторые проблемы из-за того, что вы что-то
+ забыли. Например, однажды я удалил /etc/magic
+ в процессе обновления, перенес это в /etc, и
+ команда file перестала работать. В результате
+ недолгих размышлений оказалось, что команды
+
+
+&prompt.root; cd /usr/src/usr.bin/file
+&prompt.root;
+
+ достаточно для исправления этой ситуации.
+
+
+
+
+
+
+ Нужно ли полностью перестраивать систему при каждом
+ изменении?
+
+
+
+ Простого ответа на этот вопрос нет, так как это зависит от
+ характера изменения. Например, я только что запустил CVSup, и
+ он выдал, что с момента последнего его запуска были изменены
+ следующие файлы;
+
+
+src/games/cribbage/instr.c
+src/games/sail/pl_main.c
+src/release/sysinstall/config.c
+src/release/sysinstall/media.c
+src/share/mk/bsd.port.mk
+
+
+ Здесь нет ничего, ради чего нужно перестраивать систему.
+ Я перейду в соответствующие подкаталоги и выдам команду
+ make all install, и этого достаточно.
+ Однако, если меняется что-то важное, например,
+ src/lib/libc/stdlib, то перестрою всю
+ систему или по крайней мере те ее части, которые скомпонованы
+ статически (а также все остальное, что добавлял я и что
+ статически скомпоновано).
+
+ В конце концов, выбор за вами. Вам может быть достаточно
+ перестраивать систему, скажем, каждый вечер, а изменения
+ скачивать ночью. Или вы можете захотеть перестраивать только
+ те вещи, которые менялись, и проверять, что вы отследили все
+ изменения.
+
+ И, конечно же, это все зависит от того, как часто вы хотите
+ делать обновление, и отслеживаете ли вы -STABLE или
+ -CURRENT.
+
+
+
+
+
+ Компиляция прерывается с большим количеством ошибок по
+ сигналу 11 (или с другим номером сигнала). Что
+ случилось?
+
+
+
+ Как правило, это говорит о проблемах с оборудованием.
+ (Пере)построение системы является эффективным стресс-тестом для
+ вашего оборудования и частенько выявляет проблемы с памятью.
+ Обычно это проявляется в виде неожиданных сбоев компилятора
+ или получения странных программных сигналов.
+
+ Явным указателем на это является то, что при перезапуске
+ процедуры построения она прекращается в различные моменты
+ времени.
+
+ В этом случае вы мало что можете сделать, разве что
+ попробовать заменить комплектующие вашей машины для определения
+ сбоящей компоненты.
+
+
+
+
+
+ Могу ли я удалить каталог /usr/obj
+ после окончания?
+
+
+
+ Это зависит от того, как вы хотите выполнять построение
+ системы в будущем.
+
+ Каталог /usr/obj содержит все
+ объектные файлы, которые создаются во время фазы компиляции.
+ Обычно одним из первых шагов в процессе /usr/obj после окончания
+ имеет мало смысла, и будет занимать большой объем дискового
+ пространства (на данный момент около 150МБ).
+
+ Однако если вы знаете, что делаете, то можете заставить
+ процедуру
+
+ Если вы хотите так поступать, то выполняйте построение,
+ задавая переменную NOCLEAN утилите make,
+ как это сделано здесь:
+
+
+&prompt.root; make -DNOCLEAN world
+
+
+
+
+
+
+ Могут ли быть продолжены прерванные процессы
+ построения?
+
+
+
+ Это зависит от того, насколько далеко зашел процесс
+ построения перед тем, как вы обнаружили проблему.
+
+ В общем случае (и это не сложное и
+ быстрое правило) процесс make world строит
+ новые копии необходимых инструментальных средств (таких, как
+ &man.gcc.1; и &man.make.1;>) и системные библиотеки. Затем эти
+ средства и библиотеки устанавливаются. Новые инструментальные
+ средства и библиотеки затем используются для перестроения
+ самих себя, и повторно устанавливаются. Система в целом
+ (теперь включая обычные пользовательские программы, такие,
+ как &man.ls.1; или &man.grep.1;) теперь перестраивается с
+ новыми системными файлами.
+
+ Если вы на последнем шаге, и вы знаете это (потому что
+ просматривали вывод, который сохраняете), то вы можете
+ (достаточно безболезненно) выполнить команду
+
+
+… исправление проблемы …
+&prompt.root; cd /usr/src
+&prompt.root; make -DNOCLEAN all
+
+
+ При этом результат предыдущего запуска
+ make world откатываться не будет.
+
+ Если вы видите сообщение
+
+
+--------------------------------------------------------------
+Building everything..
+--------------------------------------------------------------
+
+
+ в выводе команды make world, то делать так
+ достаточно безопасно.
+
+ Если этого сообщения не было, или вы в этом не уверены, то
+ всегда лучше обезопасить себя, и начать построение с самого
+ начала.
+
+
+
+
+
+ Могу ли я использовать одну машину как
+
+
+
+ В списках рассылки FreeBSD часто задается вопрос о том,
+ можно ли выполнять всю компиляцию на одной машине, а затем
+ использовать результаты этой компиляции для выполнения команды
+ make install на других машинах в
+ сети.
+
+ Я этого не делал, так что рекомендации ниже исходят от
+ других людей или вытекают из логики работы make-файлов.
+
+ Точные инструкции зависят от вашей версии FreeBSD
+
+ Вы все же должны будете обновить /etc
+ и /dev на целевых машинах после выполнения
+ этих рекомендаций.
+
+ Для 2.1.7 и ниже, Antonio Bemfica рекомендует такую
+ последовательность действий:
+
+
+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
+
+
+ Этот механизм будет работать, если только (насколько я
+ знаю) вы имеете право на запись в каталог
+ /usr/src сервера NFS, так как цель
+ install в 2.1.7 и ниже этого
+ требует.
+
+ Между 2.1.7 и 2.2.0 появилась цель
+ reinstall. Вы можете действовать точно также,
+ как это было описано для 2.1.7, но вместо
+ install использовать
+ reinstall.
+
+ Эта схема не требует доступа с правом
+ на запись к каталогу /usr/src на сервере
+ NFS.
+
+ Между версиями 1.68 и 1.107 файла Makefile в этой цели
+ присутствовала ошибка, которая приводила к тому, что доступ с
+ правом записи к NFS-серверу все же
+ требовался. Эта ошибка была исправлена
+ до выхода FreeBSD версии 2.2.0, но может быть причиной ошибок,
+ если у вас старый сервер, на котором работает -STABLE с тех
+ времен.
+
+ Для версий 2.2.5 и выше вы можете воспользоваться целями
+ buildworld и installworld.
+ Используйте их для построения дерева исходных текстов на одной
+ машине, затем смонтируйте по NFS /usr/src
+ и /usr/obj на удаленной машине и
+ устанавливайте все здесь.
+
+
+
+
+
+ Как ускорить процесс построения системы?
+
+
+
+ Работайте в однопользовательском режиме.
+
+
+
+ Разместите каталоги /usr/src и
+ /usr/obj в отдельных файловых
+ системах, располагающихся на разных дисках. Если это
+ возможно, то разместите эти диски на разных дисковых
+ контролерах.
+
+
+
+ Еще лучше разместить эти файловые системы на нескольких
+ отдельных дисках при помощи устройства ccd
+ (драйвер объединенных дисков).
+
+
+
+ Выключите генерацию профилирующего кода (установив
+ NOPROFILE=true в файле
+ /etc/make.conf). Вам это практически
+ никогда не нужно.
+
+
+
+ Также в /etc/make.conf установите
+ значение CFLAGS во что-то типа -O
+ -pipe. Оптимизация -O2 выполняется
+ гораздо медленнее, а разница между -O и
+ -O2 обычно несущественна.
+ -pipe позволяет компилятору использовать для
+ связи вместо временных файлов программные каналы, что
+ уменьшает обращение к диску (за счет оперативной
+ памяти).
+
+
+
+ Передайте утилите make параметры
+
-j<n>
(если вы работаете с
+ достаточно свежей версией FreeBSD) для запуска параллельно
+ нескольких процессов. Это поможет вне зависимости от того,
+ сколько процессоров установлено в вашей машине.
+
+
+
+ Файловая система, на которой располагается каталог
+ /usr/src, может быть смонтирована (или
+ перемонтирована) с опцией noatime. Это
+ отключит запись на диск информации о времени последнего
+ доступа к файлам. Скорее всего, вам эта информация и
+ не нужна.
+
+
+ noatime есть в версии 2.2.0 и
+ выше.
+
+
+
+&prompt.root; mount -u -o noatime /usr/src
+
+
+
+ В примере предполагается, что
+ /usr/src располагается на
+ собственной файловой системе. Если это не так (то
+ есть он является частью, скажем,
+ /usr), то вам нужно использовать
+ точку монтирования той файловой системы, а не
+ /usr/src.
+
+
+
+
+
+ Файловая система, на которой располагается
+ /usr/obj, может быть смонтирована (или
+ перемонтирована) с опцией async. Это
+ приведет к тому, что операции записи на диск будут
+ выполняться асинхронно. Другими словами, запись будет
+ завершаться немедленно, а данные записываться на диск
+ несколькими секундами позже. Это позволит объединять
+ операции записи и приведет к значительному приросту
+ производительности.
+
+
+ Имейте в виду, что эта опция делает вашу файловую
+ систему менее устойчивой. С этой опцией имеется больше
+ шансов, что при перезагрузке машины после неожиданного
+ сбоя при пропадании напряжения файловая система окажется
+ в невосстановимом состоянии.
+
+ Если каталог /usr/obj - это все,
+ что есть в этой фаловой системе, то это не проблема.
+ Если на той же самой файловой системе имеются какие-то
+ еще важные данные, то проверьте давность ваших резервных
+ копий перед включением этой опции.
+
+
+
+&prompt.root; mount -u -o async /usr/obj
+
+
+
+ Как и раньше, если каталог
+ /usr/obj располагается не на
+ собственной файловой системе, то в примере замените его
+ на имя соответствующей точки монтирования.
+
+
+
+
+
+
+
+
+
+
+
+
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
@@ -1,967 +1,988 @@
+
ДискиКраткий обзорЭта глава посвящена использованию дисков, как физических, так и
построенных на основе микросхем памяти и сетевых, в системе
FreeBSD.Нумерация дисков в BIOSВам необходимо изучить этот вопрос перед тем, как устанавливать и
настраивать FreeBSD на вашей машине, особенно если у вас имеется
несколько дисков.В случае PC под управлением DOS или других зависимых от BIOS
операционных систем (WINxxx), BIOS может скрывать обычный порядок
следования дисков, и операционная система не замечает этого. Это
позволяет пользователю загружаться с диска, отличного от так
называемого основного первичного. Это особенно удобно
тем пользователям, которые находят, что самый простым и дешевым
способом создания резервных копий является покупка второго винчестера,
идентичного первому, и выполнение регулярных копий первого диска на
второй при помощи программ Ghost или XCOPY. В таком случае, если
первый диск ломается, подвергается атаке вируса или портится из-за
дефекта в операционной системе, он может быть легко восстановлен просто
указанием BIOS логически поменять диски местами. Это похоже на
переключение кабелей на винчестерах, но без разборки корпуса.Более дорогие системы с контроллерами SCSI часто включают
расширения BIOS, которые точно также позволяют изменить порядок
следования до семи дисков SCSI.Пользователь, который привык пользоваться этой возможностью, может
быть удивлен результатом попытки ею воспользоваться с FreeBSD.
FreeBSD не использует BIOS и не знает о логическом
переназначении дисков BIOS. Это может привести к очень
запутанной ситуации, особенно когда диски идентичны по физическим
параметрам и к тому же являлись клонами друг друга.При работе с FreeBSD, всегда настраивайте BIOS на естественный
порядок нумерации дисков до установки FreeBSD, и оставляйте эту
настройку. Если вам нужно поменять диски местами, делайте это, но
самым сложным способом, открывая корпус машины и переключая кабели и
перемычки.Пример из Удивительных приключений Билла и Фреда:Билл пожертвовал стареньким Wintel-компьютером под машину FreeBSD
для Фреда. Билл задал единственный винчестер SCSI как устройство
SCSI номер ноль и установил на него FreeBSD.Фред начал работать с системой, однако после нескольких дней
работы заметил, что старый диск SCSI сообщает о множестве программных
ошибок, и сообщил об этом Биллу.Спустя еще несколько дней Билл, решив выделить некоторое время на
решение этой проблемы, взял идентичный диск SCSI со "склада"
винчестеров в кладовке. Первичное сканирование поверхности
показало нормальное функционирование, так что Билл устанавливает этот
диск как устройство SCSI номер четыре, и выполняет копирование образа
с диска номер ноль на диск с номером четыре. Теперь, после того, как
новый диск был установлен и начал нормально работать, Билл решает,
что хорошо бы начать использовать его, поэтому он воспользовался
возможность в SCSI BIOS изменить порядок следования дисков для
загрузки системы с устройства SCSI номер четыре. FreeBSD загружается
и работает прекрасно.Фред продолжает свою работу еще несколько дней, и вскоре Билл и
Фред решают, что пришло время для нового испытания -- обновления до
новой версии FreeBSD. Билл убрал диск SCSI номер ноль, потому что
он был несколько поврежден, и заменил его другим идентичным диском со
"склада". Затем Билл установил новую версию FreeBSD на новый диск
SCSI с номером ноль при помощи волшебных дискет Фреда с поддержкой
FTP через Интернет. Установка прошла нормально.Фред продолжает использовать новую версию FreeBSD несколько дней и
решает, что она достаточно хороша для использования в инженерном
отделе... самое время скопировать всю его работу со старой версии.
Так что Фред монтирует устройство SCSI номер четыре (самая последняя
копия старой версии FreeBSD). Фред с ужасом обнаруживает, что
никаких следов его работы на диске SCSI номер четыре нет.Куда же исчезли данные?Когда Билл делал копию образа исходного диска SCSI номер ноль на
диск SCSI номер четыре, диск номер четыре стал "новым клоном". Когда
Билл изменил порядок следования дисков в SCSI BIOS, чтобы загружаться
с диска SCSI номер четыре, он обманул этим только самого себя.
FreeBSD продолжала работать с диска SCSI номер ноль. Выполнение
подобных изменений в BIOS приведет к тому, что все или некоторые
компоненты кода начальной загрузки будут браться с указанного диска
BIOS, но когда очередь доходит до драйверов ядра FreeBSD, нумерация
дисков BIOS игнорируется, и FreeBSD возвращается обратно к обычной
схеме нумерации дисков. В приведенном примере система продолжала
работать с начальным диском SCSI номер ноль, и все данные Фреда
оставались здесь, а не на устройстве SCSI номер четыре. Тот факт,
что система запускалась с диска SCSI номер четыре, был просто обманом
человеческих ожиданий.Мы хотим отметить, что при этом феномене не был уничтожен или
утерян ни один байт данных. Старый диск SCSI номер ноль был забран
из мусорки и вся работа Фреда была восстановлена (и теперь Билл
знает, что он умеет считать до нуля).Хотя в этом примере использовались диски SCSI, общая идея
применима и для устройств IDE.Именование дисковФизически диски существуют в двух разновидностях,
IDE или SCSI; однако есть диски,
работа с которыми выполняется RAID-контроллерами, представляющие собой
микросхемы памяти и так далее. Так как такие устройства ведут себя
несколько иначе, они имеют собственные драйверы и им соответствуют
другие устройства.
Соглашения по наименованию физических дисковТип устройстваИмя, соответствующее устройствуДиски IDEad в 4.0-RELEASE,
wd до 4.0-RELEASE.Приводы IDE CDROMacd, начиная с 3.1-RELEASE,
wcd до 4.0-RELEASE.Диски SCSIda, начиная с 3.0-RELEASE,
sd до 3.0-RELEASE.Приводы SCSI CDROMcdРазличные нестандартные приводы CDROMmcd для Mitsumi CD-ROM,
scd для Sony CD-ROM,
matcd для Matsushita/Panasonic CD-ROM
ДисководыfdЛенточные устройства SCSIsa, начиная с 3.0-RELEASE,
st до 3.0-RELEASE.Ленточные устройства IDEast, начиная с 4.0-RELEASE,
wst до 4.0-RELEASE.Флэш-дискиfla для устройств флэш-памяти DiskOnChip,
начиная с 3.3-RELEASE.Диски RAIDmyxd для Mylex и amrd
для AMI MegaRAID, idad для Compaq Smart RAID,
начиная с 4.0-RELEASE. id от 3.2-RELEASE до
4.0-RELEASE.
Слайсы и разделыФизические диски обычно разбиты на слайсы,
кроме случаев, когда они подготовлены в режиме dangerously
dedicated. Номер слайса следует за именем устройства и
предваряется буквой s:
da0s1.Слайсы, физические диски, подготовленные для режима
dangerously dedicated, и другие диски содержат
разделы, которые обозначаются буквами от
a до h. Буква
b зарезервирована для раздела подкачки, а
c для особого раздела, равного по размеру
полному слайсу или диску. Это описано в .Монтирование и размонтирование файловых системФайловую систему лучше всего рассматривать как дерево, корень
которого, как обычно, находится в /.
/dev, /usr и другие каталоги
в корневом каталоге являются ветками, которые могут иметь собственные
ветви, такие, как /usr/local и так далее.Есть несколько причин размещать некоторые из этих каталогов в
раздельных файловых системах. /var содержит
журналы, очереди и различные типы временных файлов, поэтому может быть
заполнена до отказа. Заполнение корневой файловой системы
нежелательно, так что отделение /var от
/ зачастую бывает весьма полезно.Другим общим соображением при размещении отдельных деревьев
каталогов в других файловых системах является их размещение на
отдельных физических дисках или отдельных виртуальных дисках, таких,
как точки монтирования сетевой файловой
системы или привода CDROM.Файл fstabВо время процесса загрузки файловые
системы, перечисленные в /etc/fstab, монтируются
автоматически (если при них не указан флаг
noauto
).Файл /etc/fstab состоит из строк следующего
формата:device/mount-pointfstypeoptionsdumpfreqpassnodevice являются именем устройства (которое
должно существовать) вида, описанного выше в главе о соглашениях по именованию
дисков.mount-point является каталогом (который должен
существовать), в который будет смонтирована файловая система.fstype является типом файловой системы для
передачи в &man.mount.8;. По умолчанию во FreeBSD файловая система
имеет тип ufs.В качестве параметров options указывается
rw
для файловых систем, доступных по чтению-записи,
или
ro
для файловых систем, доступных только для
чтения, за которым следует любое количество других параметров, могущих
быть нужными. Часто используемым параметром является опция
noauto
для файловых систем, которые обычно
не монтируются во время загрузки. Другие параметры описаны на
странице справочника по &man.mount.8;.dumpfreq определяет количество дней для
обязательного создания архивной копии файловой системы, а
passno задает номер прохода, при котором
файловая система была смонтирована во время процесса загрузки.Команда mountКоманда &man.mount.8; является тем, что необходимо использовать
для монтирования файловых систем.В ее самой простой форме она используется так:
&prompt.root; mount devicemountpointКак отмечено на справочной странице по команде &man.mount.8;, она
имеет массу параметров, но наиболее часто используются
следующие:Параметры команды mount
-a
Смонтировать все файловые системы, перечисленные в файле
/etc/fstab, с модификациями по параметру
-t
, если он задан.
-d
Сделать все, кроме собственно монтирования файловой
системы.
-f
Принудительно смонтировать файловую систему.
-r
Смонтировать файловую систему в режиме только для
чтения.
-t
fstypeСмонтировать указанную файловую систему как файловую
систему указанного типа, или смонтировать файловые системы
только указанного типа, если задан параметр
-a
.По умолчанию используется тип файловой системы
ufs.
-u
Обновить параметры монтирования файловой системы.
-v
Выдавать подробный журнал.
-w
Смонтировать файловую систему в режиме доступа как для
чтения, так и для записи.Опция
-o
принимает список разделенных запятыми
параметров, включая следующее:nodevНе обрабатывать специальные устройства в файловой системе.
Опция, полезная с точки зрения обеспечения безопасности.noexecЗапретить выполнение бинарных файлов на этой файловой
системе. Опция, полезная с точки зрения обеспечения
безопасности.nosuidНе обрабатывать флаги установки выполнения файлов с
привилегиями их владельцев и групп в этой файловой системе.
Опция, полезная с точки зрения обеспечения безопасности.Команда umountКоманда umount воспринимает в качестве параметра либо точку
монтирования, либо имя устройства, либо параметры
-a
или
-A
.Все формы воспринимают параметр
-f
для
принудительного размонтирования и
-v
для вывода
подробного журнала.Флаги
-a
и
-A
используются для
размонтирования всех смонтированных файловых систем, возможно с
учетом типов файловых систем, перечисленных после
-t
. Однако при использовании опции
-A
не будет предприниматься попытка размонтировать
корневую файловую систему.Добавление дисковИзначальный текст предоставил &a.obrien; 26 апреля
1998 годаПредположим, что мы хотим установить новый диск SCSI на машину,
имеющую в данный момент только один диск. Сначала выключим компьютер и
установим диск в компьютер согласно инструкциям к компьютеру,
контроллеру и от производителя диска. Из-за большого разнообразия
этих процедур их рассмотрение выходит за рамки этого документа..Войдите в систему как пользователь root.
После того, как вы установили диск, просмотрите файл
/var/run/dmesg.boot, чтобы убедиться, что новый
диск был найден. Продолжая наш пример, только что добавленный диск
будет называться da1 и мы хотим смонтировать его
в каталог /1 (если вы добавляете диск IDE, он
будет называться wd1 в системах, предшествующих
4.0, и ad1 в большинстве систем 4.X).Так как FreeBSD работает на IBM-PC совместимых компьютерах, она
должна принимать во внимание разделы PC BIOS. В этом заключается
отличие от традиционных разделов BSD. Диск PC может иметь до четырех
записей разделов BIOS. Если диск на самом деле будет использоваться
исключительно под FreeBSD, вы можете использовать режим
dedicated. В противном случае FreeBSD будет
располагаться в одном из разделов PC BIOS. Во FreeBSD разделы PC BIOS
называются слайсами, чтобы не путать их с
традиционными разделами BSD. Вы также можете использовать слайсы и с
диском, предназначенным исключительно для FreeBSD, однако используемым
в компьютере, на котором имеется дополнительная операционная система.
Это нужно для того, чтобы не было путаницы с утилитой
fdisk другой операционной системы.В случае слайсов диск будет добавлен как
/dev/da1s1e. Это интерпретируется следующим
образом: диск SCSI, устройство номер 1 (второй диск SCSI), слайс 1
(раздел PC BIOS 1), и раздел BSD e. В случае
использования в выделенном режиме диск будет добавлен просто как
/dev/da1e.Использование утилиты sysinstallВы можете использовать простые меню утилиты
/stand/sysinstall для разбиения на разделы и
разметки нового диска. Войдите как пользователь
root или воспользуйтесь командой
su. Запустите команду
/stand/sysinstall и войдите в меню
Configure. Внутри FreeBSD Configuration
Menu, пролистайте и выберите пункт
Partition. После этого должен быть выдан список
установленных в вашей системе дисков. Если вы не увидите в списке
da1, то вам нужно повторно проверить физическое
подключение и посмотреть вывод команды dmesg в
файле /var/run/dmesg.boot.Выберите da1, чтобы войти в Редактор
разделов FDISK. Выберите A для того,
чтобы использовать под FreeBSD полностью весь диск. Когда будет
задан вопрос о том, хотите ли вы сохранить совместимость с
другими возможными операционными системами в будущем,
ответьте YES. Запишите изменения на диск при
помощи команды W. А теперь выйдите из редактора
FDISK при помощи команды q. В этот момент вам
будет задан вопрос о главной загрузочной записи. Так как вы
добавляете диск к уже работающей системе, выберите
None.После этого войдите в меню Disk Label Editor.
Здесь вы создадите традиционные разделы BSD. На диске может быть
до восьми разделов, имеющих метки a-h. Некоторые из меток разделов
имеют особый смысл. Раздел a используется для
размещения корневого раздела (/). По этой
причине только ваш системный диск (например, тот, с которого
происходит загрузка), должен иметь раздел a.
Раздел b используется под раздел подкачки, и вы
можете иметь много дисков с разделами подкачки. Раздел
c используется для доступа ко всему диску в
режиме эксклюзивного использования или ко всему слайсу FreeBSD при
работе в режиме с использованием слайсов. Остальные разделы имеют
обычное предназначение.Редактор метки диска программы sysinstall использует раздел
e для некорневого раздела и не для раздела
подкачки. Внутри редактора метки диска создайте отдельную файловую
систему при помощи команды C. Когда будет задан
вопрос о том, будет ли это раздел с файловой системой (FS) или
это будет раздел подкачки, выберите FS и укажите
точку монтирования (например, /mnt). При
добавлении диска после установки системы, программа sysinstall не
будет автоматически создавать записи в файле
/etc/fstab, поэтому точка монтирования не так уж
и важна.Теперь вы готовы записать новую метку на диск и создать на нем
файловую систему. Сделайте это, нажав клавишу W.
Проигнорируйте ошибки от sysinstall о невозможности смонтировать
новый раздел. Полностью выйдите из редактора метки диска и из
программы sysinstall.Последний шаг заключается в редактировании файла
/etc/fstab и добавлении записи для вашего нового
диска.Использовании утилит командной строки
- * Использование слайсов
+ Работа со слайсами
+
+ Следующая настройка позволит вашему диску корректно работать с
+ другими операционными системами, которые могут быть установлены на
+ вашем компьютере, и не вызовет конфликта с утилитами fdisk других
+ операционных систем. Этот способ рекомендуется использовать для
+ установок новых дисков. Используйте выделенный
+ режим если только у вас есть реальные причины делать это!
-
+
+&prompt.root; dd if=/dev/zero of=/dev/rda1 bs=1k count=1
+&prompt.root; fdisk -BI da1 # Инициализируем новый диск.
+&prompt.root; disklabel -B -w -r da1s1 auto # Размечаем его.
+&prompt.root; disklabel -e da1s1 # Теперь редактируем только что созданную метку диска и добавляем разделы.
+&prompt.root; mkdir -p /1
+&prompt.root; newfs /dev/da1s1e # Повторяем этот шаг для всех созданных разделов.
+&prompt.root; mount -t ufs /dev/da1s1e /1 # Монтируем раздел(ы)
+&prompt.root; vi /etc/fstab # В конце концов добавляем соответствующую запись/записи в файл /etc/fstab.
+
+
+ Если у вас установлен диск IDE, подставьте
+ ad вместо da. На системах
+ версий ранее 4.x используйте wd.Выделенный режимЕсли вы не будете использовать новый диск совместно с другой
операционной системой, то вы можете использовать режим
эксклюзивного использования. Отметьте, что этот
режим может ввести в заблуждение операционные системы от Microsoft;
однако информацию они не разрушат. А вот OS/2 от фирмы IBM будет
забирать себе любой раздел, который она найдет и не
сможет распознать.
&prompt.root; dd if=/dev/zero of=/dev/rda1 bs=1k count=1
&prompt.root; disklabel -Brw da1 auto
&prompt.root; disklabel -e da1 # create the `e' partition
&prompt.root; newfs -d0 /dev/rda1e
&prompt.root; mkdir -p /1
&prompt.root; vi /etc/fstab # add an entry for /dev/da1e
&prompt.root; mount /1Альтернативный метод заключается в следующем:
&prompt.root; dd if=/dev/zero of=/dev/rda1 count=2
&prompt.root; disklabel /dev/rda1 | disklabel -BrR da1 /dev/stdin
&prompt.root; newfs /dev/rda1e
&prompt.root; mkdir -p /1
&prompt.root; vi /etc/fstab # add an entry for /dev/da1e
&prompt.root; mount /1Виртуальные диски: сетевые, файловые системы в памяти и на основе
файлов
Network, Memory, and File-Based FilesystemsКроме дисков, которые вы физически устанавливаете в ваш компьютер;
дискеты, компакт-диски, винчестеры и так далее, FreeBSD воспринимает и
другие типы дисков - виртуальные диски.Сюда могут быть отнесены сетевые файловые системы, такие, как
Network Filesystem и Coda, а также файловые
системы с организацией в памяти, такие, как md и файловые системы, созданные в файле с
помощью vnconfig.vnconfig: файловая система в файле&man.vnconfig.8; конфигурирует и позволяет использовать дисковые
устройства на основе псевдо-устройств vnode.
vnode представляет собой файл и отвечает за
работу с файлом. Это означает, что &man.vnconfig.8; использует файлы
для создания и работы с файловой системой. Одним из возможных
способов использования является монтирование образов дискет или
образов компакт-дисков, сброшенных в файлы.Чтобы смонтировать имеющийся образ файловой системы:Использование vnconfig для монтирования имеющегося образа
файловой системы
&prompt.root; vnconfig vn0diskimage
&prompt.root; mount /dev/vn0c /mntДля создания нового образа файловой системы с помощью
vnconfig:Создание нового диска в файле с помощью vnconfig
&prompt.root; dd if=/dev/zero of=newimage bs=1k count=5k
5120+0 records in
5120+0 records out
&prompt.root; vnconfig -s labels -c vn0newimage
&prompt.root; disklabel -r -w vn0 auto
&prompt.root; newfs vn0c
Warning: 2048 sector(s) in last cylinder unallocated
/dev/rvn0c: 10240 sectors in 3 cylinders of 1 tracks, 4096 sectors
5.0MB in 1 cyl groups (16 c/g, 32.00MB/g, 1280 i/g)
super-block backups (for fsck -b #) at:
32
&prompt.root; mount /dev/vn0c /mnt
&prompt.root; df /mnt
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/vn0c 4927 1 4532 0% /mnt
md: Файловая система в памятиmd это простой и эффективный способ создания файловых систем в
оперативной памяти.Просто возьмите файловую систему, которую вы приготовили при
помощи, скажем, &man.vnconfig.8; и:Диск md в памяти
&prompt.root; dd if=newimage of=/dev/md0
5120+0 records in
5120+0 records out
&prompt.root; mount /dev/md0c/mnt
&prompt.root; df /mnt
Filesystem 1K-blocks Used Avail Capacity Mounted on
/dev/md0c 4927 1 4532 0% /mntКвотирование дискового пространстваКвоты - это опциональная возможность операционной системы, которая
позволяет ограничивать объем дискового пространства и/или количество
файлов для конкретного пользователя или членов определенной группы
в рамках одной файловой системы. Чаще всего эта возможность
используется в системах разделения времени, когда желательно ограничить
количество ресурсов, которые может использовать один пользователь или
группа пользователей. Это позволит не допустить ситуации, когда
один пользователь заполняет все доступное дисковое пространство.Настройка вашей системы на использование дисковых квотПеред тем, как попытаться использовать дисковые квоты, необходимо
убедиться, что квоты включены в вашем ядре. Это делается добавлением
следующей строки в конфигурационный файл вашего ядра:
options QUOTA
В стандартном ядре GENERIC это по умолчанию
не включено, так что для использования дисковых квот вам нужно будет
настроить, откомпилировать и установить собственное ядро.
Пожалуйста, обратитесь к разделу Настройка ядра FreeBSD за
дополнительной информацией о настройке ядра.Затем вам потребуется включить квотирование дисков в файле
/etc/rc.conf. Это делается добавление такой
строчки:
enable_quotas=YESДля более полного контроля над запуском квотирования имеется
дополнительная переменная для настройки. Как правило, при загрузке
целостность квот каждой файловой системы проверяется программой
quotacheck. При работе программы
quotacheck проверяется точное соответствие данных
в базе данных квот данным в файловой системе. Это весьма долгий
процесс, что отражается на времени загрузки системы. Если вам
захочется пропустить этот шаг, то для этого предназначена специальная
переменная:
check_quotas=NOЕсли вы работаете с FreeBSD версий до 3.2-RELEASE, то настройка
делается проще, и она состоит только из одной переменной. Задайте
следующее в вашем файле /etc/rc.conf:
check_quotas=YESНаконец, вам потребуется отредактировать файл
/etc/fstab для включения дисковых квот на
уровне файловых систем. Это то место, где вы можете включить квоты
для пользователей, для групп или для обеих этих категорий для всех
ваших файловых систем.Для включения пользовательских квот для файловой системы,
добавьте параметр userquota в поле параметров
файловой системы, на которой вы хотите включить квотирование, в файле
/etc/fstab. Например:
/dev/da1s2g /home ufs rw,userquota 1 2
Подобным же образом для включения квотирования на уровне групп,
воспользуйтесь параметром groupquota вместо
ключевого слова userquota. Чтобы включить
квотирование как для пользователей, так и для групп, измените
строчку следующим образом:
/dev/da1s2g /home ufs rw,userquota,groupquota 1 2
По умолчанию файлы квот хранятся в корневом каталоге файловой
системы в файлах с именами quota.user и
quota.group соответственно для пользовательских
и групповых квот. Для получения подробной информации обратитесь к
команде man fstab. Хотя эта страница справочника
утверждает, что вы можете указать другое местоположение файлов с
квотами, этого делать не рекомендуется, потому что различные утилиты
для работы с квотами не могут нормально работать в такой
ситуации.На этом этапе вы должны перезагрузить вашу систему с новым ядром.
Скрипт /etc/rc автоматически запустит
соответствующие команды для создания начальных файлов для всех квот,
которые вы создали в файле /etc/fstab, так что
нет нужды вручную создавать никаких файлов квот нулевой длины.При нормальной работе вам не потребуется вручную запускать
программы quotacheck, quotaon
или quotaoff. Однако вам нужно хотя бы прочесть
страницы справочника просто чтобы ознакомиться с их функциями.Установка квотКак только вы настроили вашу систему на использование квот,
проверьте, что они действительно были задействованы. Простым
способом сделать это является запуск такой команды:
&prompt.root; quota -vВы должны увидеть однострочную информацию, отражающую
использование диска и текущие ограничения для каждой файловой
системы, на которой включено квотирование.Теперь вы действительно готовы задавать ограничения при помощи
команды edquota.У вас есть несколько вариантов того, как приводить в действие
ограничения по объему дискового пространства, который могут занимать
пользователь или группа, а также по количеству файлов, которые они
могут создать. Вы можете ограничивать размещение ресурсов на основе
объема дискового пространства (квотирование блоков), количества
файлов (квотирование inode) или их комбинации. Каждое из этих
ограничений, в свою очередь, делится на две категории; мягкие и
жесткие ограничения.Жесткое ограничение не может быть превышено. Как только
пользователь достиг своих ограничений, ресурсы соответствующей
файловой системы ему больше выделяться не будут. Например, если
пользователь имеет жесткое ограничение в 500 блоков на файловой
системе и в текущий момент он использует 490 блоков, то
пользователь может получить дополнительно еще 10 блоков. Попытка
получить еще 11 блоков окончится неудачно.С другой стороны, мягкие ограничения могут быть превышены в
течении некоторого периода времени. Этот период времени также
называют периодом отсрочки, который по умолчанию равен одной неделе.
Если пользователь превышает свое мягкое ограничение в течении периода
времени, превышающего отсрочку, то это мягкое ограничение становится
жестким и последующее выделение ресурсов будет запрещено. Когда
пользователь вернется обратно к отметке, меньшей, чем мягкое
ограничение, то период отсрочки будет сброшен.Далее приводится пример того, что вы можете наблюдать при
запуске команды edquota. Когда вызывается команда
edquota, вы оказываетесь в редакторе, заданном
переменной переменной окружения EDITOR, или в
редакторе vi, если переменная
EDITOR не задана, и можете редактировать квоты.
&prompt.root; edquota -u test
Quotas for user test:
/usr: blocks in use: 65, limits (soft = 50, hard = 75)
inodes in use: 7, limits (soft = 50, hard = 60)
/usr/var: blocks in use: 0, limits (soft = 50, hard = 75)
inodes in use: 0, limits (soft = 50, hard = 60)
Для каждой файловой системы, на которой включено квотирование,
вы должны увидеть две строки. В одной строке приведены ограничения
на блоки, а в другой на количество inode. Например, чтобы увеличить
ограничения на количество блоков для пользователей с мягкого
ограничения в 50 и жесткого ограничения в 75, на мягкое ограничение
в 500 и жесткое ограничение в 600, измените:
/usr: blocks in use: 65, limits (soft = 50, hard = 75)
на:
/usr: blocks in use: 65, limits (soft = 500, hard = 600)
Новые ограничения вступят в силу после выхода из
редактора.Иногда желательно установить ограничения квот на некоторый
диапазон идентификаторов пользователей. Это можно сделать при
помощи параметра
-p
в команде
edquota. Во-первых, установите желаемое
ограничение для пользователя, а затем запустите команду
edquota -p protouser startuid-enduid. Например,
если пользователь test имеет желаемые
ограничения, то для дублирования этих ограничений на пользователей с
идентификаторами от 10000 до 19999 может быть использована такая
команда:
&prompt.root; edquota -p test 10000-19999Обратитесь к man edquota за более подробной
информацией.Проверка ограничений и использования дискаДля проверки квот и использования дисков вы можете использовать
команды quota или repquota.
Команда quota может быть использована для проверки
квот отдельных пользователей, групп, а также использования дисков.
Только администратор системы может проверять квоты и использование
диска другими пользователями и группами. Команду
repquota можно использовать для получения
суммарной статистики всех квот и использования дисков для файловых
систем с включенными квотами.Далее приведен пример вывода команды quota -v
для пользователя, который имеет ограничения на двух файловых
системах.
Disk quotas for user test (uid 1002):
Filesystem blocks quota limit grace files quota limit grace
/usr 65* 50 75 5days 7 50 60
/usr/var 0 50 75 0 50 60
В этом примере для файловой системы /usr
пользователь превысил свое мягкое ограничение в 50 блоков на 15
блоков и имеет 5 дней до истечения отсрочки. Отметьте знак
звездочки *, который указывает на превышение
пользователем своего ограничения.Как правило, файловые системы, на которых пользователь не
занимает дискового пространства, не показываются в выводе команды
quota, даже если они ему выделена квота на
этой файловой системе. При использовании параметра
-v
эти файловые системы выводятся, как, например,
файловая система /usr/var в примере выше.Квоты в NFS NFSКвоты определяются подсистемой квот на сервере NFS. Даемон
&man.rpc.rquotad.8; предоставляет информацию о квотах для программы
&man.quota.1; на клиентах NFS, позволяя пользователям на этих машинах
смотреть свою статистику о квотах.Включите rpc.rquotad в файле
/etc/inetd.conf следующим образом:
rquotad/1 dgram rpc/udp wait root /usr/libexec/rpc.rquotad rpc.rquotad
Теперь перезапустите inetd:
&prompt.root; kill -HUP `cat /var/run/inetd.pid`
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
@@ -1,721 +1,721 @@
ВведениеИсправил, реорганизовал и частично переписал
&a.jim;, 17 января 2000.Краткий обзорМы благодарим Вас за Ваш интерес к FreeBSD! Следующая глава
расскажет Вам о некоторых аспектах проекта FreeBSD, таких как история,
цели, модель разработки, и прочее.FreeBSD, базирующаяся на операционной системе 4.4BSD-Lite2,
выпускается для архитектуры Intel (x86), а также для систем на
базе DEC Alpha. Портирование на другие платформы также ведётся.
Для краткого обзора FreeBSD, взгляните на следующую главу. Вы также можете
прочитать об истории FreeBSD,
и о текущей версии. Если вы хотите
чем-нибудь помочь (кодом, оборудованием, чем-то другим) проекту,
смотрите главу Содействие FreeBSD.Добро пожаловать во FreeBSD!Если Вы до сих пор читаете это, возможно Вы хотите узнать что
такое FreeBSD и что это может сделать для Вас. Если Вы впервые
столкнулись с FreeBSD, прочитайте нижеследующую информацию.Что такое FreeBSD?
- Итак, FreeBSD это великолепная операционная система,
+ Итак, FreeBSD – это великолепная операционная система,
основанная на 4.4BSD-Lite2. Она работает на компьютерах с архитектурой
Intel (x86) и DEC Alpha.FreeBSD используется на огромнейших сайтах в Internet,
включая:Yahoo!HotmailApacheBe, Inc.Blue Mountain
ArtsPair
NetworksWhistle
CommunicationsWalnut Creek
CDROMи многих других.
- Что может делать FreeBSD?
+ Что может FreeBSD?FreeBSD имеет заслуживающие внимания особенности. Некоторые из
них:Приоритетная многозадачность с
- динамическим регулированием приоритетов, плавно и правильно
+ динамическим регулированием приоритетов плавно и правильно
приспособится и учтиво распределит ресурсы компьютера между
приложениями и пользователями, даже при тяжелейших нагрузках.
Многопользовательская доступность которая
позволяет множеству людей использовать FreeBSD совместно для ряда
задач. Это значит, например, что системная периферия, такая как
принтеры и ленточные устройства правильно распределены между
пользователями в системе или сети и что лимиты каждого ресурса
могут быть выданы пользователям или группам пользователей
защищая критические системные ресурсы от перегрузок.Мощный TCP/IP стек с поддержкой
промышленных стандартов, таких как SLIP, PPP, NFS, DHCP и NIS.
- Это говорит о том, что ваша FreeBSD может легко функционировать
+ Это говорит о том, что Ваша FreeBSD может легко функционировать
с другими системами предприятия, предоставляя жизненно важные
функции, такие как NFS (удалённый доступ к файлам) и услуги
- электронной почты и представить вашу организацию в Internet с услугами
+ электронной почты и представить Вашу организацию в Internet с услугами
WWW, FTP, маршрутизацией и брандмауэром (сетевая безопасность).
- Защита памяти гарантирует что
+ Защита памяти гарантирует, что
приложения (или пользователи) не смогут чинить препятствия
друг другу. Фатальная ошибка в выполнении одного приложения
не скажется на работоспособности всей системы.FreeBSD 32-х битная операционная система
(64 бита на Alpha) была создана
именно такой.Промышленный стандарт X Window System
- (X11R6) предоставит графический интерфейс пользователя (GUI) для
+ (X11R6) предоставляет графический интерфейс пользователя (GUI) для
большинства VGA карт и мониторов и поставляется с полными исходными
текстами.
-
-
+
+ Двоичная совместимость с большинством
программ, созданных для Linux, SCO, SVR4, BSDI и NetBSD.Тысячи готовых к использованию
приложений доступны из FreeBSD коллекций
портов и пакетов.
Зачем нужен нужно искать что-то в сети, когда Вы можете найти
всё прямо здесь?Тысячи других
легко-адаптируемых приложений доступны в
- Internet. FreeBSD в исходных текстах совместима с большинством
- популярных коммерческих Unix систем и таким образом большинство
+ Internet. FreeBSD в исходных текстах совместима с большинством
+ популярных коммерческих Unix систем и, таким образом, большинство
приложений требуют несколько достаточно мелких, если требуют,
изменений для сборки.Виртуальная память с поддержкой
сброса неиспользуемых страниц по требованию и
- обьедененный VM/буферный кэш спроектированы
- так, чтоб максимально эффективно удовлетворить приложения с
- огромными аппетитами к памяти, и в то же время сохранить
+ обьедененные VM/буферный кэш спроектированы
+ так, чтобы максимально эффективно удовлетворить приложения с
+ огромными аппетитами к памяти и, в то же время, сохранить
интерактивность остальных пользователей.
-
+
- Поддержка SMP для машин с
+ Поддержка симметричной многопроцессорности (SMP) для машин с
несколькими процессорами (только для Intel).
-
+
Полный комплект инструментов для разработчика:
C, C++,
Fortran и Perl.
Множество дополнительных языков для прочих исследований
и разработки также доступны из коллекций портов и пакетов.Исходные тексты всей системы
означают, что Вы имеете великолепную возможность контролировать
Ваше окружение. Зачем выбирать закрытые решения и уповать на милость
производителя, когда вы можете иметь по-настоящему Открытую
Систему?Обширная on-line
документация.И многое-многое другое!
- FreeBSD основана на 4.4BSD-Lite от Computer
+ FreeBSD основана на 4.4BSD-Lite2 от Computer
Systems Research Group (CSRG) Калифорнийского Университета, Беркли,
и имеет в себе характерные черты модели развития BSD-систем.
В дополнении к прекрасной работе предоставленной
CSRG, Проект FreeBSD тратит многие тысячи часов для
тонкой настройки системы для максимальной производительности и надёжности
- в условиях максимально приближенным к боевым. Когда большинство
+ в условиях максимально приближенным к боевым. Когда большинство
коммерческих гигантов только борятся за рынок операционных систем для PC,
FreeBSD может предложить такие особенности, производительность и надёжность
прямо сейчас!Применение FreeBSD в действительности ограничено только Вашими
- фантазиями. От разработки программного обеспечения до автоматизации
+ фантазиями. От разработки программного обеспечения до автоматизации
производства, от контроля за качеством товара до
коррекции азимутов удалённых спутниковых антен; эти задачи можно
решить и с помощью коммерческих UNIX-систем, но более правильно
- решить эти задачи с помощью FreeBSD! FreeBSD столь же многогранно
+ решить эти задачи с помощью FreeBSD! FreeBSD столь же многогранно
полезна, как и буквально тысячи высококачественных приложений разработанных
исследовательскими центрами и университетами во всём мире, доступные
за минимальную цену или даже бесплатно. Коммерческие приложения также доступны
и появляются в больших количествах ежедневно.Исходя из того, что исходные тексты FreeBSD всегда доступны,
система может быть использована в едва известных проектах
для специальных приложений или проектов, а это, в большинстве
своём, невозможно используя операционные системы от большинства
коммерческих производителей. Вот несколько примеров того, как люди
используют FreeBSD:Internet Сервисы: мощнейший TCP/IP
стек делает FreeBSD идеальной платформой для большинства
Internet приложений таких как:FTP серверыWorld Wide Web серверы (как стандартные, так и безопасные
[SSL])Серверы фильтрации пакетов и серверы-посредники NAT
(IP маскарадинг).Серверы электронной почтыСерверы новостей USENET и BBSи многое другое...Вы можете начать своё знакомство с FreeBSD, используя недорогую
машину класса 386 PC, а впоследствии увеличить её мощь до сервера масштаба
предприятия с четырьмя процессорами Xeon и RAID контроллером.Образование: Вы студент и ваше
образование связано с компьютерами или другими инженерными
расчётами? Нет лучшего пути, чем начать изучение операционных
систем, архитектуры компьютера и работы в сети, чем покорить
вершины FreeBSD. Количество доступных CAD, математических
и графических пакетов также делают её наиболее используемой
первопричиной заставить компьютер выполнять
другую не менее важную работу.Исследования: С исходными текстами,
которые доступны для всех систем, FreeBSD превосходная платформа
как для исследования операционных систем, так и исследования
других областей компьютерных наук. Широкое распространение FreeBSD
предоставляет возможность удалённым группам сотрудничать, обмениваться
идеями и совместными разработками не беспокоясь
о наличии специальных лицензий или ограничений,
которые могут обсуждаться в открытых форумах.Работа в сети: Нужен новый маршрутизатор?
Сервер имён (DNS)? Брандмауэр, защищающий от проникновения
извне в вашу сеть? FreeBSD может превратить давно списанный и
пылящийся в углу 386й или 486й PC в мощный маршрутизатор
с возможностью фильтрации пакетов.Рабочая станция X Window: FreeBSD прекрасный
- выбор если вам нужен недорогой X-терминал. Можно использовать
+ выбор, если вам нужен недорогой X-терминал. Можно использовать
свободно распространяемый XFree86 сервер или один из
коммерческих серверов, поставляемых X Inside. В отличии от
X терминала, на FreeBSD можно запускать множество приложений
локально, если желаете, таким образом перенеся часть нагрузки
с центрального сервера. FreeBSD может быть загружена на бездисковой
станции, что рабочую станцию более дешёвой и
простой в администрировании.Разработка программного обеспечения: Базовая
поставка FreeBSD распространяется с полным набором инструментов для
разработки, включая знаменитые компилятор GNU C/C++ и
отладчик.FreeBSD доступна как в исходных текстах, так и в бинарном виде
на CDROM и через анонимный доступ к FTP. Смотрите
Получение FreeBSD для уточнений.О Проекте FreeBSDВ следующей части рассказывается о том, что из себя представляет проект,
включая краткую историю, цели проекта и модель разработки
проекта.Краткая история FreeBSDРассказывает &a.jkh;.Проект FreeBSD возник в первой половине 1993 года,
частично как результат развития Неофициального комплекта
заплат к 386BSD (patchkit) , последними 3-мя координаторами
этого проекта: Nate Williams, Rod Grimes и мною.Нашей главной задачей было привести промежуточный
снэпшот 386BSD в порядок, исправив множество проблем, которые
механизм patchkit не мог решить. Некоторое из вас возможно помнят
раннее название этого проекта: 386BSD 0.5 или
386BSD Interim.386BSD была операционной системой Била Джоилца, который
на тот момент находился строго говоря, в состоянии полного
пренебрежения к ней. Так как patchkit разрастался и его
поддержание становилось более неудобным день от дня, мы
пришли к единодушному соглашению что что-то нужно делать
и решили помочь Билу путем предоставления промежуточных
очистных снэпшотов. Эти планы были невежливо
оборваны, когда Билл внезапно решил забрать его санкции
у проекта без любых ясных комментариев, что должно быть
сделано вместо этого.Нам потребовалось немного времени, чтоб прийти к решению
- продолжать следовать той цели, даже без поддержки Била,
+ продолжать следовать той цели, даже без поддержки Билла,
и мы приняли имя FreeBSD приобретенное Дэвидом
Гринмэном. Наши начальные цели были установлены после консультаций
с пользователями существовавшей системы, и как только стало
понятно, что проект на пути к тому чтобы стать реальностью, я
связался с Walnut Creek CDROM с мыслью о путях последующего
улучшения каналов распространения FreeBSD для множества
невезучих без доступа к Internet. Walnut Creek CDROM не только
поддержал идею распространения FreeBSD на CD, но также пошел
далеко вперед и предоставил проекту компьютер для работы
и быстрый доступ к Internet. Без почти беспрецедентной веры
Walnut Creek CDROM, в то время полностью неизвестный проект,
вряд ли FreeBSD зашел далеко и так быстро, как сегодня.Первым дистрибутивом, распространяемым как на CDROM, так и в сети,
стал FreeBSD 1.0, выпущенный в декабре 1993 года. Эта версия была
выполнена на основе ленты 4.3BSD-Lite (Net/2)
из Калифорнийского Университета в Беркли, с многочисленными
добавлениями из проекта 386BSD и Фонда Свободного Программного
Обеспечения. Это был довольно внушительный успех для
первого предложения, и мы закрепили его с выходом FreeBSD
1.1 RELEASE в мае 1994 года.В это же время, на небе сгустились тучи в связи с назревающим
скандалом между Novell и Калифорнийским Университетом, Беркли.
Это был вяло-текущий судебный процесс о легальности версии
Net/2 из Беркли. Обстоятельства тяжбы с Калифорнийским Университетом
заключались в том, что большие куски Net/2 были загромождены
кодом, права на который принадлежат Novell, которая в свою очередь,
получила их (права на код) ранее от AT&T. Чтоб вернуть
благославление Novell, Беркли выпустил версию 4.4BSD-Lite, который
был обьявлен полностью свободным незагроможденым и
всем пользователям Net/2 было рекомендовано переключится на ее
использование. Это также касалось FreeBSD, и проекту было дано
время до конца Июля 1994 года для прекращения распространения его
продукта базирующегося на Net/2. На этих условиях проекту было
разрешено выпустить последний релиз до окончания срока, это
был FreeBSD 1.1.5.1.Тогда FreeBSD приступил к сложной задаче буквально
полному изобретению себя из абсолютно новой и довольно
неполной системы 4.4BSD-Lite. Lite был
в прямом смысле light (легким) потому, что CSRG удалил
большие куски кода необходимого для создания реально
загружающейся системы (по причине различных лицензионных
требований) и фактически порт 4.4BSD для платформы Intel
был очень неполным. Проекту потребовалось вермя почти до
Ноября 1994 года для того чтоб выполнить этот переход и
на этом этапе FreeBSD 2.0 была опубликована в сети и
на CDROM (в конце Декабря). Несмотря на множество недотесаных
углов в этой версии она пользовалась значительным успехом
и была продолжена более устойчивой и простой для установки
FreeBSD 2.0.5 выпущенной в Июне 1995 года.Мы выпустили FreeBSD 2.1.5 в августе 1996, и она стала достаточно
популярной среди большого количества ISP и коммерческих производителей, но
и другие версии из ветки 2.1-STABLE также заслуживают этого. Это была
FreeBSD 2.1.7.1, вышедшая в феврале 1997 и завершившая главную
нить разработки 2.1-STABLE. Сейчас в режиме поддержки, только
безопасные расширения и прочие критические исправления ошибок
включаются в эту ветку (RELENG_2_1_0).FreeBSD 2.2 была выведена из разработки
(-CURRENT) в ноябре 1996 как ветка RELENG_2_2,
а первая полная версия (2.2.1) появилась в апреле 1997.
Последующие версии ветки 2.2 появлялись летом и в конце '97,
а последняя версия (2.2.8) вышла в ноябре 1998.
Первая официальная версия 3.0 была подготовлена к выходу в
октябре 1998, завершив развитие ветки 2.2 Третье ветвление произошло 20 января 1999 года, разделив
ветки 4.0-CURRENT и 3.X-STABLE. Из ветки 3.X-STABLE были получены: 3.1 -
15 февраля 1999, 3.2 - 15 мая 1999, 3.3 - 16 сентября 1999,
3.4 - 20 декабря 1999, 3.5 - 24 Июня 2000, за которым последовал
через несколько дней немного обновленный 3.5.1, который содержал
несколько фиксов в области безопасности Kerberos. Это был последний
релиз из ветки 3.x.Последнее на данный момент ветвление было произведено 13 Марта, 2000
в результате которого появились ветки 4.X-STABLE и 5.0-CURRENT.
- Единственный релиз из этой ветки на данный момент это
+ Последний релиз из этой ветки на данный момент – это
&rel.current;-RELEASE.Долговременные разработки и проекты продолжаются в ветке
5.0-CURRENT, и по ходу разработки будут доступны снэпшот-релизы
- 5.0 на CDROM (и, конечно, в сети).
+ 5.0 на CDROM (и, конечно же, в сети).
Цели Проекта FreeBSDПредоставлено &a.jkh;.Целью Проекта FreeBSD является предоставление программного
обеспечения, которое может быть использовано для любых целей
и без дополнительных ограничений. Многие из нас вносят внушительные
взносы в код (и проект) и совершенно не требуют за это
небольшой финансовой компенсации сейчас и в последствии, и мы
определенно не собираемся настаивать на этом. Мы верим, что первая
и основная наша задача предоставить код для всех
кому он необходим, и для любых целей, поэтому этот код становится
все более и более распространен и предоставляет самые широкие
выгоды. Это, я верю, является одной из основных целей Свободного
Програмного Обеспечения и той которую мы с энтузиазмом
поддерживаем.Тот код в нашем дереве исходных текстов, который подпадает
под Общую Публичную Лицензию GNU (GPL) или Общую Публичную
Лицензию Библиотек GNU (LGPL) предоставляется с дополнительными
ограничениями, хотя и это только со стороны предоставления
доступа, а не просто противоположность. По причине дополнительных
сложностей, которые могут появится при коммерческом использовании GPL
продуктов, мы предпочитаем ПО предоставленное под более свободной
лицензией BSD, когда это возможно.Модель Разработки FreeBSDПредоставлено &a.asami;.Разработка FreeBSD это очень открытый и гибкий процесс,
FreeBSD литературно выражаясь создан из кода предоставленного
сотнями людей со всего мира, в чем Вы можете убедится взглянув
на список этих людей. Мы постоянно
ищем новых разработчиков и новые идеи, и те кто заинтересованы
в более тесном взаимодействии и хочет принять участие в проекте
должны просто связаться с нами в &a.hackers;. Для тех кто
желает использовать FreeBSD в различных областях для работы и
не только доступен &a.announce;.Полезными вещами, о которых стоит знать, если Вы интересуетесь
FreeBSD и процессом разработки, независимо или тесно сотрудничая
с нами, являются:CVS РепозиторийГлавное дерево исходных текстов FreeBSD поддерживается
с помощью
CVS
(Concurrent Version System), свободно доступной системой
контроля исходных текстов, который поставляется встроенным
в FreeBSD. Основной
CVS
репозиторий располагается на компьютере находящемся
в городе Конкорд, Калифорния (США) откуда и распространяется
на множество зеркал по всему миру. Дерево CVS, а также деревья
-CURRENT и -STABLE, которые извлекаются из него,
могут быть легко скопированы на Ваш локальный компьютер.
Обратитесь к секции Синхронизация
Вашего дерева исходных текстов для информации об этом
процессе.Список коммиттеровКоммиттеры
это люди, которые имеют доступ на запись
к главному дереву CVS, и имеют право вносить изменения
в главное дерево исходных текстов FreeBSD (термин
коммиттер появился от названия одной из
команд &man.cvs.1; commit, которая
используется для внесения изменений в CVS репозиторий).
Лучший способ для предоставления Ваших изменений на
рассмотрение коммиттеров - это использование команды
&man.send-pr.1;, или если что-то произошло, то Вы можете
достучаться до них посылкой письма по адресу
cvs-committers@FreeBSD.org.CORE группа FreeBSD CORE группа FreeBSD
могла бы быть эквивалентом Совета Директоров, если бы
Проект FreeBSD был бы компанией. Главная задача CORE группы
создавать уверенность, что проект в целом в хорошем состоянии
и движется в правильном направлении. Приглашение выделенных
или ответственных разработчиков присоединится к группе
коммиттеров одна из функций CORE группы, также как приглашение
новых членов в CORE группу по мере того, как другие уходят.
Большинство нынешних членов CORE группы начинали
как Коммиттеры и чья склонность к проекту взяла верх над ними.
Некоторые члены CORE группы имеют особенные области ответственности, что
означает, что они являются ответственными за то, чтобы
большая часть системы работала как необходимо.Большинство членов CORE группы являются волонтерами
и не получают никакой финансовой выгоды от участи в проекте,
поэтому Вы не должны рассматривать их работу как
гарантированную поддержку. Аналогия с
не очень аккуратна и вероятно гораздо
корректнее сказать, что это люди которые отдали свои жизни
в пользу FreeBSD вместо их лучшей жизни!
;-)Внешняя помощьПоследней, но однозначно не единственной, наибольшей
группой разработчиков являются пользователи, которые
предоставляют комментарии и исправления ошибок нам на почти
постоянной основе. Основной путь участвовать в
не централизованной разработке это подписаться на &a.hackers;
(смотри информацию о списках
рассылки), где обсуждаются подобные вещи.Список
тех, кто предоставил что-либо попавшее в наше дерево
исходных текстов, очень длинный и постоянно растет, поэтому
почему бы Вам не присоединится к нему предоставив что-нибудь
FreeBSD сегодня ?:-)Предоставление кода не единственный способ помочь
проекту; для более-менее полного списка вещей, которые
необходимо сделать пожалуйста обратитесь к секции как помочь этого руководства.В завершении, наша модель разработки организована как неточный
набор концентрированных колец. Централизованная модель разработана
для удобства пользователей FreeBSD, которые
таким образом получают простую систему контроля за одной
центральной базой кода, и позволяет не оставить за бортом проекта
потенциальных помошников! Мы желаем предоставить стабильную
операционную систему с большим количеством когерентных
прикладных программ, которые
пользователи смогут легко установить и использовать, и эта модель
работает очень хорошо для выполнения всего этого.Мы все приглашаем тех кто хотел бы присоединится к нам, как
разработчик FreeBSD выделить немного времени и привнести свой взнос
в постоянный успех FreeBSD!Текущая Версия FreeBSDFreeBSD - это свободно доступная, базирующаяся на 4.4BSD-Lite
релизе для компьютерных систем основанных на Intel i386, i486,
Pentium, Pentium Pro, Celeron, Pentium II, Pentium III
(или совместимых) и DEC Alpha. В основном она базируется на
программном обеспечении от группы CSRG, U.C. Berkley, с некоторым
дополнениями из NetBSD, OpenBSD, 386BSD и Free Software
Foundation.Со времен FreeBSD версии 2.0 в конце 94, производительность,
возможности, и стабильность FreeBSD выросла многократно. Самое
большое изменение это полное обновление системы виртуальной памяти
с обьедененным VM/файловым буферизированым кэшем, который не только
увеличивает производительность, но и уменьшает количество
используемой памяти, делая 5MB конфигурацию более доступным
минимумом. Другие улучшения включают в себя полную поддержку NIS
(клиент и сервер), поддержка транзакций TCP, поддержка
"звонка-по-запросу" в PPP, встроенная поддержка DHCP, улучшеная
субсистема SCSI, поддержка ISDN, ATM, FDDI, Fast и Gigabit Ethernet
(1000Mbit) адаптеров, улучшеная поддержка последних версий
контролеров Adaptec и сотни исправленных ошибок.Мы также приняли комментарии и предложения множества наших
пользователей близко к сердцу и попытались предоставить, то что
мы считаем более нормальным и простым для понимания инсталляционным
процессом. Ваши отзывы об этом (постоянно развивающемся) процессе
особенно приветствуются!В дополнение к базовой системе, FreeBSD предоставляет
коллекцию портированого ПО включающую в себя тысячи популярных
программ. На середину января 2000 года она включала в себя
почти 3000 портов! В коллекцию входят множество програм от
http (WWW) серверов, до игр, языков программирования, текстовых
редакторов и все что между ними. Полная коллекция портов
требует приблизительно 50Мб дискового пространства, потому что
порт представляет собой дельты от оригинальных
исходных текстов. Это сильно упрощает нам процесс обновления
портов, и очень сильно уменьшает количество занимаемого
дискового места по сравнению со старой 1.0 коллекцией портов.
Для того чтоб скомпилировать и проинсталлировать программу которую
Вы хотите, Вам необходимо всего лишь войти в директорию порта
программы, набрать make install и дать
системе сделать все остальное. Исходные тексты для каждого порта,
который Вы инсталлируете отыскиваются динамически с CDROM'a или
локального FTP сервера, поэтому Вам нужно только дисковое
пространство для сборки тех портов каких Вы хотите. Почти каждый
порт также предоставляется как пред-компилированый
пакадж, который может быть проинсталирован с помощью
простой команды (pkg_add) теми кто не хочет компилировать порты
из исходных текстов.Множество дополнительных документов которые Вы можете найти
очень полезными в процессе инсталляции и использования FreeBSD
могут быть найдены в директории /usr/share/doc
на любой машине работающей под управлением FreeBSD 2.1 и выше. Вы
можете в просматривать локально установленные документы с помощью
любого браузера понимающего HTML используя следующие URLи:Справочник FreeBSDfile:/usr/share/doc/handbook/index.htmlЧаВО о FreeBSD (Часто задаваемые Вопросы и Ответы)file:/usr/share/doc/faq/index.htmlВы также можете посмотреть главные (и наиболее часто обновляемые)
копии на http://www.FreeBSD.org/.
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
@@ -1,1073 +1,1081 @@
Установка приложений: Коллекция портовПереписал &a.jim;, 22 ноября 1999. Оригинальная работа была
выполнена различными людьми.ВведениеКоллекция портов FreeBSD позволяет вам компилировать и устанавливать
широкий набор приложений с минимальными усилиями.В общем-то, она представляет собой группу скелетных файлов, содержащих минимальный
набор команд, требуемых для корректной компиляции и установки приложений
в системе FreeBSD.Даже если вы свято верите во все эти якобы открытые стандарты,
компиляция программ на различных UNIX-платформах бывает весьма хитрой
задачей. Случается, что вам везет и нужная программа компилируется на
вашей системе, устанавливает все файлы в нужные каталоги и запускается
без проблем как есть, однако такое встречается достаточно
редко. В большинстве случаев обнаруживается, что вам нужно вносить
изменения для того, чтобы заставить программу работать. Здесь-то вам и
придет на помощь Коллекция портов FreeBSD.Общими целями создания Коллекции портов является избавление от всех
этих телодвижений, которые нужно выполнять для того, чтобы программа
работала правильно, и создание простого и безболезненного процесса
установки. когда вы имеете дело с Коллекцией портов, то вся тяжелая
работа уже сделана, и вы можете установить любой порт из Коллекции,
просто дав команду make install.Использование Коллекции ПортовВ этих разделах описаны основные приемы использования коллекции
портов для установки и удаления программ из вашей системы.Установка портовКогда речь заходит о Коллекции портов, то первым делом вы должны
понять, что именно подразумевается под словом скелет.
По сути скелетом порта является минимальный набор файлов, которые нужны
программе для ее корректной компиляции и установки во FreeBSD. Скелет
каждого порта включает:Makefile. Makefile
содержит различные директивы, которые определяют, как приложение
должно быть откомпилировано и куда в вашей системе оно должно быть
установленоКаталог files. В каталоге
files находится файл с именем
md5. Этот файл именуется в честь алгоритма,
используемого для подсчета контрольных сумм портов. Контрольная
сумма - это число, получаемое после сложения всех данных вашего
файла, который вы хотите проверить. Если меняется какой-либо
символ, то контрольная сумма уже будет отличаться от оригинальной
и будет выведено сообщение об ошибке, чтобы вы могли выяснить, где
произошли изменения.В каталоге files могут также находиться и
другие файлы, необходимые для порта, но которые не подходят для
размещения где-то в другом месте структуры каталогов.Каталог patches. Этот каталог
содержит патчи, использование которых необходимо для компиляции и
установки программы в вашей системе FreeBSD. Патчи - это, как
правило, маленькие файлы, в которых содержатся изменения, которые
нужно внести в какой-то конкретный файл. Они имеют обычный
текстовый формат и в основном содержат указания типа Удалить
строку 10 или Заменить строку 26 на такую ....
Патчи также называются diff-файлами или просто
диффами, потому что они генерируются программой
diff.Каталог pkg. В нем, как правило,
находятся три файла. Случается, что там помещают и более трех
файлов, но это уже зависит от конкретного порта. Большинству
требуются только три. Файлы такие:COMMENT. Это однострочное описание
программы.DESCR. Это более подробное,
зачастую многострочное описание программы.PLIST. Это список всех файлов,
которые будут установлены портом. В нем также содержатся
указания системе портов на удаление определенных файлов во
время удаления порта.Теперь, когда вы имеете достаточное количество информации о том,
для чего предназначена Коллекция портов, вы в состоянии установить ваш
первый порт. Это может быть сделано двумя способами, каждый из
которых будет описан ниже.Однако, прежде чем мы этим займемся, вам нужно выбрать порт для
установки. Есть несколько способов сделать это, самый простой из
которых заключается в использовании списка портов на сайте FreeBSD
. Вы можете просто полистать весь список портов или
воспользоваться возможностями поиска на сайте. Каждый порт также
включает описание, так что вы можете прочесть некоторую информацию о
каждом из портов, прежде чем решить его установить.Другой метод заключается в использовании команды
whereis. Чтобы ей воспользоваться, просто наберите
в приглашении whereis <программа, которую вы хотите
установить> и если она имеется в вашей системе, вам
об этом будет сообщено, примерно так:
&prompt.root; whereis xchat
xchat: /usr/ports/irc/xchat
&prompt.root;
Это значит, что xchat (клиентская программа для irc) находится в
каталоге /usr/ports/irc/xchat.Еще одним способом поиска конкретного порта является использование
встроенной возможности поиска Коллекции портов. Чтобы ею
воспользоваться, вы должны находиться в каталоге
/usr/ports. Очутившись в этом каталоге, выполните
команду make search key=program-name, где
program-name - это название программы, которую вы хотите
найти. Например, если вы ищете xchat:
&prompt.root; cd /usr/ports
&prompt.root; make search key=xchat
Port: xchat-1.3.8
Path: /usr/ports/irc/xchat
Info: An X11 IRC client using the GTK+ toolkit, and optionally, GNOME
Maint: jim@FreeBSD.org
Index: irc
B-deps: XFree86-3.3.5 bzip2-0.9.5d gettext-0.10.35 giflib-4.1.0 glib-1.2.6 gmake-3.77 gtk-1.2.6
imlib-1.9.8 jpeg-6b png-1.0.3 tiff-3.5.1
R-deps: XFree86-3.3.5 gettext-0.10.35 giflib-4.1.0 glib-1.2.6 gtk-1.2.6 imlib-1.9.8 jpeg-6b
png-1.0.3 tiff-3.5.1
Вам следует обратить особое внимание на строчку Path:,
так как в ней указывается, где найти программу. Остальная сообщаемая
информация для непосредственно установки порта не нужна, поэтому здесь
она не описывается.Для установки портов вы должны иметь привилегии пользователя
root.Теперь, когда вы нашли порт, который хотите установить, можно
выполнять реальную установку.Установка портов с компакт-дискаКак вы, наверное, уже предположили, исходя из названия раздела,
все, что здесь будет описано, предполагает, что у вас имеется набор
компакт-дисков FreeBSD. Если у вас его нет, вы можете заказать его с
сайта
FreeBSD Mall.Предположим, что ваш компакт-диск с FreeBSD находится в
дисководе, он смонтирован в каталог /cdrom (а
точкой монтирования обязан быть каталог
/cdrom), и вы готовы к установке порта. Чтобы
начать, смените текущий каталог на тот, в котором находится порт,
который вы хотите установить:
&prompt.root; cd /usr/ports/irc/xchatОказавшись в каталоге xchat, вы увидите скелет порта. Следующим
шагом является шаг компиляции (также называемый шагом построения)
порта. Это выполняется простой выдачей команды
make в ответ на приглашение командного процессора.
Как только вы это сделаете, вы увидите нечто, выглядящее примерно
так:
&prompt.root; make
>> xchat-1.3.8.tar.bz2 doesn't seem to exist on this system.
>> Attempting to fetch from file:/cdrom/ports/distfiles/.
===> Extracting for xchat-1.3.8
>> Checksum OK for xchat-1.3.8.tar.bz2.
===> xchat-1.3.8 depends on executable: bzip2 - found
===> xchat-1.3.8 depends on executable: gmake - found
===> xchat-1.3.8 depends on shared library: gtk12.2 - found
===> xchat-1.3.8 depends on shared library: Imlib.5 - found
===> xchat-1.3.8 depends on shared library: X11.6 - found
===> Patching for xchat-1.3.8
===> Applying FreeBSD patches for xchat-1.3.8
===> Configuring for xchat-1.3.8
...
[вывод конфигуратора опущен]
...
===> Building for xchat-1.3.8
...
[компиляция опущена]
...
&prompt.root;
Заметьте, что, как только компиляция закончится, вы снова
вернетесь к приглашению вашего командного процессора. Следующим
шагом является установка порта. Чтобы это сделать, вам нужно просто
добавить одно слово к команде make, а именно слово
install:
&prompt.root; make install
===> Installing for xchat-1.3.8
===> xchat-1.3.8 depends on shared library: gtk12.2 - found
===> xchat-1.3.8 depends on shared library: Imlib.5 - found
===> xchat-1.3.8 depends on shared library: X11.6 - found
...
[процедуры установки опущены]
...
===> Generating temporary packing list
===> Installing xchat docs in /usr/X11R6/share/doc/xchat
===> Registering installation for xchat-1.3.8
&prompt.root;
Как только вы вернулись к приглашению вашей оболочки, вы должны
суметь запустить приложение, которое только что установили.Вы можете сэкономить лишний шаг, просто выдав команду
make install вместо make и
последующей make install в двух отдельных
шагах.Пожалуйста, будьте готовы к тому, что лицензии некоторых
портов не позволяют помещать их на компакт-диск. Это может
делаться по разным причинам, например, из-за обязательности
заполнения регистрационной формы перед сгрузкой, если дальнейшее
распространение запрещено, и так далее. Если вы хотите установить
порт, которого нет на компакт-диске, вам нужно иметь подключение к
Интернет, чтобы это сделать (обратитесь к следующему разделу).Установка портов из ИнтернетКак и в предыдущем разделе, здесь предполагается, что у вас
имеется работающее подключение к Интернет. Если это не ваш случай,
вам нужно производить установку с
компакт-диска.Установка порта из Интернет производится точно так же, как если
бы делали ее с компакт-диска. Единственным отличием между ними
является тот факт, что исходный код сгружается из Интернет, а не
берется с компакт-диска.Выполняются те же самые шаги:
&prompt.root; make install
>> xchat-1.3.8.tar.bz2 doesn't seem to exist on this system.
>> Attempting to fetch from http://xchat.org/files/v1.3/.
Receiving xchat-1.3.8.tar.bz2 (305543 bytes): 100%
305543 bytes transferred in 2.9 seconds (102.81 Kbytes/s)
===> Extracting for xchat-1.3.8
>> Checksum OK for xchat-1.3.8.tar.bz2.
===> xchat-1.3.8 depends on executable: bzip2 - found
===> xchat-1.3.8 depends on executable: gmake - found
===> xchat-1.3.8 depends on shared library: gtk12.2 - found
===> xchat-1.3.8 depends on shared library: Imlib.5 - found
===> xchat-1.3.8 depends on shared library: X11.6 - found
===> Patching for xchat-1.3.8
===> Applying FreeBSD patches for xchat-1.3.8
===> Configuring for xchat-1.3.8
...
[вывод конфигуратора опущен]
...
===> Building for xchat-1.3.8
...
[компиляция опущена]
...
===> Installing for xchat-1.3.8
===> xchat-1.3.8 depends on shared library: gtk12.2 - found
===> xchat-1.3.8 depends on shared library: Imlib.5 - found
===> xchat-1.3.8 depends on shared library: X11.6 - found
...
[процедуры установки опущены]
...
===> Generating temporary packing list
===> Installing xchat docs in /usr/X11R6/share/doc/xchat
===> Registering installation for xchat-1.3.8
&prompt.root;
Как вы видите, единственным отличием является строка, в которой
указывается, откуда система сгружает порт.Это все об установке портов на вашу систему. Далее вы узнаете,
как удалить порт из вашей системы.Удаление установленных портовТеперь, когда вы знаете, как устанавливать порты, вы наверное, уже
задумывались о том, как же их удалять, просто даже на тот случай, если
вы установили один из них, а позже решили, что установили не тот порт.
Следующие несколько абзацев будут посвящены именно
этому вопросу.Сейчас мы займемся удалением порта из нашего предыдущего примера
(а это была программа xchat, если вы обратили внимание). Как и при
установке портов, первым делом вы должны перейти в каталог с портом,
которым, как вы помните, был /usr/ports/irc/xchat.
После смены каталога вы готовы к удалению xchat. Это делается командой
make deinstall (подходящее название?):
&prompt.root; cd /usr/ports/irc/xchat
&prompt.root; make deinstall
===> Deinstalling for xchat-1.3.8
&prompt.root;
Это было достаточно легко. Вы успешно удалили xchat из вашей
системы. Если вам захочется переустановить эту программу, то это
можно будет сделать, выдав команду make reinstall
из каталога /usr/ports/irc/xchat.Устранение некоторых проблемВ этом разделе затронуты некоторые из наиболее часто задаваемых
вопросов о Коллекции портов и описаны основные методы устранения
проблем, а также рассказано, что делать, если порт не работает.Некоторые Вопросы и ОтветыЯ думал, здесь будут обсуждаться модемы??!А, вы, наверное, имеете в виду последовательные порты на
задней панели вашего компьютера. Здесь мы используем слово
порт в смысле результата портирования
(переноса) программы с одной версии UNIX на другую.Я думал, что для установки дополнительных программ
вы посоветуете использовать пакаджи?Да, обычно это самый легкий и быстрый способ сделать
это.Если так, то зачем тогда возиться с портами?На это есть несколько причин:Условия лицензирования некоторых пакетов программного
обеспечения запрещают распространение в виде двоичного кода.
Они должны распространяться в виде исходного кода.Некоторые не доверяют дистрибутивам в виде двоичного
кода. В конце концов, исходный код вы можете (теоретически)
прочесть сами и найти причины появления возможных
проблем.Если у вас есть свои собственные патчи, то вам нужен
исходный код для того, чтобы их применить.У Вас может быть своё мнение по поводу того, как именно
должна быть скомпилирована программа, и это мнение может
отличаться от мнения того человека, который создавал
пакадж—некоторые очень строго придерживаются
определённых настроек параметров оптимизации, а также того,
строить ли отладочные версии, а затем убирать отладочную
информацию командой strip или нет, и так далее.Как правило. пакаджи строятся с весьма консервативными,
стандартными настройками. Если в порте присутствует параметр
компиляции, задающий использование кода, специфичного для
некоторого процессора или нестандартного адаптера, то Вы
можете включить его использование сами, не привлекая людей,
создающих порты, к генерации множества различных версий
пакаджей.Самым обычным исключением их этого правила являются размеры
бумаги. Хотя может быть создан пакадж с поддержкой по
умолчанию различных размеров бумаги, зачастую мы делаем
несколько пакаджей, по одному на конкретный размер
бумаги.Некоторым нравится иметь всегда под рукой исходный код,
так что они могут его читать, если им станет скучно, хакать
его, заимствовать оттуда что-либо (конечно, если это
позволяет лицензионное соглашение), и так далее.Если у вас нет исходных текстов, то это не программы!
;-)Что такое патч?Патч - это маленький файл, в котором указано, как перейти от
одной версии файла к другой. Он имеет формат обычного текста, и,
как правило, содержит указания типа удалить строку
23, добавить вот эти две строки после строки
468 или заменить строку 197 вот на такую.
Их также называют дифф-файлами или просто диффами, потому что
они создаются программой diff.Что это за tar-файлы?Это файлы, оканчивающиеся на .tar или,
как вариант, на .tar.gz,
.tar.Z, .tar.bz2 и даже
.tgz.В основном такие файлы представляют собой дерево каталогов,
которое было заархивировано в один файл
(.tar) и (может быть) подвергнуто сжатию
(.gz). Такая методика первоначально
использовалась для архивов на лентах Tape
ARchives (откуда, собственно, и пошло слово
tar), и она широко используется для
распространения исходного кода программ в Интернет.Вы можете просмотреть, какие файлы находятся в этих архивах,
или даже самостоятельно извлечь их с помощью стандартной для UNIX
программы tar, включенной в стандартную поставку системы FreeBSD,
как здесь:
&prompt.user; tar tvzf foobar.tar.gz
&prompt.user; tar xzvf foobar.tar.gz
&prompt.user; tar tvf foobar.tar
&prompt.user; tar xvf foobar.tarА контрольная сумма?Это число, получаемое в результате сложения содержимого того
файла, который вы хотите проконтролировать. Если меняется хоть
один символ, контрольные суммы перестают совпадать, так что
простое их сравнение поможет выявить изменение.Я делал все, что здесь сказано, при компиляции портов с
компакт-диска и все прекрасно работало до тех пор, пока я не
попытался установить порт программы kermit.
&prompt.root; make install
>> cku190.tar.gz doesn't seem to exist on this system.
>> Attempting to fetch from ftp://kermit.columbia.edu/kermit/archives/.
Почему он не может быть найден? У меня не тот
компакт-диск?Как уже было сказано в главе о компиляции портов с компакт-диска,
некоторые порты не могут быть помещены на CDROM из-за их
лицензионных ограничений. Kermit является примером такого
приложения. Его условия лицензирования не позволяют нам
поместить его tar-файл на компакт-диск, так что вам придется
скачать его вручную—извините!Причиной, по которой вы получили все эти сообщения об
ошибках, является то, что в тот момент вы не были подключены к
Интернет. Как только вы скачаете этот файл с любого из
MASTER_SITES (перечисленных в Makefile), то сможете начать
процесс установки заново.Я это сделал, но, когда я попытался поместить этот файл в
каталог /usr/ports/distfiles, то получил
сообщение об ошибке, сообщающее об отсутствии прав
доступа.При работе система портов ищет tar-файл в каталоге
/usr/ports/distfiles, однако вы не сможете
скопировать туда ничего, потому что это на самом деле это
символическая ссылка на компакт-диск, который доступен только для
чтения. Вы можете заставить систему выполнять поиск в другом
месте, сделав следующее:
&prompt.root; make DISTDIR=/where/you/put/it installСистема портов работает, только когда все находится в
каталоге /usr/ports? Администратор нашей
системы сказал, что я должен держать все свои файлы в
/u/people/guests/wurzburger, но тогда ничего
не работает.Для того, чтобы указать системе построения портов на
использование других каталогов, вы можете использовать переменные
PORTSDIR и PREFIX. В
частности,
&prompt.root; make PORTSDIR=/u/people/guests/wurzburger/ports installбудет строить порт в каталоге
/u/people/guests/wurzburger/ports, а
устанавливать все в /usr/local.
&prompt.root; make PREFIX=/u/people/guests/wurzburger/local installбудет строить порт в каталоге /usr/ports
и устанавливать в
/u/people/guests/wurzburger/local.И, наконец,
&prompt.root; make PORTSDIR=../ports PREFIX=../local installиспользует обе переменные (этот пример слишком длинен для
помещения на страницу полностью, но вы должны уловить общую
идею).
+ Некоторые порты, использующие &man.imake.1; (часть X Windows
+ System), не очень хорошо работают с PREFIX, и
+ всё равно будут пытыться устанавливаться в каталог
+ /usr/X11R6. Подобным же образом некоторые
+ порты на языке Perl игнорируют значение PREFIX и
+ устанавливаются в дерево Perl. Заставить такие порты работать с
+ PREFIX трудно или невозможно.
+
Если вам не нравится набирать все это каждый раз при
установке портов, можно поместить эти переменные в ваше
окружение. Прочтите страницы Справочника по вашему командному
процессору и найдите, как это сделать.У меня нет компакт-диска с FreeBSD, но я хочу скопировать все
tar-файлы вручную на мою систему, чтобы при установке порта не
ждать каждый раз, когда же он скачается. Есть ли способ получить
все эти файлы сразу?Чтобы скачать все tar-файлы для Коллекции портов,
сделайте вот что:
&prompt.root; cd /usr/ports
&prompt.root; make fetchЧтобы скачать все tar-файлы для какого-то одного каталога
из дерева портов, выполните следующее:
&prompt.root; cd /usr/ports/directory
&prompt.root; make fetchну а что касается одного конкретного порта—ну, я думаю,
вы уже догадались, что вам нужно сделать.Я знаю, что, скорее всего, быстрее получится скачивать
tar-файлы с одного из ближайших зеркальных серверов FreeBSD.
Есть ли способ указать, что порты нужно сгружать оттуда, а не
с серверов, указанных в качестве MASTER_SITES?Да. Если вы, например, знаете, что ftp.FreeBSD.org гораздо ближе к вам, чем
сайты, перечисленные в строке MASTER_SITES, то
сделайте так:
&prompt.root; cd /usr/ports/directory
&prompt.root; make MASTER_SITE_OVERRIDE= \
ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ fetchЯ хочу знать, какие файлы нужно будет скачать при выполнении
команды make до того, как они начнут
скачиваться.Команда make fetch-list выдаст список
файлов, которые нужны для построения порта.Есть ли способ предотвратить компиляцию порта? Я хочу
немножко покопаться в исходных текстах до того, как буду
устанавливать порт, однако несколько поднадоедает каждый раз
следить и нажимать в нужный момент control-C.При выполнении команды make extract
процесс построения остановится после того, как будет сгружен и
распакован исходный код порта.Я пытаюсь создать собственный порт и хочу отключить
компиляцию до тех пор, пока не увижу, что мои патчи работают
нормально. Есть ли команда типа make extract,
но работающая для патчей?Ага, make patch - это то, что вы ищете.
Также вам может оказаться полезным параметр
PATCH_DEBUG. И кстати, благодарим вас за ваши
усилия!Я слышал, что некоторые параметры работы компилятора могут
приводить к ошибкам. Это правда? Как я могу быть уверенным, что
порт компилируется с правильными параметрами?Да, в версии 2.6.3 компилятора gcc
(которая поставлялась с FreeBSD 2.1.0 и 2.1.5), параметр
-O2
мог приводить к генерации ошибочного кода,
если вы не использовали также опцию
-fno-strength-reduce
. (Большинство портов не
используют параметр
-O2
). У вас
должно получиться указание используемых
параметров компилятора примерно следующим образом:
&prompt.root; make CFLAGS='-O2 -fno-strength-reduce' installили посредством редактирования
/etc/make.conf, но, к сожалению, не все
порты это поддерживают. Самый надежный способ - это выполнить
команду make configure, а затем перейти в
каталог с исходными текстами и изучить файлы Makefile
вручную, но это может оказаться утомительным занятием, если
исходный код имеет много подкаталогов, каждый с собственными
make-файлами.Параметры компиляции по умолчанию во FreeBSD достаточно
консервативны, так что если Вы их не меняли, то и проблем возникнуть
не должно.Портов так много, что трудно найти именно тот, который мне
нужен. Есть ли где-нибудь список всех имеющихся портов?Взгляните на файл INDEX в каталоге
/usr/ports. Если вы хотите выполнить поиск
в коллекции портов по ключевому слову, вы это тоже осуществимо.
Например, вы можете найти порты, связанные с языком
программирования LISP, с помощью команды:
&prompt.user; cd /usr/ports
&prompt.user; make search key=lispЯ начал устанавливать порт foo, однако
система неожиданно остановила компиляцию и стала компилировать
порт bar. Что, собственно, произошло?Порту foo требуется что-то, имеющееся в
порту bar — например, если
foo использует графику, в
bar может присутствовать библиотека с
полезными функциями обработки графики. Или
bar может быть инструментом, который необходим
для компиляции порта foo.
Я установил программу grizzle из портов и
оказалось, что это бесполезная трата дискового пространства. Я
хочу удалить ее, но не знаю, где находятся все файлы этой
программы. Что посоветуете?Нет проблем, просто сделайте следующее:
&prompt.root; pkg_delete grizzle-6.5Альтернативным способом является:
&prompt.root; cd /usr/ports/somewhere/grizzle
&prompt.root; make deinstallМинуточку, вы же должны знать номер версии для использования
в этой команде. Вы всерьез полагаете, что я должен их все
помнить??Вовсе нет, вы можете выяснить это с помощью:
&prompt.root; pkg_info -a | grep grizzle
Information for grizzle-6.5:
grizzle-6.5 - the combined piano tutorial, LOGO interpreter and shoot 'em up
arcade game.
Если говорить о дисковом пространстве, то каталог с портами,
похоже, занимает ужасно много места. Можно ли удалять отсюда
что-нибудь?Да, если вы установили программу и достаточно уверены,
что ее исходные тексты вам больше не понадобятся, то хранить их
вовсе не обязательно. Лучше сделать это так:
&prompt.root; cd /usr/ports
&prompt.root; make cleanв результате чего будет сделан проход по всем подкаталогам и
произойдет удаление всего, кроме скелетов каждого порта.Я попробовал сделать так, но все равно все эти архивы или как
там вы их называете, остались в каталоге
distfiles. Могу ли я удалить и их
тоже?Да, если вы уверены, что с ними покончено, то их тоже можно
удалить. Их можно удалить вручную, или командой
make distclean.Мне нравится иметь все больше и больше программ для того,
чтобы поиграться с ними. Есть ли способ установить все порты за
раз?Просто сделайте вот так:
&prompt.root; cd /usr/ports
&prompt.root; make installБудьте внимательны, потому что некоторые порты могут
устанавливать файлы с уже имеющимися именами. Если Вы
устанавливаете два работающих с графикой приложения, и оба они
устанавливают файл /usr/local/bin/plot, то
у вас однозначно возникнут проблемы.OK, я попробовал сделать это, но подумал, что этот процесс
займет очень много времени, так что пошел спать, оставив все
работать. Когда же я посмотрел утром на компьютер, то было
откомпилировано только три с половиной порта. Что-то было
сделано не так?Нет, проблема в том, что некоторые порты задают вам вопросы,
на которые мы не можем ответить за вас (например, Хотите
ли вы печатать на листы формата A4 или US letter?), но
на эти вопросы кто-то должен ответить.Я вовсе не хочу провести весь день, пялясь в монитор. Есть
идеи получше?OK, перед тем, как идти в кроватку/на работу/парк отдыха,
сделайте вот что:
&prompt.root cd /usr/ports
&prompt.root; make -DBATCH installПри этом будут установлены все порты, которым
не нужно взаимодействовать с пользователем.
Затем, когда вы вернетесь, сделайте:
&prompt.root; cd /usr/ports
&prompt.root; make -DIS_INTERACTIVE installчтобы завершить работу.На моей работе используется программа
frobble, которая есть в вашей Коллекции
портов, однако мы ее несколько исправили, чтобы получить то, что
нужно. Есть ли способ создания наших собственных пакаджей для их
распространения по нашим сайтам?Нет проблем, полагая, что вы знаете, как сделать патчи
с вашими изменениями:
&prompt.root; cd /usr/ports/somewhere/frobble
&prompt.root; make extract
&prompt.root; cd work/frobble-2.8
[Apply your patches]
&prompt.root; cd ../..
&prompt.root; make packageЭта система портов - весьма хитрая штука. Я не могу понять,
как вы это делаете. В чем секрет?Здесь нет никакого секрета, просто взгляните на файлы
bsd.port.mk и
bsd.port.subdir.mk в каталоге с
make-файлами.(Читателям, испытывающим дурноту при чтении скриптов,
советуем не переходить по этой ссылке...)Помогите! Этот порт не работает!Если вы встретили порт, который у вас не работает, есть несколько
вещей, которые вы можете сделать, а именно:Исправьте его!
Раздел о создании
портов должен вам помочь.Надавите—только по электронной почте!
Сначала пошлите письмо человеку, сопровождающему порт. Наберите
команду make maintainer или прочтите
Makefile, чтобы найти его адрес. Не забудьте
указать имя и версию порта (скопировав строчку
$FreeBSD: из файла Makefile)
и включите в письмо весь вывод, предшествующий возникновению ошибки.
Если вы не получили ответа от этого человека, то можете
воспользоваться командой send-pr для посылки
сообщения об ошибке.Забудьте об этом. Это самый простой путь—лишь весьма
незначительное число портов можно отнести к разряду жизненно
необходимых. Также имеется большая вероятность того, что
все проблемы будут исправлены в следующей версии при обновлении
порта.Сгрузите пакадж с ближайшего к вам сервера.
Основная коллекция пакаджей находится на сервере
ftp.FreeBSD.org в каталоге
с пакаджами, но первым делом проверьте
местное зеркало! Это, скорее всего, будет работать, и сделать это,
кроме того, будет гораздо быстрее, чем пытаться компилировать порты
из исходного кода. Воспользуйтесь программой &man.pkg.add.1; для
установки пакаджа в вашей системе.Вопросы повышенной сложностиОписание, которое здесь было, для удобства перемещено в отдельное Руководство по портированию.
Пожалуйста, обращайтесь к нему, если вы собираетесь создавать и присылать
нам ваши порты.
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
@@ -1,1404 +1,1477 @@
-X Window System
+ X Window System
-
- Этот раздел нам любезно предоставил &a.grog;, и он взят из
- его книги, The
- Complete FreeBSD, соответственно, все права остаются за ним.
- Изменения, требуемые для помещения в Руководство, выполнил
- &a.jim;.
+ Этот раздел нам любезно предоставил &a.grog;, и он взят из
+ его книги The Complete
+ FreeBSD, соответственно, все права остаются за ним. Изменения,
+ требуемые для помещения в Руководство, выполнил &a.jim;. Раздел о шрифтах
+ в XFree86 предоставил &a.murray;.ПредназначениеСледующий раздел посвящен установке и настройке X11 на вашей
системе. Узнать более подробную информацию о X11, а также выяснить,
поддерживается ли ваш видеоадаптер, можно на сайте проекта XFree86.Общий обзорВместе с FreeBSD поставляется XFree86, порт X11R6, поддерживающий
несколько различных версий UNIX на платформе Intel. Эта глава
рассказывает о том, как настроить ваш сервер XFree86. Она написана
на основе материалов, поставляемых с релизом для FreeBSD, в частности,
файлов README.FreeBSD и README.Config из каталога
/usr/X11R6/lib/X11/doc. Если Вы найдете какие-либо
разночтения, то содержимое этих файлов содержит самую последнюю
информацию. Кроме того, в файле
/usr/X11R6/lib/X11/doc/RELNOTES содержится
независимая от ОС информация о текущем релизе.X использует много памяти. Для того, чтобы работать с X, вашей
системе абсолютно необходимо иметь не менее 8 МБ оперативной памяти,
однако с таким маленьким объемом памяти производительность будет
болезненно низка. Более разумным минимумом является 16 МБ, и Вы можете
увеличить производительность, добавив еще оперативной памяти. Если Вы
используете X весьма интенсивно, то увеличение производительности может
наблюдаться при увеличения объемов ОЗУ до 128 МБ.В оставшейся части главы содержится масса полезной информации, но
может быть, что прямо сейчас вам информация не нужна, а все, что вам
нужно - это запустить ваш X-сервер и начать работу. Однако, мы
предупреждаем :Неправильная установка может сжечь ваш монитор или графический
адаптер.Однако, если Вы считаете себя специалистом, у вас стандартный
адаптер Super VGA и хороший многочастотный монитор, то, вероятнее всего,
вам удастся запустить все и начать работу без чтения этого
раздела.Установка XFree86Самый легкий способ установки XFree86 заключается в использовании
программы sysinstall либо при установке системы, либо позже, запустив
/stand/sysinstall. Оставшуюся часть главы мы
посвятим рассмотрению того, что представляет собой дистрибутив, а также
рассмотрим, как делается ручная установка X11.Дистрибутив XFree86XFree86 распространяется в виде сбивающего с толку набора архивных
файлов. В следующем разделе мы рассмотрим, что Вы должны установить.
Однако сильно об этом не беспокойтесь; если Вы не можете решить, что же
нужно выбрать и у вас всего есть 200 МБ свободного дискового
пространства, то этого хватит для распаковки всего набора.Минимально вам нужно распаковать архивы, перечисленные в следующей
таблице, а также по крайней мере один сервер, соответствующий вашему
адаптеру VGA. Вам потребуется 10 МБ для минимально необходимых для
работы бинарных файлов и от 1.7 до 3 МБ для сервера.Далее помещена таблица требуемых компонентов.АрхивОписаниеXbin.tgzВсе выполнимые клиентские X-приложения и совместно
используемые библиотеки.Xfnts.tgzШрифты misc и 75 dpi.Xlib.tgzФайлы данных и библиотеки, необходимые во время
работы.X-серверКроме вышеперечисленных архивов, вам требуется по крайней мере
один сервер, занимающий порядка 3 МБ дискового пространства. Его выбор
в основном зависит от типа имеющегося графического адаптера. Именем
сервера по умолчанию является /usr/X11R6/bin/X,
и это ссылка на конкретный выполнимый файл сервера
/usr/X11R6/bin/XF86_xxxx. Архивы с серверами
для стандартной архитектуры PC находятся в
/cdrom/XF86336/Servers, а серверы для
архитектуры PC98, используемой в Японии, помещены в
/cdrom/XF86336/PC98-Servers, если Вы работаете
с дистрибутивом на компакт-дисках. Кроме того, они доступны на нашем
FTP-сервере по адресу
ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/&rel.current;-RELEASE/XF86336/Servers/
или
ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/&rel.current;-RELEASE/XF86336/PC98-Servers/Имеющиеся X-серверы для стандартной архитектуры PC:АрхивОписаниеX8514.tgz8-битный цвет для IBM 8514 и полностью совместимых
адаптеров.XAGX.tgz8 и 16-битный цвет для адаптеров AGX и XGA.XI128.tgz8 и 16-битный цвет для адаптеров I128.XMa32.tgz8 и 16-битный цвет для адаптеров ATI Mach32.XMa64.tgz8, 16 и 32-битный цвет для адаптеров ATI Mach64.XMa8.tgz8-битный цвет для адаптеров ATI Mach8.XMono.tgz1-битный монохром для VGA, Super-VGA, Hercules и других
адаптеров.XP9K.tgz8, 16 и 32-битный цвет для адаптеров Weitek P9000 (Diamond
Viper).XS3.tgz8, 16 и 32-битный цвет для адаптеров S3.XS3V.tgz8 и 16-битный цвет для адаптеров S3 ViRGE.XSVGA.tgz>=8-битный цвет для адаптеров Super-VGA.XVG16.tgz4-битный цвет для адаптеров VGA и Super-VGA.XW32.tgz8-битный цвет для адаптеров ET4000/W32, /W32i, /W32p и
ET6000.Имеющиеся X-серверы для архитектуры PC98 (Япония):АрхивОписаниеX9GAN.tgz8-битный цвет для адаптеров PC98 GA-98NB/WAP.X9GA9.tgz8, 16 и 32-битный цвет для адаптеров PC98 S3 GA-968.X9480.tgz8-битный цвет для PC98 PEGCX9NKV.tgz8-битный цвет для адаптеров PC98 NEC-CIRRUS/EPSON
NKV/NKV2.X9WBS.tgz8-битный цвет для адаптеров PC98 WAB-S.X9WEP.tgz8-битный цвет для адаптеров PC98 WAB-EP.X9WSN.tgz8-битный цвет для адаптеров PC98 WSN-A2F.X9EGC.tgz4-битный цвет для PC98 EGC.X9TGU.tgz8 и 16-битный цвет для адаптеров PC98 Trident
Cyber9320/9680.X9NS3.tgz8 и 16-битный цвет для адаптеров PC98 NEC S3.X9SPW.tgz8 и 16-битный цвет для адаптеров PC98 S3 PW/PCSKB.X9LPW.tgz8 и 16-битный цвет для адаптеров PC98 S3 PW/LB.К каждому их этих серверов прилагается страница Справочника,
в которой даны подробности относительно поддерживаемых чипсетов и
конфигурационных параметров, специфичных для этого сервера.Имеется также несколько архивов, предназначенных разработчикам
приложений для X:АрхивОписаниеXprog.tgzФайлы config, lib*.a и
*.h, необходимые для компиляции
программ-клиентов.Xctrb.tgzИсходные тексты.Xlk98.tgzПакет компоновки для построения серверов,
версия для PC98 (Япония).Xlkit.tgzПакет компоновки для построения серверов,
обычная архитектура PC.Xsrc-1.tgzЧасть 1 полных исходных текстов.Xsrc-2.tgzЧасть 2 полных исходных текстов.Xsrc-3.tgzЧасть 3 полных исходных текстов.Если Вы собираетесь устанавливать приложения для X из портов,
то вам нужен архив Xprog.tgz.В поставку XFree86 также включено некоторое количество
необязательных компонентов, таких, как документация и программы
настройки.АрхивОписаниеXdoc.tgzФайлы READMEXjdoc.tgzФайлы README на японском языке.Xps.tgzФайлы README в формате PostScript.Xhtml.tgzФайлы README в формате HTML.Xman.tgzСтраницы Справочника.Xcfg.tgzКонфигурационные файлы программ xinit и
xdm.Xset.tgzУтилита X86Setup; графическая версия
программы xf86config.Xjset.tgzУтилита XF86Setup, японоязычная версия,
для обычной архитектуры PC.XF86Setup является программой настройки для
XFree86, и Вы можете выбрать ее, а не стандартную программу
настройки xf86config. Для получения
xf86config вам не нужно никаких дополнительных
архивов; эта утилита включена в Xbin.tgz.Во время первой установки для создания начальных конфигурационных
файлов вам нужно иметь Xcfg.tgz. Не используйте
этот файл при обновлении; он перезапишет ваши конфигурационные
файлы.Вместе с XFree86 поставляются дополнительные шрифты:АрхивОписаниеXf100.tgzШрифты 100 dpi.Xfscl.tgzШрифты типа Speedo и Type1.Xfnon.tgzЯпонские, китайские и другие неанглийские шрифты.Xfcyr.tgzШрифты с кириллицей.В отличие от X-серверов, указанных выше, архивы для следующих
серверов все находятся в основном каталоге.АрхивОписаниеXfsrv.tgzСервер шрифтов.Xnest.tgzСервер, запускаемый как окно приложения-клиента на другом
дисплее.Xprt.tgzСервер печати.Xvfb.tgzСервер Virtual Framebuffer, отображающийся в память
или mmap-файл.Ручная установка XFree86Если для установки X Вы не использовали программу sysinstall, то
вам нужно выполнить несколько шагов:Создать каталоги и распаковать нужные архивы.Выбрать и установить X-сервер.Настроить рабочее окружение для работы с X.Найти виртуальный терминал для запуска X.Настроить X под ваше оборудование.На первый взгляд это кажется большой работой, однако если вы
будете делать все методично, все не так уж и плохо. В оставшейся части
раздела мы рассмотрим по порядку каждый шаг.Распаковка архивовВы должны распаковывать архивы, работая как пользователь root,
потому что некоторые выполнимые файлы имеют установленный атрибут
set-user-id (они будут иметь привилегии пользователя root при
запуске другими пользователями). Если Вы распакуете архивы, работая
в качестве рядового пользователя, у вас может не получиться их
запустить. Также Вы должны установить значение маски прав umask в
022 (права rwxr-xr-x), так как X-серверу требуются особые
права.
&prompt.user; su
Password:
&prompt.root; umask 022Если в файловой системе /usr недостаточно
дискового пространства, создайте каталог в другом разделе и
сделайте на него символическую ссылку из /usr. Например, если
файловая система /home имеет достаточно
места, Вы можете сделать следующее:
&prompt.root; cd /home
&prompt.root; mkdir X11R6
&prompt.root; ln -s /home/X11R6 /usr/X11R6Затем определитесь, какие архивы Вы хотите установить. Для
минимальной установки выберите Xbin.tgz,
Xfnts.tgz, Xlib.tgz и
Xcfg.tgz. Если X уже сконфигурированы под
ваше оборудование, то Вы можете опустить
Xcfg.tgz.Если Вы используете sh, выполните распаковку вот так:
&prompt.root; mkdir -p /usr/X11R6
&prompt.root; cd /usr/X11R6
&prompt.root; for i in bin fnts lib cfg; do
&prompt.root; tar xzf X$i.tgz
&prompt.root; doneЕсли Вы используете csh, то выполните:
&prompt.root; mkdir -p /usr/X11R6
&prompt.root; cd /usr/X11R6
&prompt.root; foreach i (bin fnts lib cfg)? tar xzf X$i.tgz?endУстановка сервераВыберите архивный файл с сервером, соответствующим вашему
адаптеру VGA. Если таблица, приведенная в предыдущем разделе, не
дала вам достаточно подробную информацию, посмотрите страницы
Справочника по серверу,
/usr/X11R6/man/man1/XF86_*, в которых приведены
списки чипсетов VGA, поддерживаемых каждым сервером. Например, если
у вас адаптер на основе чипсета ET4000, то Вы будете использовать
сервер XF86_SVGA. В таком случае Вы должны
выполнить такие команды:
&prompt.root; cd /usr/X11R6
&prompt.root; tar xzf XSVGA.tgz [укажите здесь имя вашего сервера]Настройка рабочего окруженияТеперь вам может понадобиться создать символическую ссылку
/usr/X11/bin/X, которая указывает на сервер,
соответствующий вашему графическому адаптеру. В этом примере это
сервер XF86_SVGA:
&prompt.root; cd /usr/X11R6/bin
&prompt.root; rm X
&prompt.root; ln -s XF86_SVGA XСимволическая ссылка нужна системе X для того, чтобы она работала
нормально, и у вас есть возможность ее создать после запуска
xf86config – смотрите ниже.Затем убедитесь, что каталог /usr/X11R6/bin
включен в маршрут поиска по умолчанию в файле
/etc/profile в случае командного процессора sh
или в файле /etc/csh.login при использовании
оболочки csh, и добавьте туда этот маршрут, если его там нет. Лучше
всего сделать это в редакторе, но если вам нужен немедленный
результат, Вы можете ввести:
&prompt.root; echo 'PATH=$PATH:/usr/X11R6/bin' >>/etc/profileили:
&prompt.root; echo 'set path = ($path /usr/X11R6/bin)' >>/etc/csh.loginДругой способ заключается в помещении всеми, кто работает с X,
пути /usr/X11R6/bin в переменные окружения
PATH своего командного процессора.Теперь вызовите программу ldconfig для помещения совместно
используемых библиотек в кэш для ld.so:
&prompt.root; ldconfig -m /usr/X11R6/libВы можете не запускать ldconfig, если
собираетесь выполнить перезагрузку перед началом работы с X.Вам не нужно распаковывать файлы шрифтов, но если Вы это
сделаете, то должны будете запустить команду
mkfontdir в соответствующем каталоге со шрифтами,
иначе ваш сервер аварийно завершит работу, выдав сообщение
could not open default font `fixed'.Назначение для X виртуального терминалаТеперь убедитесь, что у вас есть неиспользуемая виртуальная
консоль с запущенной на ней программой getty. Сначала определите,
сколько у вас всего имеется виртуальных консолей:
&prompt.root; dmesg | grep virtual
sc0: VGA color <16 virtual consoles, flags=0x0>
Затем загляните в файл /etc/ttys для того,
чтобы убедиться в наличии по крайней мере одного виртуального
терминала (устройства ttyvxx), на котором не запущена getty. Поищите
ключевое слово off:
&prompt.root; grep ttyv /etc/ttys
ttyv0 "/usr/libexec/getty Pc" cons25 on secure
ttyv1 "/usr/libexec/getty Pc" cons25 on secure
ttyv2 "/usr/libexec/getty Pc" cons25 on secure
ttyv3 "/usr/libexec/getty Pc" cons25 off secure
В нашем случае, если в ядре отконфигурировано по крайней мере 4
VT, то доступен терминал /dev/ttyv3. Если это
не так, то либо запретите запуск getty в файле
/etc/ttys, сменив ключевое слово с on на off,
либо построив ядро с большим количеством виртуальных
терминалов.Настройка X под ваше оборудованиеПосле установки программного обеспечения для работы с X вам
нужно настроить файл XF86Config, который
используется X-сервером для определения параметров вашего
оборудования и способа запуска.Чтобы настроить файл XF86Config, вам
потребуется следующая информация об оборудовании:Тип вашей мыши, скорость обмена в случае мыши, подключенной к
последовательном порту, и имя устройства, к которому она
подключена. Как правило, это будет устройство
/dev/ttyd0 или
/dev/ttyd1 в случае мыши, подключенной к
последовательному порту, /dev/psm0 в случае
мыши PS/2 и /dev/mse0, если это мышь типа
bus mouse.Тип графического адаптера и объем видеопамяти. Если это
безымянный адаптер, выясните, какой чипсет VGA он
использует.Параметры вашего монитора; частоты вертикальной и
горизонтальной развертки.Идентификация оборудованияКак Вы определяете, какое оборудование используется?
Производитель должен сообщить об этом, но зачастую информация,
которая сообщается о вашем графическом адаптере и мониторе является
ничтожной; Super VGA board with 76 Hz refresh rate and
16,777,216 colors. Это говорит вам о максимально возможной
глубине цвета (24 бита – - число цветов равно 2 в степени,
равной глубине цвета), но ничего больше о графическом
адаптере.Как мы увидим позже, реально необходимыми параметрами являются
максимальная частота горизонтальной развертки, dot clock range,
чипсет и объем памяти адаптера.Вам может не повезти в попытках выяснить эту информацию
полностью, но Вы можете получить ее часть с помощью программы
SuperProbe. Она всегда должна суметь определить
чипсет и объем памяти адаптера.Работа программы SuperProbe может вызвать
аварийный сбой в работе вашей системы. Не делайте ничего важного
при запуске этой программы. Запуск SuperProbe выглядит примерно
так:
&prompt.root; SuperProbe
(предупреждения и сообщения опущены)
First video: Super-VGA
Chipset: Tseng ET4000 (Port Probed)
Memory: 1024 Kbytes
RAMDAC: Generic 8-bit pseudo-color DAC
(with 6-bit wide lookup tables (or in 6-bit mode))
Программа SuperProbe сама по себе весьма
придирчива, и Вы будете часто получать сообщения, похожие на
такое:
SuperProbe: Cannot be run while an X server is running
SuperProbe: If an X server is not running, unset $DISPLAY and try again
SuperProbe: Cannot open video
Другими словами, даже если X-сервер не запущен,
SuperProbe не будет работать, если у вас
определена переменная окружения DISPLAY. Как от
нее избавиться? В случае использования командного процессора в стиле
Bourne, выполните:
&prompt.root; unset DISPLAYЕсли у вас C shell, то выполните:
&prompt.root; unsetenv DISPLAYЗапуск xf86configСоздать ваш конфигурационный файл можно просто, воспользовавшись
одной из утилит xf86config (отметьте регистр
букв) или XF86Setup. Обе программы проведут вас
через процедуру настройки шаг за шагом. Программа
xf86config работает в текстовом режиме, когда как
XF86Setup - в графическом. С утилитой
XF86Setup могут быть проблемы с необычным
оборудованием, так что я предпочитаю
xf86config.Вы можете также использовать sysinstall, однако это практически
ничего не изменит; sysinstall просто
запускает xf86config, так что проще запустить его
непосредственно. В этом разделе в примерах мы будем иллюстрировать
процесс настройки через xf86config. Мы
устанавливаем X для древнего адаптера Diamond SpeedStar с 1 МБ
видеопамяти, мышь Logitech MouseMan и монитор ADI MicroScan 5AP.
Мышь подключена к системе через первый последовательный порт,
/dev/ttyd0.Для запуска xf86config введите его имя. Если
каталог /usr/X11R6/bin включен в переменную
вашего окружения PATH, вам достаточно набрать
xf86config. Если это н так, вам придется набрать
полный путь к xf86config, например, так:
&prompt.root; /usr/X11R6/bin/xf86configЭта программа создаст первоначальный файл
XF86Config на основании того, что Вы выберите
с помощью системы меню.Файл XF86Config обычно находится в каталоге
/usr/X11R6/lib/X11 или
/etc. Пример файла
XF86Config поставляется вместе с XFree86;
он настроен на стандартный адаптер VGA и монитор с разрешением
640x480. Эта утилита запросит путь, когда будут готова к записи
файла.Вы можете взять в качестве основы образцовый файл
XF86Config и отредактировать его согласно вашим
настройкам, либо позволить этой программе сгенерировать файл
XF86Config для вашей конфигурации и тонко
подстроить его. Подробное описание процесса настройки дано в файле
/usr/X11R6/lib/X11/doc/README.Config.Для серверов с ускорителями (включая драйверы с ускорителями в
сервере SVGA) имеется множество зависимых от чипсета и адаптера
опций и настроек. Эта программа не знает об этих настройках. В
некоторых конфигурациях часть этих настроек должна быть указана.
Обратитесь к страницам Справочника по серверу и файлам README,
описывающим конкретный чипсет.Перед тем, как продолжить работу с программой, убедитесь, что вы
знаете чипсет и объем видеопамяти вашего графического адаптера.
В этом вам может помочь команда SuperProbe.
Она также полезна, если Вы знаете, какой сервер собираетесь
использовать.
Press enter to continue, or ctrl-c to abort. ENTER
First specify a mouse protocol type. Choose one from the following list:
1. Microsoft compatible (2-button protocol)
2. Mouse Systems (3-button protocol)
3. Bus Mouse
4. PS/2 Mouse
5. Logitech Mouse (serial, old type, Logitech protocol)
6. Logitech MouseMan (Microsoft compatible)
7. MM Series
8. MM HitTablet
9. Microsoft IntelliMouse
Если у вас мышь с двумя кнопками, то вероятно, она имеет тип 1,
если же кнопок три, то она, скорее всего, поддерживает оба типа
протоколов, как 1, так и 2. Если две основных разновидности
последнего случая; мышка с переключателем для выбора протокола,
и мышка с выставленным по умолчанию протоколом 1, которой требуется
удержание кнопки при загрузке для выбора протокола 2. Некоторые
мышки можно заставить выбрать протокол 2 посылкой особой
последовательности в порт мыши (смотрите опции
ClearDTR/ClearRTS).
Enter a protocol number: 6 Logitech MouseMan
You have selected a Logitech MouseMan type mouse. You might want to enable
ChordMiddle which could cause the third button to work.
Please answer the following question with either 'y' or 'n'.
Do you want to enable ChordMiddle? n
Вам определенно нужно включить третью кнопку у мыши, так как
многие X-клиенты ее используют. Однако, если Вы работаете с
настоящей мышью Logitech, вам не нужно включать параметр
ChordMiddle для использования кнопки. Если вы
обнаружили, что третья кнопка не работает после запуска X, то можете
включить параметр ChordMiddle, отредактировав
конфигурационный файл – это более легкий и свободный от
ошибок способ, чем повторный запуск программы
XF86Setup.Продолжаем настройку:
If your mouse has only two buttons, it is recommended that you enable Emulate3Buttons.
Please answer the following question with either 'y' or 'n'.
Do you want to enable Emulate3Buttons? n
Now give the full device name that the mouse is connected to, for example
/dev/tty00. Just pressing enter will use the default, /dev/mouse.
Mouse device: /dev/ttyd1
Будьте очень аккуратны при вводе этого параметра. Вы должны
указать правильное имя устройства, к которому подключена мышь.
Команда xf86config не является командой только
для FreeBSD, и предлагаемый вариант абсолютно не подходит для
FreeBSD. Используйте имена от /dev/ttyd0 до
/dev/ttyd3 для мышей на последовательном порту,
/dev/psm0 для мыши PS/2 и
/dev/mse0 для мыши типа bus mouse.Продолжив, мы увидим:
Beginning with XFree86 3.1.2D, you can use the new X11R6.1
XKEYBOARD extension to manage the keyboard layout. If you answer 'n' to the
following question, the server will use the old method, and you have to
adjust your keyboard layout with xmodmap.
Please answer the following question with either 'y' or 'n'.
Do you want to use XKB? y
The following dialogue will allow you to select from a list of already
preconfigured keymaps. If you don't find a suitable keymap in the list,
the program will try to combine a keymap from additional information you
are asked then. Such a keymap is by default untested and may require
manual tuning. Please report success or required changes for such a
keymap to XFREE86@XFREE86.ORG for addition to the list of preconfigured
keymaps in the future.
Press enter to continue, or ctrl-c to abort.
List of preconfigured keymaps:
1 Standard 101-key, US encoding
2 Microsoft Natural, US encoding
3 KeyTronic FlexPro, US encoding
4 Standard 101-key, US encoding with ISO9995-3 extensions
5 Standard 101-key, German encoding
6 Standard 101-key, French encoding
7 Standard 101-key, Thai encoding
8 Standard 101-key, Swiss/German encoding
9 Standard 101-key, Swiss/French encoding
10 None of the above
Enter a number to choose the keymap.
1 Choose the standard US keyboard
Теперь мы должны задать характеристики монитора. Двумя
критически важными параметрами являются частота вертикальной
развертки, которая определяет частоту обновления изображения и,
частоту горизонтальной развертки, определяющую скорость
вывода строк на экран.Рабочие пределы для частот вертикальной и горизонтальной
развертки должны быть указаны в руководстве по вашему монитору.
Если у вас возникли с этим проблемы, обратитесь к базе данных по
мониторам в файле
/usr/X11R6/lib/X11/doc/Monitors и попробуйте
найти ваш монитор здесь.
Press enter to continue, or ctrl-c to abort. ENTER
You must indicate the horizontal sync range of your monitor. You can either
select one of the predefined ranges below that correspond to industry-
standard monitor types, or give a specific range.
It is VERY IMPORTANT that you do not specify a monitor type with a horizontal
sync range that is beyond the capabilities of your monitor. If in doubt,
choose a conservative setting.
hsync in kHz; monitor type with characteristic modes
1 31.5; Standard VGA, 640x480 @@ 60 Hz
2 31.5 - 35.1; Super VGA, 800x600 @@ 56 Hz
3 31.5, 35.5; 8514 Compatible, 1024x768 @@ 87 Hz interlaced (no 800x600)
4 31.5, 35.15, 35.5; Super VGA, 1024x768 @@ 87 Hz interlaced, 800x600 @@ 56 Hz
5 31.5 - 37.9; Extended Super VGA, 800x600 @@ 60 Hz, 640x480 @@ 72 Hz
6 31.5 - 48.5; Non-Interlaced SVGA, 1024x768 @@ 60 Hz, 800x600 @@ 72 Hz
7 31.5 - 57.0; High Frequency SVGA, 1024x768 @@ 70 Hz
8 31.5 - 64.3; Monitor that can do 1280x1024 @@ 60 Hz
9 31.5 - 79.0; Monitor that can do 1280x1024 @@ 74 Hz
10 31.5 - 82.0; Monitor that can do 1280x1024 @@ 76 Hz
11 Enter your own horizontal sync range
Enter your choice (1-11):
К несчастью, наш монитор не упоминается в файле
/usr/X11R6/lib/X11/doc/Monitors, но, на наше
счастье, в руководстве по монитору в разделе технических параметров
приведены диапазоны частот. Частота горизонтальной развертки
находится в пределах от 30 до 64 кГц, а вертикальной - в пределах
от 50 до 100 Гц. Диапазон частот горизонтальной развертки чуть ли
не во всех случаях покрывается выбором 8, но эта настройка грозит
быть на 0.3 кГц выше по частоте, чем указано в технических
параметрах. Хотите ли Вы рискнуть? В большинстве случаев проблем
это не вызовет, потому что вряд ли монитор сгорит при столь
незначительном отклонении от стандартных режимов работы, и вряд ли в
ваш файл XF86Config будет сгенерирована частота
горизонтальной развертки от 64.0 до 64.3 kHz. Однако нет причин
идти даже на такой незначительный риск. Просто укажите реальные
значения:
Enter your choice (1-11): 11
Please enter the horizontal sync range of your monitor, in the format used
in the table of monitor types above. You can either specify one or more
continuous ranges (e.g. 15-25, 30-50), or one or more fixed sync
frequencies.
Horizontal sync range: 30-64
Теперь выбираем диапазон частот вертикальной развертки:
You must indicate the vertical sync range of your monitor.
You can either select one of the predefined ranges below that correspond
to industry-standard monitor types, or give a specific range. For
interlaced modes, the number that counts is the high one (e.g., 87 Hz
rather than 43 Hz).
1 50-70
2 50-90
3 50-100
4 40-150
5 Enter your own vertical sync range
Enter your choice: 3 exactly the range of the monitor
На следующем шаге нужно указать идентификационные строки.
Названия Вы можете придумать сами, если хотите, однако если Вы не
специализируетесь на работе с разным оборудованием, то можете
позволить программе xf86config сделать это
за вас:
You must now enter a few identification/description strings,
namely an identifier, a vendor name, and a model name. Just pressing enter
will fill in default names.
The strings are free-form, spaces are allowed.
Enter an identifier for your monitor definition: ENTER
Enter the vendor name of your monitor: ENTER
Enter the model name of your monitor: ENTER
Теперь следует шаг выбора графического адаптера. У нас
имеется старенький Diamond SpeedStar Plus с микросхемой ET4000 и
неизвестные микросхемы для Ramdac и тактового генератора. Давайте
посмотрим, что у нас получится:
Now we must configure video card specific settings. At
this point you can choose to make a selection out of a database of video
card definitions. Because there can be variation in Ramdacs and clock
generators even between cards of the same model, it is not sensible to
blindly copy the settings (e.g., a Device section). For this reason,
after you make a selection, you will still be asked about the components
of the card, with the settings from the chosen database entry presented as
a strong hint.
The database entries include information about the chipset, what server to
run, the Ramdac and ClockChip, and comments that will be included in the
Device section. However, a lot of definitions only hint about what server
to run (based on the chipset the card uses) and are untested.
If you can't find your card in the database, there's nothing to worry about.
You should only choose a database entry that is exactly the same model as
your card; choosing one that looks similar is just a bad idea (e.g. a
GemStone Snail 64 may be as different from a GemStone Snail 64+ in terms of
hardware as can be).
Do you want to look at the card database? y
0 2 the Max MAXColor S3 Trio64V+ S3 Trio64V+
1 928Movie S3 928
2 AGX (generic) AGX-014/15/16
3 ALG-5434(E) CL-GD5434
4 ASUS 3Dexplorer RIVA128
5 ASUS PCI-AV264CT ATI-Mach64
6 ASUS PCI-V264CT ATI-Mach64
7 ASUS Video Magic PCI V864 S3 864
8 ASUS Video Magic PCI VT64 S3 Trio64
9 AT25 Alliance AT3D
10 AT3D Alliance AT3D
11 ATI 3D Pro Turbo ATI-Mach64
12 ATI 3D Xpression ATI-Mach64
13 ATI 3D Xpression+ PC2TV ATI-Mach64
14 ATI 8514 Ultra (no VGA) ATI-Mach8
15 ATI All-in-Wonder ATI-Mach64
16 ATI Graphics Pro Turbo ATI-Mach64
17 ATI Graphics Pro Turbo 1600 ATI-Mach64
Enter a number to choose the corresponding card definition.
Press enter for the next page, q to continue configuration.
ENTER
В алфавитно-цифровом порядке приводится некоторое количество
описаний адаптеров. Наконец мы видим:
108 DSV3325 S3 ViRGE
109 DSV3326 S3 Trio64V+
110 DataExpert DSV3325 S3 ViRGE
111 DataExpert DSV3365 S3 Trio64V+
112 Dell S3 805 S3 801/805
113 Dell onboard ET4000 ET4000
114 Diamond Edge 3D nv1
115 Diamond Multimedia Stealth 3D 2000 S3 ViRGE
116 Diamond Multimedia Stealth 3D 2000 PRO S3 ViRGE/DX
117 Diamond SpeedStar (Plus) ET4000
118 Diamond SpeedStar 24 ET4000
119 Diamond SpeedStar 24X (not fully supported) WD90C31
120 Diamond SpeedStar 64 CL-GD5434
121 Diamond SpeedStar HiColor ET4000
122 Diamond SpeedStar Pro (not SE) CL-GD5426/28
123 Diamond SpeedStar Pro 1100 CL-GD5420/2/4/6/8/9
124 Diamond SpeedStar Pro SE (CL-GD5430/5434) CL-GD5430/5434
125 Diamond SpeedStar64 Graphics 2000/2200 CL-GD5434
Enter a number to choose the corresponding card definition.
Press enter for the next page, q to continue configuration.
117
Your selected card definition:
Identifier: Diamond SpeedStar (Plus)
Chipset: ET4000
Server: XF86_SVGA
Press enter to continue, or ctrl-c to abort.ENTER
Now you must determine which server to run. Refer to the man pages and
other documentation. The following servers are available (they may not
all be installed on your system):
1 The XF86_Mono server. This a monochrome server that should work on any
VGA-compatible card, in 640x480 (more on some SVGA chipsets).
2 The XF86_VGA16 server. This is a 16-color VGA server that should work on
any VGA-compatible card.
3 The XF86_SVGA server. This is a 256 color SVGA server that supports
a number of SVGA chipsets. On some chipsets it is accelerated or
supports higher color depths.
4 The accelerated servers. These include XF86_S3, XF86_Mach32, XF86_Mach8,
XF86_8514, XF86_P9000, XF86_AGX, XF86_W32, XF86_Mach64, XF86_I128 and
XF86_S3V.
These four server types correspond to the four different "Screen" sections in
XF86Config (vga2, vga16, svga, accel).
5 Choose the server from the card definition, XF86_SVGA.
Which one of these screen types do you intend to run by default (1-5)?
Система уже выбрала за нас XF86_SVGA. Хотим ли мы это изменить?
Нам нужен для этого весомую причину. В этом случае особых причин у
нас нет, так что оставим сервер, определенный по адаптеру:
Which one of these screen types do you intend to run by default (1-5)? 5
The server to run is selected by changing the symbolic link 'X'. For example,
the SVGA server.
Please answer the following question with either 'y' or 'n'.
Do you want me to set the symbolic link? y
Все программы, запускающие X (xinit, startx и xdm), на самом
деле запускают программу /usr/X11R6/bin/X.
Эта символическая ссылка /usr/X11R6/bin/X,
указывающая на ваш сервер. Если у вас этой ссылки нет, Вы не
сможете запустить X.
Now you must give information about your video card. This
will be used for the "Device" section of your video card in XF86Config.
You must indicate how much video memory you have. It is probably a good
idea to use the same approximate amount as that detected by the server you
intend to use. If you encounter problems that are due to the used server
not supporting the amount memory you have (e.g. ATI Mach64 is limited to
1024K with the SVGA server), specify the maximum amount supported by the
server.
How much video memory do you have on your video card:
1 256K
2 512K
3 1024K
4 2048K
5 4096K
6 Other
Enter your choice: 3
You must now enter a few identification/description strings, namely an
identifier, a vendor name, and a model name. Just pressing enter will fill
in default names (possibly from a card definition).
Your card definition is Diamond SpeedStar (Plus).
The strings are free-form, spaces are allowed.
Enter an identifier for your video card definition: ENTER
You can simply press enter here if you have a generic card, or want to
describe your card with one string.
Enter the vendor name of your video card: ENTER
Enter the model (board) name of your video card: ENTER
Especially for accelerated servers, Ramdac, Dacspeed and ClockChip settings
or special options may be required in the Device section.
The RAMDAC setting only applies to the S3, AGX, W32 servers, and some
drivers in the SVGA servers. Some RAMDAC's are auto-detected by the server.
The detection of a RAMDAC is forced by using a Ramdac "identifier" line in
the Device section. The identifiers are shown at the right of the following
table of RAMDAC types:
1 AT&T 20C490 (S3 and AGX servers, ARK driver) att20c490
2 AT&T 20C498/21C498/22C498 (S3, autodetected) att20c498
3 AT&T 20C409/20C499 (S3, autodetected) att20c409
4 AT&T 20C505 (S3) att20c505
5 BrookTree BT481 (AGX) bt481
6 BrookTree BT482 (AGX) bt482
7 BrookTree BT485/9485 (S3) bt485
8 Sierra SC15025 (S3, AGX) sc15025
9 S3 GenDAC (86C708) (autodetected) s3gendac
10 S3 SDAC (86C716) (autodetected) s3_sdac
11 STG-1700 (S3, autodetected) stg1700
12 STG-1703 (S3, autodetected) stg1703
Enter a number to choose the corresponding RAMDAC.
Press enter for the next page, q to quit without selection of a RAMDAC.
q Нам это не нужно
A Clockchip line in the Device section forces the detection of a
programmable clock device. With a clockchip enabled, any required
clock can be programmed without requiring probing of clocks or a
Clocks line. Most cards don't have a programmable clock chip.
Choose from the following list:
1 Chrontel 8391 ch8391
2 ICD2061A and compatibles (ICS9161A, DCS2824) icd2061a
3 ICS2595 ics2595
4 ICS5342 (similar to SDAC, but not completely compatible) ics5342
5 ICS5341 ics5341
6 S3 GenDAC (86C708) and ICS5300 (autodetected) s3gendac
7 S3 SDAC (86C716) s3_sdac
8 STG 1703 (autodetected) stg1703
9 Sierra SC11412 sc11412
10 TI 3025 (autodetected) ti3025
11 TI 3026 (autodetected) ti3026
12 IBM RGB 51x/52x (autodetected) ibm_rgb5xx
Just press enter if you don't want a Clockchip setting.
What Clockchip setting do you want (1-12)? ENTER
For most configurations, a Clocks line is useful since it prevents the slow
and nasty sounding clock probing at server start-up. Probed clocks are
displayed at server startup, along with other server and hardware
configuration info. You can save this information in a file by running
imprecise; some clocks may be slightly too high (varies per run).
At this point I can run X -probeonly, and try to extract the clock information
from the output. It is recommended that you do this yourself and add a clocks
line (note that the list of clocks may be split over multiple Clocks lines) to
your Device section afterwards. Be aware that a clocks line is not
appropriate for drivers that have a fixed set of clocks and don't probe by
default (e.g. Cirrus). Also, for the P9000 server you must simply specify
clocks line that matches the modes you want to use. For the S3 server with
a programmable clock chip you need a 'ClockChip' line and no Clocks line.
You must be root to be able to run X -probeonly now.
Do you want me to run 'X -probeonly' now?
Над последним вопросом стоит подумать. Вы должны в какой-то
момент запустить X -probeonly, но для этого нужно что-то сделать.
Мы учтем рекомендации и попробуем это попозже.
Do you want me to run 'X -probeonly' now? n
For each depth, a list of modes (resolutions) is defined. The default
resolution that the server will start-up with will be the first listed
mode that can be supported by the monitor and card.
Currently it is set to:
"640x480" "800x600" "1024x768" for 8bpp
"640x480" "800x600" for 16bpp
"640x480" for 24bpp
"640x400" for 32bpp
Note that 16, 24 and 32bpp are only supported on a few configurations.
Modes that cannot be supported due to monitor or clock constraints will
be automatically skipped by the server.
1 Change the modes for 8pp (256 colors)
2 Change the modes for 16bpp (32K/64K colors)
3 Change the modes for 24bpp (24-bit color, packed pixel)
4 Change the modes for 32bpp (24-bit color)
5 The modes are OK, continue.
Enter your choice: 5 примем значения, предложенные по умолчанию
You can have a virtual screen (desktop), which is screen area that is larger
than the physical screen and which is panned by moving the mouse to the edge
of the screen. If you don't want virtual desktop at a certain resolution,
you cannot have modes listed that are larger. Each color depth can have a
differently-sized virtual screen
Please answer the following question with either 'y' or 'n'.
Do you want a virtual screen that is larger than the physical screen? n
Трудно решить, нужен ли Вам виртуальный экран, превосходящий по
размеру экран физический. Я нахожу его весьма неудобным, так что
советую ответить n. Он может оказаться для Вас полезным, особенно
если максимально допустимое разрешение невелико.Теперь настройка закончена, и программе
sysinstall требуется просто записать
конфигурационный файл:
I am going to write the XF86Config file now. Make sure
you don't accidently overwrite a previously configured one.
Shall I write it to /etc/XF86Config? y
File has been written. Take a look at it before running 'startx'. Note that
the XF86Config file must be in one of the directories searched by the server
(e.g. /usr/X11R6/lib/X11) in order to be used. Within the server press
ctrl, alt and '+' simultaneously to cycle video resolutions. Pressing ctrl,
alt and backspace simultaneously immediately exits the server (use if
the monitor doesn't sync for a particular mode).
For further configuration, refer to /usr/X11R6/lib/X11/doc/README.Config.
После того, как Вы закончите эту настройку, можно начать
работу с X.
-
-
+
+
+
+
+ Использование шрифтов в XFree86
+
+
+ Шрифты TrueType
+
+ Шрифты, используемые по умолчанию и распространяемые вместе с
+ XFree86, вряд ли можно назвать идеально
+ подходящими для применения в обычных издательских приложениях. Большие
+ презентационные шрифты выглядят рвано и непрофессионально, а мелкие
+ шрифты в Netscape вообще нефозможно разобрать. К счастью,
+ XFree86 с минимальными усилияи может быть
+ настроена на использование шрифтов TrueType.
+
+ В XFree86 4.0 имеется встроенная
+ поддержка шрифтов TrueType. Имеются два модуля, которые могут
+ обеспечить эту функциональность. В нашем примере используется модуль
+ "freetype", потому что он в большей степени похож на другие механизмы
+ для работы с шрифтами. Для включения модуля freetype достаточно
+ в раздел модулей вашего файла
+ /etc/X11/XF86Config добавить следующую строчку.
+
+
+Load "freetype"
+
+
+
+ В случае XFree86 3.3.X вам потребуется
+ запустить отдельный сервер шрифтов TrueType. Для этого обычно
+ используется Xfstt. Для установки
+ Xfstt на вашей системе FreeBSD просто
+ установите соответствующий порт из
+ /usr/ports/x11-servers/Xfstt
+
+ Теперь вам нужно создать каталог для ваших шрифтов TrueType
+ (скажем, /usr/X11R6/lib/X11/fonts/TrueType) и
+ скопировать все ваши шрифты TrueType в этот каталог. Имейте в виду,
+ что вы не сможете напрямую использовать шрифты TrueType с Macintosh;
+ для использования с XFree86 они должны
+ быть в формате Unix/DOS/Windows. После того, как вы скопируете файлы
+ в этот каталог, вам нужно будет воспользоваться утилитой
+ ttmkfdir для создания файла
+ fonts.dir, который указывает механизму вывода
+ шрифтов X на местоположение этих новых файлов. Порт
+ ttmkfdir для FreeBSD находится в каталоге
+ /usr/ports/x11-fonts/ttmkfdir.
+
+
+&prompt.root; cd /usr/X11R6/lib/X11/fonts/TrueType
+&prompt.root; ttmkfdir > fonts.dir
+
+
+ После этого вам нужно добавить ваш каталог со шрифтами TrueType
+ к маршруту поиска шрифтов. Проще всего это сделать, добавив такие
+ строчки в ваш файл ~/.xinitrc.
+
+
+&prompt.user; xset fp+ /usr/X11R6/lib/X11/fonts/TrueType
+&prompt.user; xset fp rehash
+
+
+ Это все. Теперь Netscape, Gimp, StarOffice и все остальные ваши
+ X-приложения должны увидеть установленные вами шрифты TrueType.
+ Очень маленькие (как текст веб-страницы на дисплее с высоким
+ разрешением) и очень большие (в StarOffice) шрифты будут теперь
+ выглядеть гораздо лучше.
+
+ Одна неприятность: На данный момент XFree86 не поддерживает
+ вывод шрифтов с антиалиасингом. Эта не проблема при большом
+ резрешении, однако вывод все же менее оптимален по сравнению с MacOS
+ или Microsoft Windows.
+
+
-