%
% This is a free documentation.
% Use, distribute and/or modify accordingly to the GNU Free Documentation License
% 
% (c) 2002 Igor A. Tetuev
% tetuev@phys.psu.ru
%
% You can always find a fresh version at http://debian.psu.ru/faq/
%
% Класс документа
\documentclass[russian]{article}
% Кодировка шрифтов
\usepackage[T2A]{fontenc}
% Кодировка документа
\usepackage[koi8-r]{inputenc}
% Поддержка русского языка (учтите --- скоро я откажусь от бабеля!!10
\usepackage{babel}
% Поддержка включения графики eps
\usepackage{graphics}
% Формат a4, маленькие поля
\usepackage{a4wide}

% поддержка latex2html
\usepackage{html}

% Набор Postscript шрифтов. Не обязателен, но желательно для pdf и ps версий
\usepackage{pscyr}

% Отображение гиперссылок
\latexonly
\usepackage{url}
\endlatexonly


% Я хочу в будущем собирать PDF с гиперссылками. Пока не умею --- научите меня :)
%
%\usepackage[unicode=true,bookmarks=false]{hyperref}
%\hypersetup{
%  pdftitle={Debian 3.0 Russian FAQ },
%  pdfsubject={Debian 3.0 Russian FAQ},
%  pdfauthor={Igor A. Tetuev},
%  pdfkeywords={linux,debian,russian}
%}

\selectlanguage{russian}

