% $Id: a4-pkgsrc-ru.tex,v 1.1 2008-06-20 17:12:48 cheusov Exp $
% written by Stefan Schumacher, <stefan [at] net-tex.de>, 2006-01-08
% Die Urheberrechtshinweise dЭrfen nicht entfernt werden.
%\documentclass[10pt,a4paper]{article}
\documentclass[9pt]{article}
\usepackage[pdftex]{graphicx}
\usepackage{multicol,type1cm}
\usepackage[koi8-r]{inputenc}
\usepackage[russian]{babel}
\usepackage[nofancy]{rcsinfo}

\usepackage{epsf,picinpar}

\usepackage{kopf}


\usepackage{geometry}
\geometry{margin=8mm}

\setlength{\parindent}{0pt}
%
% mySection  
% 
\newcommand{\mySection}[1]{\begin{center}\large{\sffamily\bfseries #1}\end{center}}

\begin{document}

\pagestyle{empty}
% Header
\KopfPkgsrcAVier[12]{Многоплатформная система управления ~\\[2mm]
программными пакетами}
% \KopfPkgsrcAVier[18]{A Framework for Portable ~\\[2mm] Software Management}
% Body
\begin{multicols}{2} \setlength{\columnseprule}{0.3pt}
\mySection{Что такое Pkgsrc?}
Pkgsrc (\textit{Package Source}) это система управления пакетами,
изначально разработанная для NetBSD. С тех пор она была перенесена на многие
операционные системы, включая Linux,
Solaris, AIX, OSF/1, DragonflyBSD и даже MS Windows для ее
подсистемы Interix! pkgsrc представляет собой
хорошо организованную структуру
каталогов и Makefile-ов, использующихся для установки
программ вместе с зависимостями
из исходных текстов программ или из бинарных
пакетов. Доступно множество программ для автоматизации управления пакетами.
%Pkgsrc (\textit{Package Source}) is a software management framework
%originally developed for NetBSD. It has since been ported to several
%other operating systems, including Linux, Solaris, AIX, OSF/1,
%DragonflyBSD and even MS Windows with Interix! It is a well ordered
%hierarchy of directories and Makefiles, used to install software and
%all its dependencies from source or binary packages. Additionally,
%several programs are available to automate maintenence tasks.

С помощью pkgsrc вы можете объединить в единое целое весь процесс
управления ПО в гетерогенных сетях.
%With pkgsrc, you can consolidate your whole software management
%process in heterogenous networks.


\mySection{Поддерживаемые операционные системы}
%\mySection{Supported Operating Systems}
%Supported operating systems include, but are not limited to:~\\
Список поддерживаемых ОС включает (список не полон):~\\
\begin{minipage}{0.45\columnwidth}
\begin{itemize}%\itemsep-1ex
\item AIX
\item BSD/OS
\item Darwin PowerPC 
\item DragonFlyBSD
\item FreeBSD
\item IRIX
\item Interix
\end{itemize}
\end{minipage}
\begin{minipage}{0.45\columnwidth}
\begin{itemize}%\itemsep-1ex
\item HP-UX
\item Linux
\item NetBSD
\item OSF/1
\item OpenBSD
\item QNX
\item Solaris
\end{itemize}
\end{minipage}

% \columnbreak
\mySection{Почему вам необходим pkgsrc?}
%\mySection{Why do you need Pkgsrc?}
На современных компьютерах обычно установлены сотни различных программ.
Все они требуют сопровождения, то есть, обновлений, поверок
на наличие проблем безопасности, компилирования из исходных текстов и т.д.
По мере увеличения количества зависимостей между программными
пакетами количество работы резко увеличивается. Выполнение такой работы
вручную практически невозможно, особенно если требуется поддерживать
различные операционные системы различных версий и
на различных аппаратных архитектурах.
%On modern computers, several hundred software applications are
%installed. All this software has to be maintained -- e.g. updated,
%checked for security holes, compiled from source and so on. With the
%increasing dependencies between software packages, the amount of work
%to be done tends to explode. Doing all that work by hand is almost
%impossible -- especially if one has to maintain different operating
%systems on different architectures and in different versions.

Для установки программ вручную, требуется изучить огромный набор утилит,
необходимых для сборки, включая различные версии \textit{configure},
сотни версий \textit{Make} и т.п. Никому не хочется тратить целый
рабочий день, чтобы понять, что именно требуется для сборки
и установки какой-либо программы.
%To install software by hand, one needs to know the whole required
%toolchain -- including several versions of \textit{configure}, several
%hundred versions of \textit{Make} and so on. No one wants to spend a
%whole workday just to figure out which build toolchain is required to
%install that piece of software.

С помощью pkgsrc все эти задачи могут быть автоматизированы, даже в
гетерогенной сети с различными ОС и различными аппаратными
архитектурами.
%Wit pkgsrc, all these tasks can be automated and consolidated -- even
%in a heterogenous network with different operating systems and
%architectures! \


\mySection{Отделение пакетов от операционной системы}
%\mySection{Separate the Packages from the OS}
Некоторые операционные системы и дистрибутивы смешивают
конфигурационные файлы для пакетов и для базовой операционной системы.
Это излишне затрудняет поддержку системы.
%Some operating systems or distributions mix up configuration
%files for the base OS with those of the packages. This makes
%maintenance much harder than it already is.

pkgsrc полностью отделяет операционную систему от пакетов -- все
пакеты находятся в каталоге /usr/pkg. В каталоге /usr/pkg,
предназначенном исключительно для пакетов,
хранится все -- от страниц руководства до конфигурационных файлов.
%Pkgrsc separates the operating system from the packages -- everything
%has its own place under /usr/pkg/. From man pages to configuration
%files and binaries -- /usr/pkg/ holds a well ordered hierarchy of
%directory to be used exclusively by packages.

\end{multicols}

\begin{minipage}{\textwidth}
\begin{minipage}{0.35\textwidth}
\centering
\includegraphics[scale=0.6]{struktur.pdf}~\\
\small \textit{Распаковка архива pkgsrc}
%\small \textit{An extract of the pkgsrc hierarchy}
\end{minipage}
\begin{minipage}{0.65\textwidth}
\centering
\includegraphics[scale=1.6]{ps300.jpg}
\\ \small \textit{pkg\_select, текстовый curses интерфейс для pkgsrc\\}
%\\ \small \textit{pkg\_select, a curses based interface for pkgsrc\\}
\end{minipage}
\end{minipage}



% Footer 
{\scriptsize
\rule{\textwidth}{0.5pt}\\%
All rights reserved. Created by Stefan Schumacher (\texttt{http://www.net-tex.de})
Перевел на русский язык Алексей Чеусов <vle@gmx.net>}
% Do not remove my copyright notice!

\clearpage

\pagestyle{empty}
% Header
%\KopfPkgsrcAVier[18]{A Framework for Portable ~\\[2mm] Software Management}
\KopfPkgsrcAVier[12]{Многоплатформная система управления ~\\[2mm]
программными пакетами}
%
% Body
\begin{multicols}{2} \setlength{\columnseprule}{0.3pt}

\mySection{Предварительно скомпилированные пакеты или компиляция из исходных текстов?}
Что бы вы ни предпочли -- pkgsrc будет полезен.
Если вы хотите устанавливать исключительно бинарные пакеты,
просто установите одну переменную окружения и pkgsrc будет
использовать бинарные пакеты. Энтузиасты со всего мира компилируют
пакеты pkgsrc для различных операционных систем и платформ,
доступные для скачивания всем пользователям pkgsrc
по адресу ftp://ftp.pkgsrc.org
%\mySection{Precompiled Binary Packages or Compilation from Source?}
%No matter how you prefer your software -- pkgsrc will help you. If you
%want installation exclusively from precompiled binary packages, just
%adjust one environment variable and pkgsrc will use binaries. A lot of
%enthusiasts from all over the world compile software with pkgsrc for
%different operating systems and different platforms. Those packages
%are uploaded to ftp://ftp.pkgsrc.org and freely available to all
%pkgsrc users.

Сборка из исходных текстов так же проста, как и использование бинарных
пакетов. pkgsrc автоматически разрешит все зависимости, скачает все
необходимые программы и установит их. Вы можете также
создавать бинарные пакеты, которые затем могут быть установлены
на другие машины. То есть, возможно создание бинарных пакетов для
медленных машин на специальном выделенном сервере.
Pkgsrc может даже выполнять кросс-сборку для другой архитектуры. 
%Compiling from source is as easy as using binary packages. Pkgsrc
%will automatically solve all dependencies, fetch the required
%software and install it. Pkgsrc can also be used to create binary
%packages. Those packages can be installed on other machines. So it is
%possible to build packages for slower machines on a dedicated build
%server. Even crosscompiling of packages can be done on selected
%architectures!

\mySection{Один файл управляет всем!}
%\mySection{One File to Rule them All!}
Весь процесс сборки управляется одним текстовым файлом /etc/mk.conf!
В нем могут быть установлены все необходимые переменные.  Эти
переменные устанавливают глобальные опции сборки. Например, какой компилятор
использовать, какие каталоги использовать во время сборки,
куда должны устанавливаться страницы руководства и т.д.
Кроме глобальных опций имеются также и опции для конфигурации
конкретных пакетов, например, какие зависимые пакеты и каких версий
использовать при сборке.

%The complete build process is controlled via one single text file!  In
%/etc/mk.conf, all required environment variables can be
%adjusted. Those variables determine global options, like which
%compiler and which directories should be used during compilation or
%where the man pages of packages shall be installed. In addition to the
%global options, package specific options can be used to configure
%packages, e.g. which dependencies or which version should be used.

\mySection{Как использовать pkgsrc?}
%\mySection{How do I use Pkgsrc?}
Скачайте pkgsrc с сайта pkgsrc.org с помощью CVS или ftp
и распакуйте его на ваш диск. Pkgsrc - это структура каталогов и файлов,
разбитых на категории. Для установки пакета, войдите в каталог проекта
и запустите команду \textit{make install clean clean-depends} -- 
pkgsrc сделает все остальное.
%Fetch pkgsrc from pkgsrc.org via CVS or FTP and extract it on your
%hard drive. Pkgsrc is a hierarchy of directories and files, ordered
%by categories. To install a package, simply enter the specific
%directory and type \textit{make install clean clean-depends} --
%pkgsrc will do the rest for you!

\mySection{Какие существуют Make-цели (Make-targets)?}
%\mySection{Which Make-Targets do Exist?}
\begin{itemize}\itemsep-1ex
%\item {\tt make fetch}: fetch sources 
\item {\tt make fetch}: скачать исходные тексты программы
%\item {\tt make checksum}: check the sources' integrity
\item {\tt make checksum}: проверить целостность исходных файлов
%\item {\tt make install-depends}: Install all dependencies
\item {\tt make install-depends}: установить зависимые пакеты
%\item {\tt make extract}:  extract sources
\item {\tt make extract}:  распаковать файлы исходных текстов
%\item {\tt make patch}:  apply patches to the source files
\item {\tt make patch}:  добавить правки к исходным текстам
%\item {\tt make configure}: configure the sources
\item {\tt make configure}: конфигурировать программу
%\item {\tt make build}: compile sources
\item {\tt make build}: скомпилировать программу
%\item {\tt make install}: install and register packages
\item {\tt make install}: установить и зарегистрировать пакет
%\item {\tt make package}: create a binary package from sources
\item {\tt make package}: создать бинарный пакет для программы
%\item {\tt make clean}: clean the working directories
\item {\tt make clean}: очистить рабочий каталог сборки
%\item {\tt make clean-depends}: clean the working directories of dependencies
\item {\tt make clean-depends}: очистить рабочие каталоги сборки зависимых пакетов
%\item {\tt make deinstall}: deinstall package
\item {\tt make deinstall}: удалить пакет из системы
%\item {\tt make replace}: replace package with newer version
\item {\tt make replace}: заменить пакет на новую версию
%\item {\tt make update}: update package and dependencies
\item {\tt make update}: обновить пакет и его зависимости
%\item {\tt make fetch-list}: generate a shell script to fetch sources via ftp 
%\item {\tt make fetch-list}: сформировать скрипт на языке shell для скачки исходных текстов по протоколу ftp
%\item {\tt make show-options}: show available packages
\item {\tt make show-options}: показать доступные опции сборки
\end{itemize}



\mySection{Дополнительные программы}
%\mySection{Additional Programs}
\begin{itemize}\itemsep-1ex
%\item \texttt{pkg\_admin} выполнение различных задач администрирования
\item \texttt{pkg\_add, pkg\_delete} установка и обновление пакетов
\item \texttt{pkg\_chk} проверка, обновление и установка пакетов
%\item \texttt{pkg\_tarup} создание архива их файлов установленного пакета
\item \texttt{pkgfind} поиск пакета по ключевым словам
%\item \texttt{pkg\_view} установка пакета в chroot
\item \texttt{cdpack} создание CD с бинарными пакетами
%\item \texttt{pkg\_select} текстовая программа с curses интерфейсом для pkgsrc
%\item \texttt{pkg\_admin} perform various administrative tasks
%\item \texttt{pkg\_add, pkg\_delete} install and upgrade software packages
%\item \texttt{pkg\_chk} check, and optionally update, installed packages
%\item \texttt{pkg\_tarup} tars up installed software packages 
%\item \texttt{pkgfind} search for packages by keyword 
%\item \texttt{pkg\_view} install packages in a chroot
%\item \texttt{cdpack} create CDs with binary packages, solves dependencies
%\item \texttt{pkg\_select} a text based user interface for pkgsrc
\end{itemize}


\mySection{Безопасность}
%\mySection{Security}
Подобно проекту NetBSD, pkgsrc акцентирует свое внимание на
безопасности.  Все исходные файлы и правки для исходных текстов
подписаны с помощью SHA1
и RipeMD160. Обе контрольные суммы проверяются перед тем, как
распаковать пакет. В случае их несоответствия установка пакета
прерывается.
%Like the NetBSD project, Pkgsrc emphasizes security. All source files
%and patches are signed both with a SHA1 and RipeMD160 checksum. Both
%checksums are checked before the sources are extracted, and the
%install process will stop if the checksums do not match.
Кроме контрольных сумм для проверки целостности исходный файлов могут
использоваться подписи OpenPGP.
%При их использовании проникновение троянов в пакеты практически невозможно.
%In addition to checksums, OpenPGP signatures can be used to check the
%integrity of source files. With this procedure enabled, it is almost
%impossible to plant trojan horses in packages.

Для поиска небезопасных пакетов проект pkgsrc поддерживает список
уязвимостей.  Это текстовый файл, который содержит список небезопасных
пакетов.  С помощью программы
\textit{audit\_packages} он может быть скачан и автоматически
сопоставлен с установленными пакетами. Эта проверка
может значительно повысить уровень безопасности ваших систем.
%To find insecure packages easily, the pkgsrc project maintains a vulnerability list. This
%text file contains a list of insecure packages and their vulnerabilities. With the
%program \textit{audit\_packages}, the list can be fetched and automatically compared to
%the installed packages. This task can be automated with cron and can improve your systems security
%dramatically. 

% \mySection{Package Views}
% Usually one only has one version of a specific package installed. But what if you need a
% developer and a stable version in parallel? No problem with pkgsrc and its
% \textit{pkg\_view} facility. Pkg\_view will set up a chroot environment and install as many
% versions of a package in parallel as you want. So you can happily hack on your developer's
% version, while you still use the stable one for everyday business.
% 
% With \textit{mksandbox}, you can automatically create a sandbox, where new packages are
% compiled in. This is a useful tool to test if new package versions and all dependencies
% can be built. 

\mySection{Установка от имени непривилегированного пользователя}
В pkgsrc пользователь без root-привилегий может устанавливать пакеты
в свой домашний каталог.
%\mySection{Installation as User}
%With pkgsrc, a user without root-privileges can install packages into his home directory.
\mySection{Исчерпывающая документация}
%\mySection{Comprehensive Documentation}
Вся система документирована. Руководство по pkgsrc
доступно по адресу
{\tt http://www.NetBSD.org/Documentation/pkgsrc/} или в файле
pkgsrc/doc/pkgsrc.txt
%The whole system is documented. The pkgsrc guide is freely available at
%{\tt http://www.NetBSD.org/Documentation/pkgsrc/} or as pkgsrc/doc/pkgsrc.txt.

% \mySection{Third Party Packages}
% Many of the most important and well-engineered security software
% packages available can be installed flawlessly via NetBSD's pkgsrc.
% Some of those packages are snort, Tripwire, CFS, Nessus, Amap, GnuPG and honeyd.
\end{multicols}


\begin{center}
\rule{\textwidth}{0.5pt}\\%
{\fontsize{30}{30pt}\selectfont \textbf{www.pkgsrc.org}}
\rule{\textwidth}{0.5pt}\\%
\end{center}


% Footer 
%
\rcsInfo $Id: a4-pkgsrc-ru.tex,v 1.1 2008-06-20 17:12:48 cheusov Exp $
{\scriptsize Version \rcsInfoRevision\ as of
\rcsInfoYear-\rcsInfoMonth-\rcsInfoDay. See \texttt{http://www.net-tex.de/netbsd/advocacy} All rights reserved. Created by Stefan Schumacher
(\texttt{http://www.net-tex.de})
На русский язык перевел Алексей Чеусов <vle@gmx.net>}
% Do not remove my copyright notice!
\end{document}
