lfs-ru/prologue/why.xml
2024-03-19 16:22:16 +05:00

637 lines
30 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % general-entities SYSTEM "../general.ent">
%general-entities;
]>
<sect1 id="pre-why">
<?dbhtml filename="package-choices.html"?>
<title>Информация о пакетах, используемых в этой книге</title>
<para>Целью LFS является создание законченной и пригодной для использования
базовой системы, которая содержит все пакеты, необходимые для её функционирования,
состоящую при этом из относительно небольшого набора программ, и возможности
которой можно расширять в зависимости от потребностей пользователя. Это не
означает, что LFS является самой маленькой из возможных систем. В систему
включено несколько важных пакетов, которые не являются обязательными. Приведенный
ниже список объясняет почему в книгу включен тот или иной пакет.</para>
<itemizedlist>
<listitem>
<para>Acl</para>
<para>Access Control List или ACL — список управления доступом, который
определяет, кто или что может получать доступ к объекту (программе,
процессу или файлу), и какие именно операции разрешено или запрещено
выполнять субъекту (пользователю, группе пользователей).Данный пакет
содержит утилиты для администрирования списков управления доступом,
которые используются для определения дискреционных прав доступа к файлам
и каталогам.</para>
</listitem>
<listitem>
<para>Attr</para>
<para>Этот пакет содержит программы для управления расширенными
атрибутами объектов файловой системы.
</para>
</listitem>
<listitem>
<para>Autoconf</para>
<para>Этот пакет содержит программы для создания сценариев
оболочки, которые могут выполнять автоматическую настройку
исходного кода из шаблона разработчика. Он часто необходим для
повторной компиляции пакета после обновления процедур сборки.</para>
</listitem>
<listitem>
<para>Automake</para>
<para>Этот пакет содержит программы для создания Make-файлов из шаблона.
Он также необходим для повторной компиляции пакета после обновления
процедур сборки.</para>
</listitem>
<listitem>
<para>Bash</para>
<para>Этот пакет удовлетворяет требования LSB по предоставлению интерфейса
Bourne Shell для системы. Он был выбран среди других пакетов оболочки из-за
его повсеместного использования и широких возможностей.</para>
</listitem>
<listitem>
<para>Bc</para>
<para>Этот пакет предоставляет язык числовой обработки произвольной точности.
Он необходимым для сборки ядра Linux</para>
</listitem>
<listitem>
<para>Binutils</para>
<para>Этот пакет содержит компоновщик, ассемблер и другие инструменты для
работы с объектными файлами. Программы в этом пакете необходимы для компиляции
большинства пакетов в системе LFS.</para>
</listitem>
<listitem>
<para>Bison</para>
<para>Этот пакет содержит GNU-версию yacc (Yet Another Compiler
Compiler), необходимого для сборки некоторых пакетов в LFS.</para>
</listitem>
<listitem>
<para>Bzip2</para>
<para>Этот пакет содержит программы для сжатия и распаковки файлов. Используется
для распаковки множества пакетов LFS.</para>
</listitem>
<listitem>
<para>Check</para>
<para>Этот пакет содержит тестовую обвязку для других программ.</para>
</listitem>
<listitem>
<para>Coreutils</para>
<para>Этот пакет содержит ряд программ для просмотра файлов и каталогов,
и управления ими. Эти программы необходимы для управления файлами через
командную строку и для сборки каждого пакета в LFS.</para>
</listitem>
<listitem revision="systemd">
<para>D-Bus</para>
<para>Этот пакет содержит программы для реализации системы межпроцессного
взаимодействия - простого способа взаимодействия приложений
друг с другом.
</para>
</listitem>
<listitem>
<para>DejaGNU</para>
<para>Этот пакет предоставляет фреймворк для тестирования других программ.</para>
</listitem>
<listitem>
<para>Diffutils</para>
<para>Этот пакет содержит программы, которые показывают различия между файлами
или каталогами. Их можно использовать для создания патчей, а также они
применяются во многих процедурах сборки</para>
</listitem>
<listitem>
<para>E2fsprogs</para>
<para>Этот пакет содержит утилиты для работы с файловыми системами ext2, ext3
и ext4. Это наиболее распространенные и тщательно протестированные файловые системы,
поддерживаемые Linux</para>
</listitem>
<listitem>
<para>Expat</para>
<para>Этот пакет содержит небольшую библиотеку разбора XML.Она необходима
для модуля Perl XML::Parser.</para>
</listitem>
<listitem>
<para>Expect</para>
<para>Этот пакет содержит инструменты для автоматизации и тестирования, и
является расширением к скриптовому языку Tcl, для многих интерактивных приложений.
Он обычно используется для тестирования других пакетов.</para>
</listitem>
<listitem>
<para>File</para>
<para>Этот пакет содержит утилиту для определения типа файла или файлов.
Некоторым пакетам она нужна в сценариях сборки.</para>
</listitem>
<listitem>
<para>Findutils</para>
<para>Этот пакет предоставляет программы для поиска файлов. Он используется
во многих сценариях сборки пакетов.</para>
</listitem>
<listitem>
<para>Flex</para>
<para>Этот пакет содержит утилиту для генерации программ, распознающих
шаблоны в тексте. Это версия GNU программы lex (лексический анализатор).
Пакет необходим для сборки некоторых пакетов LFS.</para>
</listitem>
<listitem>
<para>Gawk</para>
<para>Этот пакет содержит программы для работы с текстовыми файлами.
Это GNU версия awk (Aho-Weinberg-Kernighan). Он используется во многих
сценариях сборки пакетов.</para>
</listitem>
<listitem>
<para>GCC</para>
<para>Это коллекция компиляторов Gnu. Он содержит компиляторы
C и C++, а также несколько других компиляторов, поддержка
которых не предусмотрена в LFS.
</para>
</listitem>
<listitem>
<para>GDBM</para>
<para>Этот пакет содержит библиотеку GNU Database Manager. Он используется
пакетом Man-DB</para>
</listitem>
<listitem>
<para>Gettext</para>
<para>Этот пакет содержит утилиты и библиотеки для интернационализации и
локализации многочисленных пакетов.</para>
</listitem>
<listitem>
<para>Glibc</para>
<para>Этот пакет содержит основную библиотеку C. Программы Linux не будут
работать без неё.</para>
</listitem>
<listitem>
<para>GMP</para>
<para>Этот пакет содержит математические библиотеки, предоставляющие
полезные функции для вычислений с плавающей точкой. Требуется для сборки GCC.</para>
</listitem>
<listitem>
<para>Gperf</para>
<para>Этот пакет содержит программу, которая генерирует идеальную хеш-функцию
из набора ключей. Необходим для пакета <phrase revision='sysv'>Udev</phrase>
<phrase revision='systemd'>Systemd</phrase>.</para>
</listitem>
<listitem>
<para>Grep</para>
<para>Этот пакет содержит программы для поиска по файлам. Пакет
используется в скриптах сборки большинства пакетов.</para>
</listitem>
<listitem>
<para>Groff</para>
<para>Этот пакет содержит программы для обработки и форматирования текста.
Одной из важнейших функций этих программ является форматирование man страниц.</para>
</listitem>
<listitem>
<para>GRUB</para>
<para>Это загрузчик операционной системы (GRand Unified
Bootloader). Самый гибкий из нескольких доступных загрузчиков.
</para>
</listitem>
<listitem>
<para>Gzip</para>
<para>Этот пакет содержит программы для сжатия и распаковки файлов. Он
необходим для распаковки множества пакетов в LFS.</para>
</listitem>
<listitem>
<para>Iana-etc</para>
<para>Этот пакет предоставляет данные для сетевых служб и протоколов. Он
необходим для обеспечения правильных сетевых возможностей.</para>
</listitem>
<listitem>
<para>Inetutils</para>
<para>Этот пакет содержит программы для базового сетевого администрирования.</para>
</listitem>
<listitem>
<para>Intltool</para>
<para>Этот пакет содержит инструменты для извлечения переводимых строк из
исходных файлов.</para>
</listitem>
<listitem>
<para>IProute2</para>
<para>Этот пакет содержит программы для базовой и расширенной работы в сетях
IPv4 и IPv6. Он был выбран среди других распространенных пакетов сетевых инструментов
(net-tools) из-за его поддержки IPv6.</para>
</listitem>
<listitem revision="systemd">
<para>Jinja2</para>
<para>Этот пакет представляет собой модуль Python для создания текстовых шаблонов.
Требуется для сборки Systemd.</para>
</listitem>
<listitem>
<para>Kbd</para>
<para>Этот пакет содержит таблицы раскладок, утилиты управления клавиатурой
для неамериканских клавиатур, кроме этого, с ним поставляется большой набор
консольных шрифтов.</para>
</listitem>
<listitem>
<para>Kmod</para>
<para>Этот пакет содержит программы, необходимые для администрирования модулей ядра Linux.</para>
</listitem>
<listitem>
<para>Less</para>
<para>Этот пакет содержит очень хороший просмотрщик текстовых файлов, который позволяет
использовать прокрутку верх/вниз при просмотре. Многие пакеты используют его для постраничного
вывода.</para>
</listitem>
<listitem>
<para>Libcap</para>
<para>Этот пакет реализует интерфейсы пользовательского пространства для
возможностей POSIX 1003.1e, доступных в ядре Linux.
</para>
</listitem>
<listitem>
<para>Libelf</para>
<para>Проект elfutils предоставляет библиотеки и инструменты для файлов ELF и
данных DWARF. Большинство утилит в этом пакете доступны в других пакетах, но
эта библиотека необходима для сборки ядра Linux с использованием стандартной
(и наиболее эффективной) конфигурации.</para>
</listitem>
<listitem>
<para>Libffi</para>
<para>Этот пакет реализует переносимый программный интерфейс высокого уровня для
различных соглашений о вызовах. Некоторые программы могут не знать во время компиляции,
какие аргументы должны быть переданы в функцию. Например, интерпретатору во время
выполнения может быть сообщено о количестве и типах аргументов, используемых для
вызова данной функции. Libffi можно использовать как мост от интерпретатора к
скомпилированному коду.</para>
</listitem>
<listitem>
<para>Libpipeline</para>
<para>Пакет Libpipeline содержит библиотеку для гибкого и удобного управления
конвейерами подпроцессов. Она необходима для Man-DB.</para>
</listitem>
<listitem>
<para>Libtool</para>
<para>Этот пакет содержит сценарий поддержки универсальной библиотеки GNU. Он
объединяет сложность использования общих библиотек в согласованный переносимый
интерфейс. Библиотека необходима наборам тестов в других пакетах LFS.</para>
</listitem>
<listitem>
<para>Libxcrypt</para>
<para>Этот пакет предоставляет библиотеку
<systemitem class='library'>libcrypt</systemitem>, необходимую различным пакетам
(в частности, Shadow) для хеширования паролей. Он заменяет устаревшую реализацию
<systemitem class='library'>libcrypt</systemitem> в Glibc.</para>
</listitem>
<listitem>
<para>Linux Kernel</para>
<para>Этот пакет является ядром операционной системой.</para>
</listitem>
<listitem>
<para>M4</para>
<para>Этот пакет содержит текстовый макропроцессор, полезный в качестве инструмента
сборки для других программ.</para>
</listitem>
<listitem>
<para>Make</para>
<para>Этот пакет содержит программу для управления сборкой пакетов. При сборке
она необходима почти для каждого пакета в LFS.</para>
</listitem>
<listitem revision="systemd">
<para>MarkupSafe</para>
<para>Этот пакет представляет собой модуль Python для безопасной обработки строк
в HTML/XHTML/XML. Необходим для Jinja2</para>
</listitem>
<listitem>
<para>Man-DB</para>
<para>Этот пакет содержит программы для поиска и просмотра справочных страниц. Он
был выбран вместо пакета <application>man</application> из-за превосходных
возможностей интернационализации. Содержит man.</para>
</listitem>
<listitem>
<para>Man-pages</para>
<para>Этот пакет представляет собой содержимое основных справочных страниц Linux.</para>
</listitem>
<listitem>
<para>Meson</para>
<para>Этот пакет предоставляет программный инструмент для автоматизации создания
программного обеспечения. Основная цель Meson — свести к минимуму количество
времени, которое разработчики программного обеспечения должны тратить на настройку
своей системы сборки. Требуется для сборки Systemd, а также многих пакетов BLFS.</para>
</listitem>
<listitem>
<para>MPC</para>
<para>Этот пакет содержит функции для арифметики комплексных чисел. Необходим GCC.</para>
</listitem>
<listitem>
<para>MPFR</para>
<para>Этот пакет содержит функции для арифметики произвольной точности. Необходим GCC.</para>
</listitem>
<listitem>
<para>Ninja</para>
<para>Этот пакет предоставляет небольшую систему сборки, ориентированную на скорость. Он
предназначен для того, чтобы его входные файлы генерировались системой сборки более высокого
уровня, и для максимально быстрого запуска сборок. Необходим для Meson.</para>
</listitem>
<listitem>
<para>Ncurses</para>
<para>Этот пакет содержит библиотеки для независимой от терминала обработки
символьных экранов. Он часто используется для управления курсором в меню.
Необходим ряду пакетов в LFS.</para>
</listitem>
<listitem>
<para>Openssl</para>
<para>Этот пакет содержит инструменты управления и библиотеки, относящиеся
к криптографии. Они предоставляют криптографические функций другим
пакетам, включая ядро Linux.</para>
</listitem>
<listitem>
<para>Patch</para>
<para>Этот пакет содержит программу для изменения или создания файлов путем применения
файла <emphasis>patch</emphasis>, обычно создаваемого программой
<application>diff</application>. Он необходим процедуре сборки для некоторых пакетов LFS.</para>
</listitem>
<listitem>
<para>Perl</para>
<para>Этот пакет является интерпретатором языка PERL. Он необходим для установки
и тестирования некоторых пакетов LFS.</para>
</listitem>
<listitem>
<para>Pkgconf</para>
<para>Этот пакет содержит программу, которая помогает настраивать флаги компилятора
и компоновщика для библиотек разработки. Программа может быть использована в качестве
замены <command>pkg-config</command>, который необходим системе сборки многих пакетов.
Он поддерживается более активно и развивается немного быстрее, чем оригинальный пакет
Pkg-config.</para>
</listitem>
<listitem>
<para>Procps-NG</para>
<para>Этот пакет содержит программы для мониторинга процессов. Набор полезен
для системного администрирования, а также используются загрузочными сценариями LFS.</para>
</listitem>
<listitem>
<para>Psmisc</para>
<para>Этот пакет содержит программы для отображения информации о запущенных
процессах. Этот набор программ полезен для системного администрирования.</para>
</listitem>
<listitem>
<para>Python 3</para>
<para>Этот пакет предоставляет интерпретируемый язык программирования, философия
которого делает упор на удобочитаемость кода.</para>
</listitem>
<listitem>
<para>Readline</para>
<para>Этот пакет представляет собой набор библиотек, предлагающих возможности
редактирования командной строки и средства для работы с историей команд. Используется
командным интерпретатором Bash.</para>
</listitem>
<listitem>
<para>Sed</para>
<para>Этот пакет позволяет редактировать текст, не открывая его в текстовом
редакторе. Он необходим сценариям настройки многих пакетов LFS.</para>
</listitem>
<listitem>
<para>Shadow</para>
<para>Этот пакет содержит программы для безопасной обработки паролей.</para>
</listitem>
<listitem revision="sysv">
<para>Sysklogd</para>
<para>Этот пакет содержит программы для регистрации системных сообщений, которые
генерируются ядром или процессами демона при возникновении необычных событий.</para>
</listitem>
<listitem revision="systemd">
<para>Systemd</para>
<para>Этот пакет предоставляет систему инициализации <application>init</application>
и ряд дополнительных возможностей загрузки и управления системой в качестве
альтернативы Sysvinit. Он используется многими дистрибутивами.
</para>
</listitem>
<listitem revision="sysv">
<para>Sysvinit</para>
<para>Этот пакет содержит систему инициализации <application>init</application>,
родительской элемент всех остальных процессов в работающей системе Linux.</para>
</listitem>
<listitem revision="sysv">
<para>Udev</para>
<para>Этот пакет представляет собой диспетчер устройств. Он контролирует
разрешения, имена и символические ссылки устройств в каталоге /dev, когда
устройства добавляются или удаляются из системы.
</para>
</listitem>
<listitem>
<para>Tar</para>
<para>Этот пакет предоставляет возможность архивирования и извлечения практически
всех пакетов, используемых в LFS.</para>
</listitem>
<listitem>
<para>Tcl</para>
<para>Этот пакет содержит командный язык инструментов, используется во многих
наборах тестов.</para>
</listitem>
<listitem>
<para>Texinfo</para>
<para>Этот пакет предоставляет программы для чтения, записи и преобразования информационных
страниц. Используется в процедурах установки многих пакетов LFS.</para>
</listitem>
<listitem>
<para>Util-linux</para>
<para>Этот пакет содержит различные служебные программы. Среди них утилиты для
работы с файловыми системами, консолями, разделами и сообщениями.</para>
</listitem>
<listitem>
<para>Vim</para>
<para>Этот пакет содержит редактор. Его выбрали из-за совместимости с классическим
редактором vi и огромного количества возможностей. Редактор является очень личным
выбором для каждого пользователя. По желанию можно заменить любым другим редактором.</para>
</listitem>
<listitem>
<para>Wheel</para>
<para>Этот пакет содержит модуль Python, который представляет собой эталонную
реализацию механизма упаковки Python.
</para>
</listitem>
<listitem>
<para>XML::Parser</para>
<para>Этот пакет представляет собой модуль Perl, который взаимодействует с Expat.</para>
</listitem>
<listitem>
<para>XZ Utils</para>
<para>Этот пакет содержит программы для сжатия и распаковки файлов. Он обеспечивает
высокое сжатие и используется для распаковки пакетов в формате XZ или LZMA.</para>
</listitem>
<listitem>
<para>Zlib</para>
<para>Этот пакет содержит процедуры сжатия и распаковки, используемые некоторыми
программами.</para>
</listitem>
<listitem>
<para>Zstd</para>
<para>Этот пакет содержит процедуры сжатия и распаковки, используемые некоторыми
программами. Он обеспечивает высокие коэффициенты сжатия и очень широкий диапазон
компромиссов между сжатием и скоростью.</para>
</listitem>
</itemizedlist>
</sect1>