Целью LFS является создание законченной и пригодной для использования базовой системы, которая содержит все пакеты, необходимые для самовоспроизведения, состоящую при этом из относительно небольшого набора программ, с помощью которых можно расширять систему. Это не означает, что LFS является самой маленькой из возможных систем. В систему включено несколько важных пакетов, которые не являются обязательными. Приведенный ниже список объясняет почему в книгу включен тот или иной пакет.
Acl
Access Control List или ACL — список управления доступом, который определяет, кто или что может получать доступ к объекту (программе, процессу или файлу), и какие именно операции разрешено или запрещено выполнять субъекту (пользователю, группе пользователей).Данный пакет содержит утилиты для администрирования списков управления доступом, которые используются для определения дискреционных прав доступа к файлам и каталогам.
Attr
Этот пакет содержит программы для управления расширенными атрибутами объектов файловой системы.
Autoconf
Этот пакет содержит программы для создания сценариев оболочки, которые могут выполнять автоматическую настройку исходного кода из шаблона разработчика. Он часто необходим для повторной компиляции пакета после обновления процедур сборки.
Automake
Этот пакет содержит программы для создания Make-файлов из шаблона. Он также необходим для повторной компиляции пакета после обновления процедур сборки.
Bash
Этот пакет удовлетворяет требования LSB по предоставлению интерфейса Bourne Shell для системы. Он был выбран среди других пакетов оболочки из-за его повсеместного использования и широких возможностей.
Bc
Этот пакет предоставляет язык числовой обработки произвольной точности. Он необходимым для сборки ядра Linux
Binutils
Этот пакет содержит компоновщик, ассемблер и другие инструменты для работы с объектными файлами. Программы в этом пакете необходимы для компиляции большинства пакетов в системе LFS.
Bison
Этот пакет содержит GNU-версию yacc (Yet Another Compiler Compiler), необходимого для сборки некоторых пакетов в LFS.
Bzip2
Этот пакет содержит программы для сжатия и распаковки файлов. Требуется для распаковки множества пакетов LFS.
Check
Этот пакет содержит тестовую обвязку для других программ.
Coreutils
Этот пакет содержит ряд программ для просмотра файлов и каталогов, и управления ими. Эти программы необходимы для управления файлами через командную строку и для сборки каждого пакета в LFS.
D-Bus
Этот пакет содержит программы для реализации системы межпроцессорного взаимодействия - простого способа взаимодействия приложений друг с другом.
DejaGNU
Этот пакет предоставляет фреймворк для тестирования других программ.
Diffutils
Этот пакет содержит программы, которые показывают различия между файлами или каталогами. Их можно использовать для создания патчей, а также они применяются во многих процедурах сборки
E2fsprogs
Этот пакет содержит утилиты для работы с файловыми системами ext2, ext3 и ext4. Это наиболее распространенные и тщательно протестированные файловые системы, поддерживаемые Linux
Expat
Этот пакет содержит небольшую библиотеку разбора XML. Она требуется модулем Perl XML::Parser.
Expect
Этот пакет содержит инструменты для автоматизации и тестирования, и является расширением к скриптовому языку Tcl, для многих интерактивных приложений. Он обычно используется для тестирования других пакетов.
File
Этот пакет содержит утилиту для определения типа файла или файлов. Некоторым пакетам она нужна в сценариях сборки.
Findutils
Этот пакет предоставляет программы для поиска файлов. Он используется во многих сценариях сборки пакетов.
Flex
Этот пакет содержит утилиту для генерации программ, распознающих шаблоны в тексте. Это версия GNU программы lex (лексический анализатор). Пакет необходим для сборки некоторых пакетов LFS.
Gawk
Этот пакет содержит программы для работы с текстовыми файлами. Это GNU версия awk (Aho-Weinberg-Kernighan). Он используется во многих сценариях сборки пакетов.
GCC
Это коллекция компиляторов Gnu. Он содержит компиляторы C и C++, а также несколько других компиляторов, поддержка которых не предусмотрена в LFS.
GDBM
Этот пакет содержит библиотеку GNU Database Manager. Он используется пакетом Man-DB
Gettext
Этот пакет содержит утилиты и библиотеки для интернационализации и локализации многочисленных пакетов.
Glibc
Этот пакет содержит основную библиотеку C. Программы Linux не будут работать без неё.
GMP
Этот пакет содержит математические библиотеки, предоставляющие полезные функции для вычислений с плавающей точкой. Требуется для сборки GCC.
Gperf
Этот пакет содержит программу, которая генерирует идеальную хеш-функцию из набора ключей. Требуется для пакета Systemd.
Grep
Этот пакет содержит программы для поиска по файлам. Пакет используется в скриптах сборки большинства пакетов.
Groff
Этот пакет содержит программы для обработки и форматирования текста. Одной из важнейших функций этих программ является форматирование man страниц.
GRUB
Это загрузчик операционной системы (GRand Unified Bootloader). Самый гибкий из нескольких доступных загрузчиков.
Gzip
Этот пакет содержит программы для сжатия и распаковки файлов. Он необходим для распаковки множества пакетов в LFS.
Iana-etc
Этот пакет предоставляет данные для сетевых служб и протоколов. Он необходим для обеспечения правильных сетевых возможностей.
Inetutils
Этот пакет содержит программы для базового сетевого администрирования.
Intltool
Этот пакет содержит инструменты для извлечения переводимых строк из исходных файлов.
IProute2
Этот пакет содержит программы для базовой и расширенной работы в сетях IPv4 и IPv6. Он был выбран среди других распространенных пакетов сетевых инструментов (net-tools) из-за его поддержки IPv6.
Jinja2
Этот пакет представляет собой модуль Python для создания текстовых шаблонов. Требуется для сборки Systemd.
Kbd
Этот пакет содержит таблицы раскладок, утилиты управления клавиатурой для неамериканских клавиатур, кроме этого, с ним поставляется большой набор консольных шрифтов.
Kmod
Этот пакет содержит программы, необходимые для администрирования модулей ядра Linux.
Less
Этот пакет содержит очень хороший просмотрщик текстовых файлов, который позволяет использовать прокрутку верх/вниз при просмотре. Многие пакеты используют его для постраничного вывода.
Libcap
Этот пакет реализует интерфейсы пользовательского пространства для возможностей POSIX 1003.1e, доступных в ядре Linux.
Libelf
Проект elfutils предоставляет библиотеки и инструменты для файлов ELF и данных DWARF. Большинство утилит в этом пакете доступны в других пакетах, но эта библиотека необходима для сборки ядра Linux с использованием стандартной (и наиболее эффективной) конфигурации.
Libffi
Этот пакет реализует переносимый программный интерфейс высокого уровня для различных соглашений о вызовах. Некоторые программы могут не знать во время компиляции, какие аргументы должны быть переданы в функцию. Например, интерпретатору во время выполнения может быть сообщено о количестве и типах аргументов, используемых для вызова данной функции. Libffi можно использовать как мост от интерпретатора к скомпилированному коду.
Libpipeline
Пакет Libpipeline содержит библиотеку для гибкого и удобного управления конвейерами подпроцессов. Она требуется для Man-DB.
Libtool
Этот пакет содержит сценарий поддержки универсальной библиотеки GNU. Он объединяет сложность использования общих библиотек в согласованный переносимый интерфейс. Библиотека необходима наборам тестов в других пакетах LFS.
Linux Kernel
Этот пакет является ядром операционной системой.
M4
Этот пакет содержит текстовый макропроцессор, полезный в качестве инструмента сборки для других программ.
Make
Этот пакет содержит программу для управления сборкой пакетов. При сборке она необходима почти для каждого пакета в LFS.
MarkupSafe
Этот пакет представляет собой модуль Python для безопасной обработки строк в HTML/XHTML/XML. Необходим для Jinja2
Man-DB
Этот пакет содержит программы для поиска и просмотра справочных страниц. Он был выбран вместо пакета man из-за превосходных возможностей интернационализации. Содержит man.
Man-pages
Этот пакет представляет собой содержимое основных справочных страниц Linux.
Meson
Этот пакет предоставляет программный инструмент для автоматизации создания программного обеспечения. Основная цель Meson — свести к минимуму количество времени, которое разработчики программного обеспечения должны тратить на настройку своей системы сборки. Требуется для сборки Systemd, а также многих пакетов BLFS.
MPC
Этот пакет содержит функции для арифметики комплексных чисел. Необходим GCC.
MPFR
Этот пакет содержит функции для арифметики с произвольной точностью. Необходим GCC.
Ninja
Этот пакет предоставляет небольшую систему сборки, ориентированную на скорость. Он предназначен для того, чтобы его входные файлы генерировались системой сборки более высокого уровня, и для максимально быстрого запуска сборок. Необходим для Meson.
Ncurses
Этот пакет содержит библиотеки для независимой от терминала обработки символьных экранов. Он часто используется для управления курсором в меню. Необходим ряду пакетов в LFS.
Openssl
Этот пакет содержит инструменты управления и библиотеки, относящиеся к криптографии. Они предоставляют криптографические функций другим пакетам, включая ядро Linux.
Patch
Этот пакет содержит программу для изменения или создания файлов путем применения файла patch, обычно создаваемого программой diff. Он необходим процедуре сборки для некоторых пакетов LFS.
Perl
Этот пакет является интерпретатором языка PERL. Он необходим для установки и тестирования некоторых пакетов LFS.
Pkg-config
Этот пакет предоставляет программу, которая возвращает метаданные об установленной библиотеке или пакете.
Procps-NG
Этот пакет содержит программы для мониторинга процессов. Набор полезен для системного администрирования, а также используются загрузочными сценариями LFS.
Psmisc
Этот пакет содержит программы для отображения информации о запущенных процессах. Этот набор программ полезен для системного администрирования.
Python 3
Этот пакет предоставляет интерпретируемый язык программирования, философия которого делает упор на удобочитаемость кода.
Readline
Этот пакет представляет собой набор библиотек, предлагающих возможности редактирования командной строки и средства для работы с историей команд. Используется командным интерпретатором Bash.
Sed
Этот пакет позволяет редактировать текст, не открывая его в текстовом редакторе. Он необходим сценариям настройки многих пакетов LFS.
Shadow
Этот пакет содержит программы для безопасной обработки паролей.
Systemd
Этот пакет предоставляет систему инициализации init и ряд дополнительных возможностей загрузки и управления системой в качестве альтернативы Sysvinit. Он используется многими дистрибутивами.
Tar
Этот пакет предоставляет возможность архивирования и извлечения практически всех пакетов, используемых в LFS.
Tcl
Этот пакет содержит командный язык инструментов, используется во многих наборах тестов.
Texinfo
Этот пакет предоставляет программы для чтения, записи и преобразования информационных страниц. Используется в процедурах установки многих пакетов LFS.
Util-linux
Этот пакет содержит различные служебные программы. Среди них утилиты для работы с файловыми системами, консолями, разделами и сообщениями.
Vim
Этот пакет содержит редактор. Его выбрали из-за совместимости с классическим редактором vi и огромного количества возможностей. Редактор является очень личным выбором для каждого пользователя. По желанию можно заменить любым другим редактором.
Wheel
Этот пакет содержит модуль Python, который представляет собой эталонную реализацию механизма упаковки Python.
XML::Parser
Этот пакет представляет собой модуль Perl, который взаимодействует с Expat.
XZ Utils
Этот пакет содержит программы для сжатия и распаковки файлов. Он обеспечивает высокое сжатие и используется для распаковки пакетов в формате XZ или LZMA.
Zlib
Этот пакет содержит процедуры сжатия и распаковки, используемые некоторыми программами.
Zstd
Этот пакет содержит процедуры сжатия и распаковки, используемые некоторыми программами. Он обеспечивает высокие коэффициенты сжатия и очень широкий диапазон компромиссов между сжатием и скоростью.