%%% Описания моих макроопределений
%
% Это если надо будет изменить способ написания слова Debian :)
\newcommand{\debian}{\textit{Debian\ }}
%
% В случае, если собираем не html, использовать свой внешний вид гиперссылки:
% название (url)
% Эти странные команды начинающиеся на % обрабатываются latex2html
%begin{latexonly}
\renewcommand{\htmladdnormallink}[2]{\textbf{#1} (\textbf{\url{#2}})}
%end{latexonly}
%
% Внешний вид названий программ
\newcommand{\program}[1]{\textit{#1}}
%
% Внешний вид названий файлов
\newcommand{\filename}[1]{\textbf{#1}}
%
% Внешний вид цитирования из файлов
\newcommand{\citefile}[1]{\texttt{#1}}
%
% Внешний вид описания вводимых пользователем команд
\newcommand{\cmdline}[1]{\texttt{#1}}
%
% Внешний вид предупреждений
\newcommand{\warning}[1]{\textbf{\textit{#1}}}
%
%%%

\begin{document}


\title{
%begin{latexonly}
\includegraphics{offVertColor.eps} \\ \vskip 2em 
%end{latexonly}
Русский Debian 3.0 FAQ \\ Версия 0.3}
\date{2 ноября 2002}
\author{Игорь Тетюев}


\maketitle
\tableofcontents{}

\section{О данном документе}

\subsection{История документа и авторы}

Этот FAQ является дальнейшим развитием FAQ по \debian GNU/Linux,
созданного \htmladdnormallink{Виктором Вислобоковым}{mailto:victor_v@permonline.ru}
В данный FAQ не вошли вопросы, связанные с предыдущей стабильной версией \debian
GNU/Linux, 2.2 (\emph{Potato}) по причине того, что они рассмотрены
в отдельном документе.

В настоящее время автором является \htmladdnormallink{Игорь Тетюев}{mailto:tetuev@phys.psu.ru},
все вопросы, замечания и дополнения как в этот FAQ так и в FAQ по
предыдущим версиям \debian должны направлятся ему.

Также автора можно встретить на \#{}debian-russian

Самую свежую версию этого FAQ можно найти \htmladdnormallink{здесь}{http://debian.psu.ru/faq},
а также на \htmladdnormallink{сайте Пермской Группы Пользователей Linux}{http://www.linux.perm.ru}.

\subsection{Доступные форматы}

Это документ доступен в следующих форматах:

\begin{itemize}
\item \htmladdnormallink{\TeX\ }{DebianFAQ.tex}
\item \htmladdnormallink{PDF}{DebianFAQ.pdf}
\item \htmladdnormallink{PostScript}{DebianFAQ.ps}
\item \htmladdnormallink{DVI}{DebianFAQ.dvi}
\item \htmladdnormallink{HTML}{DebianFAQ.html}
\item \htmladdnormallink{tar.gz}{debianfaq3.0.r0.tar.gz}
\end{itemize}

\subsection{Благодарности}

\begin{itemize}
\item Anseis (Anseis1 at ezmail.ru) за помощь с русским языком в latex2html, исправление ошибок
\item Dimitry N. Naldaev (dima at tic.perm.ru) за дополнения к вопросу "Как добавить http или ftp зеркало \debian?"
\end{itemize}

\subsection{Лицензия}

Этот документ распостраняется в соответствии с лицензией \emph{GNU Free Documentation License (GFDL)}.

\section{Общие вопросы по дистрибутиву}

\subsection{Что такое \debian?}

Информация с \htmladdnormallink{сайта Debian}{http://www.debian.org}:

\debian --- это свободная операционная система (ОС) и набор прикладных
программ для вашего компьютера. В \debian используется ядро \emph{Linux},
но большинство утилит ОС разработано в рамках \htmladdnormallink{проекта GNU}{http://www.gnu.org};
поэтому полное название проекта --- \emph{Debian GNU/Linux}.

Как уже было отмечено выше, \debian --- это не только
операционная система. В его состав входит более 8710 пакетов заранее
скомпилированного программного обеспечения, которые легко могут быть
установлены. 

\debian поддерживает рекордное количество аппаратных
платформ --- 11.

Также существуют версии \debian для других ядер: \emph{GNU Hurd}, \emph{NetBSD},
\emph{FreeBSD} и даже \emph{win32/Cygnus}.

Более подробную информацию (в том числе и на русском языке) можно
найти на \htmladdnormallink{сайте \debian}{http://www.debian.org}.

В данном FAQ рассматривается исключительно \debian GNU/Linux 3.0 \emph{Woody}. Если есть необходимость в создании FAQ по \debian \emph{Hurd}, или другим -- они будут созданы.

\subsection{Чем отличается \debian от других дистрибутивов?}

Форматом пакетов и программой которая обслуживает данные пакеты, процедурой
инсталляции. Кроме того есть отличия и в структуре каталогов, и в
месте расположения конфигурационных файлов. Кроме того в \debian'е
сделана попытка подогнать все под \textsc{unix}'овый стандарт System V. Можно
также заметить, что \debian является рекордсменом по количеству
пакетов, которые идут в составе дистрибутива.

Самое мощные отличия - это конечно система управления пакетами и сами
пакеты.

Система управления \program{apt}, используемая в \debian, является
для многих дистрибутивов недостижимым идеалом. \program{apt} позволяет
устанавливать, удалять и обновлять пакеты с полным соблюдением зависимостей,
прозрачным образом объединяя получение пакетов из разных источников
(http, ftp, CD, локальное зеркало).

Сами пакеты также являются достаточно гибким и мощным средством. В
них включается контрольная информация зависимости одних пакетов от
других, комментарии к пакету, информация о сервисе, который предоставляет
пакет. Кроме того в пакете имеются сценарии, что позволяют произвести
настройку пакета сразу после установки и кроме того произвести обновление
старой версии пакета на новую при сохранении конфигурационных файлов.

Не лишне также отметить, что \debian на данный момент является
рекордсменом по количеству пакетов, идущих в дистрибутиве.

Также вы можете создать \filename{.deb} пакет из уже установленного и 
дополнительно настроенного пакета.

\subsection{Какими способами можно установить \debian?}

Несколькими способами:

\begin{itemize}
\item с загрузочного CD ROM
\item с CD ROM с помощью дискет
\item с одного из разделов жесткого диска
\item по FTP
\item по HTTP
\item через NFS
\end{itemize}

\subsection{Какая версия \debian на сегодня самая свежая?}

В конце июля 2002 года был официально выпущен \debian 3.0r0,
который имеет название \emph{Woody}. Хотя версия считается стабильной,
дальнейшая работа по выявлению и устранению ошибок продолжается.

Также идет работа над следующей версией с названием \emph{Sarge}.
В данный момент эта версия пока еще в начальном этапе разработки.


\section{Русификация}


\subsection{Русские локали}

Начиная с версии 3.0, \debian перешел от поставки всех локалей
сразу к генерации локалей по требованию. По умолчанию есть только
одна локаль, \emph{C}. Для установки остальных локалей нужен пакет
\filename{locales}.

Локали можно добавлять двумя способами:

\begin{itemize}
\item отредактировав файл \filename{/etc/locale.gen} и добавив в него, например

\citefile{ru\_RU.KOI8-R KOI8-R}

и исполнив команду \cmdline{locale-gen}.

\item запустив \cmdline{dpkg-reconfigure locales} и пометив нужные локали
\end{itemize}
Также есть возможность удалить всю информацию о ненужных локалях,
включая сообщения программ. Для этого надо выполнить команду \cmdline{dpkg-reconfigure locale-purge}
и пометить локали, которые должны быть сохранены. По умолчанию программа предлагает сохранить те локали, которые у вас генерируются. \warning{Данная операция является необратимой и восстановление возможно только переустановкой пакетов}.


\subsection{Русская консоль}

В предыдущих версиях \debian этот пункт был весьма обширным.
Теперь достаточно установить пакет \filename{console-cyrillic} и выбрать
в нем желаемые кодировку, шрифт, переключатель и локаль по умолчанию.
Желательно выполнить его установку и настройку после пакета \filename{locales}.


\subsection{Включение поддержки русского при установке}

Для включения поддержки русского языка надо в программе \program{tasksel}
выбрать \emph{Russian Environment} и \emph{Cyrillic Environment.}

К сожалению, из за ошибки в инсталляторе \debian 3.0r0 не изменятеся
файл \filename{/etc/locale.gen}, что приводит к осутствию русских локалей.
Для исправления этой ошибки вы должны по окончании установки выполнить
две команды:

\cmdline{dpkg-reconfigure locales}

\cmdline{dpkg-reconfigure console-cyrillic}

и внести те же изменения что и в пунктах 3.1 и 3.2.


\subsection{Включение поддержки русского в bash для обычных пользователей}

Для включения поддержки русского в \program{bash} надо отредактировать
файл \filename{\~{}/.bashrc} и добавить в него строки:

\begin{verbatim}
export LANG=ru_RU.KOI8-R
export LC_ALL=ru_RU.KOI8-R
\end{verbatim}


\subsection{А как насчет русского в консоли root?}

Желательно не включать пользователю root русский язык по нескольким
причинам:

\begin{itemize}
\item работать под root постоянно --- признак плохого тона
\item возможна ситуация, когда вы зайдете с консоли не имеющей поддержки
кириллицы
\item бывают программы, которые должны запускаться под пользователем root,
результаты работы которых обрабатываются другими программами. В случае
если эти результаты будут в виде мешанины русского и английского,
программы-обработчики сойдут с ума :)
\end{itemize}

\subsection{Поддержка русского языка в X Window}

В случае, если вы установили \emph{Russian Environment} и \emph{Cyrillic
Environment}, шрифты должны быть уже настроены. Остается только настроить
клавиатуру. Вы должны привести\footnote{
Это еще можно делать с помощью \program{deb-conf}, будет время -- расскажу как :) - igor
} настройки клавиатуры к определенному
виду в секции \citefile{InputDevice} файла \filename{XF86Config-4}.
Вот как выглядит эта секция у меня:

\begin{verbatim}
Section "InputDevice"
  Identifier "Acer"
  Driver "keyboard"
  Option "CoreKeyboard"
  Option "XkbRules" "xfree86"
  Option "XkbModel" "pc105"
  Option "XkbLayout" "ru"
  Option "XkbOptions" "grp:toggle"
EndSection\end{verbatim}

В данном примере используется стандартная раскладка, переключение
по \emph{Right Alt}.

\subsection{Захотел прочитать текстовый файл на русском языке, который я сделал
в DOS'е, а там русских букв нет, вместо них почему-то псевдографика.
Каким образом можно прочитать текстовые файлы из DOS'а?}

Воспользуйтесь командой \program{iconv(1)}:

\cmdline{iconv входнойФайл -f изКодировки -t вКодировку -o выходнойФайл}

Например:

\cmdline{iconv test.txt -f koi8-r -t windows-1251 -o test.win}

В случае, если у вас уже настроена русская локаль, при перекодировании
из текущей кодировки в другую параметр со своей кодировкой можно опустить,
например:

\cmdline{iconv test.txt -t windows-1251 -o test.win}

Так как список кодировок поддерживаемых \program{iconv} огромен, вот названия
кодировок которые наиболее вероятно могут понадобится русскоязычному
пользователю: \cmdline{koi8-r windows-1251 866}


\subsection{Как сделать так, чтобы в моем \program{mc} (Midnight Commander) были видны
русские буквы и чтобы я мог их там набирать, а то лезет всякая ерунда?}

Сначала нужно включить работу с восемью битами. Для этого нажмите
F9 затем выберите \emph{Option}, далее \emph{Display bits} и наконец
\emph{Full 8 bit}. Там же проставьте \emph{Full 8 bit input}. Не забудьте
потом сохранить эту конфигурацию.

\subsection{Почему у меня программа для работы с электронной почтой elm говорит
Unknown charset, когда я пишу письма на русском языке? Как с этим
бороться? }

Дело опять таки в русификации. Известный мне способ это победить таков:

\begin{itemize}
\item в домашнем каталоге создается каталог \filename{.elm}
\item в этом каталоге создается файл \filename{elmrc}
\item в этот файл прописывается строчка

\citefile{CHARSET=koi8-r}

\end{itemize}

\section{Настройка приложений}


\subsection{Когда работаю в \program{mc} (Midnight Commander) в эмуляторе терминала \program{xterm}
в X Window, то возникают проблемы с клавишами. Понять не могу, что
за ерунда. Как это вылечить?}

Самое первое, что надлежит сделать - это настроить локаль и \emph{Xkb}.
Без этого настройка клавиш \program{mc} в \program{xterm} представляется
сущим мучением.

После этих действий, у вас в \program{mc} заработают все клавиши. Однако это
далеко не все. Кроме этого, в \program{mc} у вас не работают сочетания
клавиш \emph{Alt+}\textless{}клавиша\textgreater{}. Так что необходим
шаг номер два:

Правите файл \filename{/usr/X11R6/lib/X11/app-defaults/XTerm}. В
конец этого файла нужно добавить кусок:

\begin{verbatim}
*VT100*translations: #override \
 aReturn: string(0x1b) string(0x0d) \n\
 aTab: string(0x1b) string(0x09) \n\
 aspace: string(0x1b) string(" ") \n\
 aa: string(0x1b) string("a") \n\
 ab: string(0x1b) string("b") \n\
 ac: string(0x1b) string("c") \n\
 ad: string(0x1b) string("d") \n\
 ae: string(0x1b) string("e") \n\
 af: string(0x1b) string("f") \n\
 ag: string(0x1b) string("g") \n\
 ah: string(0x1b) string("h") \n\
 ai: string(0x1b) string("i") \n\
 aj: string(0x1b) string("j") \n\
 ak: string(0x1b) string("k") \n\
 al: string(0x1b) string("l") \n\
 am: string(0x1b) string("m") \n\
 an: string(0x1b) string("n") \n\
 ao: string(0x1b) string("o") \n\
 ap: string(0x1b) string("p") \n\
 aq: string(0x1b) string("q") \n\
 ar: string(0x1b) string("r") \n\
 as: string(0x1b) string("s") \n\
 at: string(0x1b) string("t") \n\
 au: string(0x1b) string("u") \n\
 av: string(0x1b) string("v") \n\
 aw: string(0x1b) string("w") \n\
 ax: string(0x1b) string("x") \n\
 ay: string(0x1b) string("y") \n\
 az: string(0x1b) string("z")
\end{verbatim}

\subsection{У меня на первом винте стоит Linux но есть и второй винт, на котором
стоит DOS, как мне добится чтобы \program{lilo} грузил мне DOS?}

Если вы хотите грузить операционную систему с винта отличного от Master
на первом IDE порту, то вам необходимо определить так называемый chain
загрузчик для этого винта. В \program{lilo} версии 20 и выше этот загрузчик
встроен прямо в код \program{lilo}. Вот пример файла \filename{/etc/lilo.conf},
в котором прописана загрузка Linux с Master винта, а DOS со Slave.

\begin{verbatim}
# устройство откуда берется LILO
boot=/dev/hda
# раздел, где находится главная(корневая) файловай система
root=/dev/hda1 
# спецификация compact работает не везде compact 
# определяет нормальный текстовый режим 80x25 
# можно задать слово ask, чтобы при загрузке спрашивало 
# номер видеорежима. Можно просто подставить цифру 
# видеорежима
vga=normal 
# при prompt выдается приглашение boot: и ожидается 
# ввод метки для выбора операционной системы на 
# загрузку или Enter для загрузки первой по порядку. 
# Можно определить delay , где n десятые 
# секунды, которые LILO будет ждать, после чего произведет 
# загрузку первой по порядку операционной системы. 
# Во время ожидания можно нажать Ctrl и перейти в режим 
# prompt
prompt 
# ------------- секция загрузки Linux ------------- 
# образ ядра Linux
image=/vmlinuz 
# метка, вводимая на приглашение boot:
label=Linux read-only 
# -------------- секция загрузки DOS -------------- 
# DOS раздел
other=/dev/hdb1 
# инициализация chain загрузчик
map-drive = 0x80
       to = 0x81
map-drive = 0x81
       to = 0x80 
# метка, вводимая на приглашение boot:
label=dos
\end{verbatim}

\subsection{Говорят, что якобы можно грузить Linux напрямую из DOS'а не пользуясь
LILO. Это действительно так? Если да, то как это сделать?}

Действительно вполне можно загружать Linux из DOS'а, хотя такой метод
и не пользуется популярностью, так как из-за ненадежности файловой
системы FAT у DOS'а и подверженности ее влиянию вирусов вы можете
испортить файлы, необходимые для загрузки.

Для загрузки из DOS'а вам понадобятся только два файла:

\begin{enumerate}
\item программа \program{loadlin.exe} из дистрибутива.
\item ядро собранное для вашей машины (подойдет и из дистрибутива, если
в ядре есть поддержка аппаратуры, которая представлена на вашей машине). 
\end{enumerate}
Заметим, что ядро должно быть обработано командой \program{rdev(8)}.
Например, если мы имеем образ ядра в файле \filename{vmlinuz} в текущем
каталоге, а ваша корневая файловая система размещена на устройстве
\filename{/dev/hda1} необходимо выполнить:

\cmdline{rdev vmlinuz /dev/hda1 }

чтобы ядро после загрузки знало, где ваша корневая (главная) файловая
система (\filename{/}), затем

\cmdline{rdev -R vmlinuz 1}

что установит флаг первоначального монтирования файловой системы как
read-only, что необходимо программе \program{fsck} для проверки файловой
системы, затем можно (но не обязательно)

\cmdline{rdev -v vmlinuz }

для установки текстового видеорежима, отличного от стандартного 80x25,
где n - это номер режима.

После выполнения данных действий положите файл \filename{vmlinuz} вместе
с \filename{loadlin.exe} куда-нибудь на диск DOS. Для загрузки, в DOS'е
достаточно переместится в тот каталог, где находятся эти два файла
и ввести команду:

\cmdline{loadlin vmlinuz}

Однако можно обойтись и без обработки ядра командой \program{rdev}. Можно просто
указать \program{loadlin}, в каком месте находится главная файловая система.
Например:

\cmdline{loadlin vmlinuz root=/dev/hda1 }


\subsection{У меня стоят три менеждера окон к X Window. Куда мне прописать чтобы
по умолчанию командой \cmdline{startx} грузился \program{fvwm95}?}

Вам нужно воспользоваться механизмом альтернатив. Введите команду:

\cmdline{update-alternatives -{}-display x-window-manager}

и вы получите список установленных в системе менеджеров окон. Введите
команду:

\cmdline{update-alternatives -{}-config x-window-manager}

и вам выдаст диалог, в котором вы сможете выбрать нужный менеджер
окон, который будет и запускаться при старте X Window. 


\subsection{Как соединятся с провайдером для выхода в Internet через модем, по
протоколу PPP?}

Для начала, если ядро у вас собрано без поддержки протоколов PPP и
SLIP вам нужно собрать его заново с поддержкой этих протоколов. Как
собирать ядро описано в этом же FAQ. См. список вопросов.

Еще недавно я бы сказал, что готовой программы нет, но теперь готовая
программа есть прямо в дистрибутиве \debian. Она называется
\program{pppconfig(8)}. Все что вам нужно сделать - это честно и правдиво
ответить на все вопросы, которые задаст вам эта программа.

Соединение осуществляется командой \program{pon}, а завершение соединения с
провайдером осуществляется вызовом команды \program{poff}, которая убивает
демон, отвечающий за связь и заставляет его положить {}``трубку''
модема.

Как вы уже поняли - это решение далеко не самое красивое. Например,
можно воспользоваться \program{diald} - о чем ниже. Однако это очень
простое решение, Установление соединения при помощи демона \program{diald}

Прежде всего хочу заметить, что данные здесь конфигурационные файлы
могут для вас не подойти, хотя у меня они работают. Все описанное
ниже дает скорее понятие о том как все это настраивать, чем конкретное
готовое решение. В любом случае очень рекомендую тщательно изучить
страницы руководства man по \program{pppd(8)} и \program{diald}, а также
PPP-HOWTO.

Пакет \program{diald} входит в состав дистрибутива \debian, да
и по моему в другие дистрибутивы тоже. Ну а если у вас все-таки его
не оказалось, вы всегда можете выкачать его из Internet.

После того как вы установите пакет, например, командой

\cmdline{dpkg -i diald-0.16.4-1.deb}

или

\cmdline{apt-get install diald}

В каталоге \filename{/etc/diald} у вас появятся его конфигурационные
файлы. Вам понадбится править только два из них. В файле с именем
\filename{diald.options} хранится конфигурация \program{diald}, а в файле
с именем \filename{connect} находится сценарий, который устанавливает
модемное соединение, набирая номер и выполняя функции идентификации
пользователя.

Начнем с файла \program{diald.options}. Ниже дан в качестве примера
мой:

\begin{verbatim}
mode ppp
connect "chat -f /etc/ppp/pppscript"
device /dev/ttyS1
speed 19200
modem
lock
crtscts
local 192.168.0.1
remote 192.168.0.2
netmask 255.255.255.0
impulse 120,60
dynamic
defaultroute
pppd-options
noipdefault
name "victor_v"
asyncmap 0
include /etc/diald/standard.filter 
\end{verbatim}



Данная конфигурация расчитана на использование diald с протоколом
PPP с аутентификацией пользователя по протоколу PAP. Адреса \citefile{local}
и \citefile{remote} даны {}``от балды''. Так как далее
используется ключ \citefile{dynamic}, а в параметре \citefile{ppp-options}
задано значение \citefile{noipdefault}, то при установлении связи адреса
удаленной машины-сервера и адреса вашей машины будут изменены на те,
которые сообщит удаленная машина.

Параметр \citefile{device} установлен в значение \filename{/dev/ttyS1},
что соотвествует второму последовательному порту COM2. Вы же можете
изменить это значение, если ваш модем использует другой порт. (Для
COM1 будет \filename{/dev/ttyS0} и т.п.). Параметр \citefile{speed} установлен
в значение 19200 и означает портовую скорость. Скорость вы также должны
задать ориентируясь на модем, которым вы пользуетесь. Возможные значения:
2400, 9600, 19200, 34800, 57600 и т.д.

Параметр \citefile{impulse} установлен в значение 120,60. Это говорит
о том, что \program{diald будет} проверять простаивает ли линия через каждые
2 минуты (120 сек) и будет разрывать соединение (класть {}``трубку''
модема), если в течении 1 минуты (60 сек) линия будет продолжать простаивать.
Простой линии выражается в отсутствии приема или передачи пакетов
через модем. Таким образом вы экономите деньги на повременной оплате
за телефон и за Internet. Излишне говорить, что вы можете настроить
эти параметры под себя.

Особо нужно отметить параметр \citefile{connect}. В данном примере он
установлен в значение \citefile{chat -f /etc/ppp/pppscript}. Ниже приводится
содержимое файла \filename{pppscript}

\begin{verbatim}
ABORT ERROR
ABORT BUSY
ABORT "NO CARRIER"
ABORT "NO DIALTONE"
REPORT "CARRIER"
REPORT "CONNECT"
TIMEOUT 90 
"" AT&F1 "OK" ATDT900020 "CONNECT"
\end{verbatim}

Мне было удобнее пользоваться таким файлом, чем поставляемым с пакетом
\program{diald} файлом \filename{connect}. Это потому, что мой провайдер
использует аутентификацию пользователей по протоколу PAP. Если же
сервер у вашего провайдера настроен на ввод имени и пароля по приглашениям
\citefile{Login}: и \citefile{Password}:, то вам лучше воспользоваться
файлом \filename{connect}. Тогда строчка с параметром \citefile{connect}
в файле \filename{diald.options} будет выглядеть так:

\begin{verbatim}
connect "/etc/diald/connect"
\end{verbatim}

Файл connect хорошо задокументирован внутри и проблем с его использованием
быть не должно. Вам нужно будет только поменять параметры \citefile{MODEM\_INIT}
на строку инициализации вашего модема, \citefile{PHONE\_NUMBER} на номер
телефона вашего провайдера, \citefile{USER\_CHAT\_SEQ} на строку-приглашение,
которую вы получаете для ввода имени, \citefile{USER\_NAME} на ваше
регистрационное имя у провайдера, \citefile{PASSWD\_CHAT\_SEQ} на строку-приглашение,
которую вы получаете для ввода пароля, \citefile{PASSWORD} на ваш пароль
у провайдера и наконец \citefile{PROMPT} на строку, которую вы получаете
в случае успешного ввода имени и пароля.

Возможно вам придется поэкспериментировать пока у вас все получится.
Для этой цели могу рекомендовать терминальную программу \program{minicom},
где вы всегда сможете установить соединение в ручную и посмотреть
все строки приглашения.

Следующий этап - это файл \filename{/etc/ppp/options}. Ниже дан в качестве
примера мой: 

\begin{verbatim}
lock 
defaultroute 
crtscts 
noipdefault 
modem 
asyncmap 0 
debug 
19200 
/dev/ttyS1 
name "victor_v"
\end{verbatim}

Здесь вроде все должно быть понятно, тем более, что часть параметров
перекрывается конфигурационным файлом для \program{diald}. Замечу только,
что строка name {}``\citefile{victor\_v}'' нужна только
в случае использования протокола PAP.

Для тех, у кого провайдер использует как и у меня аутентификацию пользователей
по протоколу PAP будет нужен еще файл \filename{/etc/ppp/pap-secrets}.
Вот пример моего:

\begin{verbatim}
# Secrets for authentication using PAP...
# client      server       secret        IP addresses
"victor_v"      *        "password"
\end{verbatim}

Вместо password должен стоять ваш пароль, а вместо \citefile{victor\_v}
ваше регистрационное имя у провайдера. Кроме того, оно же прописывается
как вы можете заметить и в файл \filename{/etc/ppp/options} и в файл
\filename{/etc/diald/diald.options}. Естественно, что для тех у кого
провайдер не поддерживает PAP, эти параметры в данных файлах не нужны.

Далее вам необходимо настроить свою систему для использования DNS
провайдера. У вас должен быть адрес DNS-сервера провайдера. Его нужно
поместить в файл \filename{/etc/resolv.conf}. Вот пример моего файла: 

\begin{verbatim}
nameserver 194.84.131.242
search permonline.ru
\end{verbatim}

где параметр nameserver задает адрес DNS-сервера провайдера, а параметр
search имя домена провайдера.

Ну вот теперь кажется все. После окончания всех настроек перезапустите
diald командой

\cmdline{/etc/init.d/diald restart}

Теперь, когда вы в \program{Netscape} или в \program{Lynx} или в mc обратитесь
на адрес, который неизвестен вашей системе, \program{diald} попытается
установить соединение с вашим провайдером и если это получится, то
вы попадете туда куда обратились.

Если у вас не получилось. Что же мне жаль. Причин может быть множество.
Здесь я могу только посоветовать вам подробно изучить документацию. 


\section{Управление пакетами}


\subsection{Что такое \emph{stable}, \emph{testing}, \emph{unstable} ветки \debian?}

Это направления работы над \debian.

\begin{itemize}
\item \emph{stable} (стабильный) дистрибутив --- официально выпущенный дистрибутив,
в него обычно изменения не вносятся. Найденные ошибки размещаются
в отдельном депозитарии, и периодически вносятся в сам дистрибутив,
формируя новый выпуск. Принципиальная идея стабильного дистрибутива
--- все его установки похожи друг на друга. Именно этот дистрибутив
можно обычно найти на CD и DVD. На данный момент стабильным дистрибутивом
является \debian GNU/Linux 3.0r0, кодовое имя \emph{Woody}.

\item \emph{testing} (тестируемый) дистрибутив --- будущая версия дистрибутива.
Над ним идет постоянная работа по исправлению ошибок и по мере необходимости
обновляются версии программного обеспечения. В определенный момент
осуществляется {}``заморозка'' дистрибутива --- начинается подготовка
к выпуску нового дистрибутива, в процессе которой идет только исправление
ошибок; версии программного обеспечения изменяются только в случае
крайней необходимости. Как только число критических ошибок становится
равным нулю, а число обычных ошибок не превышает определенного количества,
дистрибутив считается готовым к выпуску. На данный момент тестируемым
дистрибутивом является \emph{Sarge}. В отличие от предыдущих тестируемых
версий \debian, он доступен на CD и DVD.

\item \emph{unstable} (нестабильный) дистрибутив --- {}``опытное поле''
\debian. В нем идет постоянное обновлений версий программного
обеспечения (до сотни пакетов в день!), на ошибки особенно не смотрят,
кроме ошибок связанных с безопастностью. Пользоваться им рекомендуется
только тем, кто может выделить под него отдельный компьютер :). Кодовое
имя этого дистрибутива \emph{Sid}.
\end{itemize}

Раньше была ротация кодовых имен: например, Woody сперва был \emph{unstable},
затем \emph{testing} и теперь \emph{stable}. Теперь эта ротация имеет
место только в стабильном и тестируемом дистрибутивах. Принято решение
нестабильный дистрибутив всегда называть Sid.


\subsection{Что становится с предыдущими стабильными дистрибутивами?}

\debian поддерживает предыдущий и текущий стабильный дистрибутивы.
Более старые дистрибутивы попадают в архив. Над ними не осуществляется
работа по исправлению ошибок.


\subsection{Что такое \emph{experimental}?}

Это часть архива \debian, не входящая в официальный дистрибутив.
В \emph{experimental} находятся кандидаты на вхождение в \emph{Sid},
которые не проходят по критериям качества или имеют серьезные конфликты
зависимостей с другими пакетами.


\subsection{Что такое \emph{non-free} и \emph{contrib}?}

\debian это проект по созданию дистрибутива GNU/Linux, состоящего из
свободного программного обеспечения. Требования к лицензии, по которым
тот или иной продукт может считаться свободным, описаны в документе
\emph{Debian Free Software Guides} (\emph{DFSG}).

Программное обеспечение, которое не является свободным, не может входить
в официальную поставку \debian, и не является частью дистрибутива.

Тем не менее, проект \debian с целью избежания конфликта интересов
с пользователями (которые не всегда ценят свою свободу), предоставляет
свои ресурсы: файл-серверы, зеркала, система отслеживания ошибок,
списки рассылки некоторым пакетам с несвободным ПО. Данные пакеты
размещаются в части дистрибутива, имеющей название \emph{non-free}. При сборке
дистрибутива на CD принято \emph{non-free} выделять в отдельный диск или
не включать в дистрибутив вовсе.

Также существет свободное программное обеспечение, которое требует
для своей работы несвободные библиотеки или программы. Это программное
обеспечение считается частью дистрибутива, и размещается в разделе
\emph{contrib}.

\subsection{Что такое система pools?}

Раньше архив дистрибутива представлял из себя дерево каталогов, где
пакеты были отсортированы по назначанию. Затем было принято решение
для нестабильного и тестируемого дистрибутива использовать структуру
типа \cmdline{pool/main/\textless{}буква или libбуква\textgreater{}/пакет.deb}
. Эта система оказалась очень удобной и гибкой. Поэтому теперь \debian
будет иметь структуру этого класса для всех дистрибутивов.


\subsection{Как добавить http или ftp зеркало \debian?}

Существуют два способа указания пути к архиву пакетов \debian.

В случае если вам нужно указать путь к архиву пакетов \debian, построенному в виде стандартной структуры
(например, официальное зеркало), надо в файл \filename{/etc/apt/sources.list} добавить строку вида:

\citefile{deb protocol://host branch sections}

\citefile{deb-src protocol://host branch sections}

где:

\begin{itemize}
\item \citefile{protocol} - протокол (file, http, ftp)
\item \citefile{host/path} - hostname зеркала и путь до иерархии \debian
\item \citefile{branch} - ветка (stable, testing, unstable)
\item \citefile{sections} - список разделов дистрибутива разделенный пробелами (обычно \citefile{main contrib non-free})
\end{itemize}
пример:

\cmdline{deb http://debian.psu.ru stable main contrib non-free}

\cmdline{deb-src http://debian.psu.ru stable main contrib non-free}

Если же вам нужно указать путь к каталогу с пакетами (например программа, не являющаяся частью \debian),
то следует внести в файл \filename{/etc/apt/sources.list} следующие строки:

\citefile{deb protocol://host/path path-to-archive/}
\citefile{deb-src protocol://host/path path-to-archive/}

где:

\begin{itemize}
\item \citefile{protocol} - протокол (file, http, ftp)
\item \citefile{host/path} - hostname зеркала и путь до иерархии \debian
\item \citefile{path-to-archive} - путь к каталогу с файлом Packages.gz, обратите внимание на то,
что {}``\citefile{/}'' обязателен
\end{itemize}
пример:

\cmdline{deb ftp://people.debian.org/\~{}schoepf/kde3/woody ./}

\cmdline{deb-src ftp://people.debian.org/\~{}schoepf/kde3/woody ./}

Строка \citefile{deb-src} не обязательна, и нужна только в случае, если вы собираетесь самостоятельно
перекомпилировать какой либо пакет.

Более подробную информацию вы можете найти в документации на \program{apt} и в списках рассылки \debian, посвященных созданию {}``вспомогательных'' депозитариев \debian.

\subsection{Я добавил новую строку в \filename{/etc/apt/sources.list} но пакеты не ставятся!}

Вы наверное забыли после этого выполнить команду \cmdline{apt-get update}.
Если эта команда выдает сообщения об ошибках, читайте документацию
на \program{apt(8)}, и проверяйте.


\subsection{Как добавить компакт-диск с депозитарием?}

Если компакт диск создан стандартными средствами и имеет стандартную
структуру каталогов \debian (например, любой из дисков созданных
\program{debian-cd} или \program{jigdo}), достаточно ввести команду

\cmdline{apt-cdrom add}

и {}``познакомить'' \program{apt} с новым диском.


\subsection{Как получить образы компакт-дисков \debian?}

Можно скачать \emph{ISO9660} образы дисков на любом из зеркал, которое
вы найдете на \htmladdnormallink{сайте Debian}{http://www.debian.org}, но готовы
ли вы к тому, что после скачивания образа в 650 мегабайт, его md5
сумма будет неправильной? :)

Существуют два более приятных способа заполучить образы дисков \debian:

\begin{itemize}
\item купить копию официальных дисков
\item воспользоваться программой \program{jigdo}
\end{itemize}
В России CD и DVD с копией официальных дисков \debian можно
купить в \htmladdnormallink{Linuxshop}{http://www.linuxshop.ru} и \htmladdnormallink{LinuxCenter}{http://www.linuxcenter.ru},
а также во многих других местах, о которых я хотел бы написать здесь,
если найдутся желающие :)

Если же вы решили скачать образы \debian, настоятельно рекомендую
воспользоваться программой \program{jigdo}. Она есть как под практически
любой \textsc{{*}nix}, так и под \program{Windows}. Ее принцип работы заключается
в том, что вы должны скачать {}``заготовку'' диска в \~{}50
мегабайт, и указать зеркало с которого скачать файлы дистрибутива.
\program{jigdo} самостоятельно скачает файлы, сложит их определенном
месте для дальнейшего использования, а затем соберет из них диск идентичный
тому, с которого делалась заготовка, что и подтвердит затем, проверив
md5 сумму.

Используя \program{jigdo} и имея поблизости хорошее зеркало \debian
вы сможете иметь всегда диски со свежим \emph{testing} или диски с
той или иной альтернативной комплектацией.


\subsection{Как обновить программное обеспечение?}

Если вы правильно указали источники пакетов в \filename{/etc/sources.list}
и выполнили команду \cmdline{apt-get update} , достаточно выполнить
команду \cmdline{apt-get dist-upgrade}.


\subsection{Как поставить пакет?}

Выполните команду

\cmdline{apt-get install имя\_пакета}

При установке пакета всегда проверяются зависимости, и если становка
пакета требует установки или удаления других пакетов, вам будет предложено
ознакомиться с возможными последствиями.

В случае, если вы имеете просто файл пакета, и уверены, что все зависимости удовлетворены, можно установить пакет командой

\cmdline{dpkg -i имя\_пакета.deb}


\subsection{Как удалить пакет?}

Выполните команду

\cmdline{apt-get remove имя\_пакета}

если вы хотите оставить файлы настроек, или

\cmdline{apt-get remove -{}-purge имя\_пакета}

если вы хотите удалить пакет так, будто он у вас и не был установлен.

При удалении пакета всегда проверяются зависимости, и если удаление
пакета требует установки или удаления других пакетов, вам будет предложено
ознакомиться с возможными последствиями. Пример:

\begin{verbatim}root@moria:~# apt-get remove tetex*
Reading Package Lists...
Done Building Dependency Tree...
Done
Note, selecting tetex-extra instead of tetex-nonfree
Note, selecting libkpathsea3 instead of tetex-lib
The following packages will be REMOVED:
  dvi2dvi dvi2ps latex2rtf libkpathsea3 tetex-base tetex-bin tetex-extra
  texmacs
0 packages upgraded, 0 newly installed, 8 to remove and 0  not upgraded.
Need to get 0B of archives. After unpacking 98.2MB will be freed.
Do you want to continue? [Y/n]
\end{verbatim}

\subsection{Как мне сделать собственный \filename{.deb} пакет?}

Я рассмотрю здесь простой способ, основанный на ручной сборке пакета,
без использования специфических утилит типа \program{deb-make} и других.

Для начала, вы должны иметь, то что вам нужно установить с помощью
собираемого вами пакета. Путь это будет какая-либо утилита, расширяющие
возможности системы. (С тем же успехом - это могут быть дополнительные
файлы шрифтов или еще что-нибудь). Пусть эта утилита называется \program{probe}.
Положим, что к этой утилите вы написали страничку руководства \filename{man}
с названием \filename{probe.1} и кроме того положим, что есть какой-либо
файл, где разобран пример работы с данной утилитой с именем \filename{example}.
Путь файл с примером и страничка руководства называются сопровождающими
файлами.

Важно, чтобы вы представляли, где должна быть размещена эта утилита
и сопровождающие ее файлы. Обычно исполняемые файлы размещают в \filename{/usr/bin}.
Странички руководства man размещают в \filename{/usr/man/man.1}, а всякие
примеры в \filename{/usr/lib/имя\_утилиты}.
Пусть так будет и в нашем случае.

Итак, выполняем следующие шаги: 

\begin{enumerate}
\item Создаем временный каталог с именем \filename{DEB}
\item Создаем в этом каталоге подкаталоги, в которые нужно поместить утилиту
и сопровождающие файлы

Создаем в этом каталоге подкаталоги, в которые нужно поместить утилиту
и сопровождающие файлы. При этом каталоги создаются так, как будто
DEB является корневым каталогом. Таким образом, в нашем случае, файлы
должны быть размещены следующим образом:

\filename{DEB/usr/bin/probe}

\filename{DEB/usr/man/man1/probe.1}

\filename{DEB/usr/lib/probe/example}

\item Создаем в каталоге \filename{DEB} служебный каталог с именем \filename{debian}
\item В этом каталоге создаем обязательный файл \filename{control} и по вашему
желанию также могут быть добавлены файлы \filename{preinst}, \filename{postinst},
\filename{prerm}, \filename{postrm} и \filename{conffiles}.


Вот для чего они нужны:

\begin{tabular}{|c|c|}
\hline 
\filename{control}&Служебная\\
\hline 
\filename{conffiles}&Список конфигурационных файлов\\
\hline 
\filename{preinst}&Скрипт, выполняемый перед началом установки пакета\\
\hline 
\filename{postinst}&Скрипт, выполняемый после установки пакета\\
\hline 
\filename{prerm}&Скрипт, выполняемый перед удалением пакета\\
\hline 
\filename{postrm}&Скрипт, выполняемый после удаления пакета\\
\hline
\end{tabular}

Нелишним будет напомнить, что скрипты должны иметь права на выполнение,
иначе ничего выполняется у вас не будет. 

Я рассмотрю здесь простой способ, основанный на ручной сборке пакета,
без использования специфических утилит типа \program{deb-make} и других.

\item Теперь заполняем файл \filename{control} служебной информацией.


Эту информацию впоследствии будет использовать менеджер пакетов \program{dpkg}
и программа \program{dselect}. Информацию можно занести в любом текстовом
редакторе. Для нашего случая я привожу уже готовый файл:

\begin{verbatim}
Package: probe
Version: 1.0
Architecture: i386
Maintainer: Ivan Ivanov <ivan@perm.ru>
Description: My probe utility
 This is my utility
\end{verbatim}

\end{enumerate}
Теперь поясним, что к чему. Слова с двоеточиями являются служебными
и выполняют закрепленные за ними функции. Здесь даны далеко не все
возможные слова - остальные найдете на страничке руководства man с
названием \program{deb-control(5)}. За словом Package: должно идти имя
пакета. В этом имени не должно быть заглавных букв или небуквенных
символов типа {}``!'', {}``?'' и т.д.
За словом Version: должен идти номер версии. За словом \citefile{Architecture:}
архитектура машины для которой собирается пакет. Для платформы Intel
это \citefile{i386}. За словом \citefile{Maintainer:} должно следовать имя автора пакета,
с необязательным адресом электронной почты (в нашем случае \citefile{ivan@perm.ru}).
За словом \citefile{Description:} должно следовать краткое, или полное описание
пакета (можно использовать русские буквы, но тогда в \program{dselect}'е вы
будете иметь проблемы). Краткое описание следует непосредственно за
словом. Полное описание начинается со следующей строки.

\emph{Обратите внимание}: перед фразой \citefile{This is my utility} пробел.
Он указывает, что данная фраза является продолжением описания. 

Если его не поставить, то при сборке пакета вы получите сообщение
об ошибке.

\begin{enumerate}
\item Создайте и заполните остальные файлы, указанные в таблице, если ВАШЕМУ
пакету это нужно (в данном случае они не нужны).
\item Для генерации \filename{.deb} пакета наберите команду

\cmdline{dpkg -b имя\_каталога имя\_пакета.deb}

В нашем случае эта команда будет выглядеть так:

\cmdline{dpkg -b DEB probe-1.0.deb}

Если вы правильно выполнили все описанные выше инструкции, то вы получите
файл \filename{probe-1.0.deb}, который вы можете теперь установить через
команду

\cmdline{dpkg -i probe-1.0.deb}.

\end{enumerate}
Не правда ли, все это довольно просто? Вы можете пойти дальше, создав
свое собственное дополнение к стандартному дистрибутиву в стиле \debian
и подключать его через каталог \filename{local} в программе \program{dselect}.
Однако создание такого дополнения, с генерацией файла \filename{Packages} будет
посложнее. По этому я настоятельно рекомендую вам почитать страницы
руководства man с названиями: \program{dpkg(8)}, \program{dpkg-deb(1)},
\program{deb-control(5)} и \program{dpkg-scanpackages(8)}. 

\subsection{Мне нужна программа \program{foo}, а она не входит в стабильный дистрибутив \emph{bar}/не является частью архива \debian. Что мне делать?}
В первом случае вам стоит заглянуть в архивы соответствующего списка рассылки \debian на \htmladdnormallink{lists.debian.org}{http://lists.debian.org} или подписаться на этот список рассылки и спросить. Скорее всего кто-то собрал эту программу для
вашей версии \debian, и сообщил в этот список об этом.

Если эта программа не входит в \debian, обратитесь к списку рассылки и сайту ее разработчиков.

Если же программу еще никто не собрал (или не разместил в собранном виде в Internet), попробуйте сами! Если у вас получится -- разместите готовые пакеты, исходные тексты и патчи в виде депозитария \debian, и сообщите с соответствующий список рассылки об этом.

В случае, если программа является не входит в \debian, ее лицензия не противоречит \emph{DFSG}, и у вас есть желание, возможность и время поддерживать ее для всех платформ, поддерживаемых \debian, попробуйте стать\footnote{
Просьба российским разработчиком \debian рассказать мне о том, что для этого нужно -- для включения в FAQ. -- igor
} \emph{Debian Developer} -- войдите в сообщество разработчиков \debian!

\section{Система X Window}

\subsection{Как заставить работать PS/2 мышь с {}``колёсиком''?}

Для этого вы должны привести файл \filename{XF86Config-4} к следующему виду:

\begin{verbatim}
Section "InputDevice"
     Identifier	"Netscroll"
     Driver		"mouse"
     Option		"CorePointer"
     Option		"Device"		"/dev/psaux"
     Option		"Protocol"		"IMPS/2"
     Option		"ZAxisMapping"		"4 5"
EndSection
\end{verbatim}

Это можно сделать вручную или с помощью \program{deb-conf}, если вы поручили ему ведение этого файла. В этом случае достаточно корректно ответить на вопрос о типе мыши.

\section{Changelog}

\input{changelog}

\end{document}
