Как отмечалось ранее, целью проекта LFS является создание полной и полезной системы базового уровня. В состав системы входят все пакеты, необходимые для тиражирования системы, причем в минимальном базовом количестве, который предоставляет пользователю возможность по его выбору создавать более полную систему. Это не значит, что LFS является самой маленькой из возможных систем. В нее включены несколько важных пакетов, которые не являются строго необходимыми. В приведенном ниже списке описывается каждый пакет, используемый в настоящей книге.
Autoconf
В этом пакете находятся программы создания скриптов, с помощью которых можно по шаблону, предложенному разработчиком, автоматически конфигурировать исходный код. Часто необходим в процедурах сборки для того, чтобы пересобрать пакет после его обновления.
Automake
В этом пакете находятся программы для генерации файлов Make в соответствие с шаблоном. Часто необходим в процедурах сборки для пересборки пакета после его обновления.
Bash
С помощью этого пакета в системе в соответствие с требованиями LSB Core реализуется интерфейс командной оболочки Bourne Shell. Эта оболочка выбрана среди других из-за того, что обычно используется именно она, и из-за того, что в ней есть дополнительные возможности, выходящие за пределы обычных функций оболочки.
Binutils
В этом пакете находится компоновщик, ассемблер и другие инструментальные средства, предназначенные для работы с объектными файлами. Программы, имеющиеся в данном пакете, необходимые для компиляции большинства пакетов как в системе LFS, так и вне ее.
Bison
В этом пакете находится версия GNU компилятора yacc (Yet Another Compiler Compiler — Еще Один Компилятор Компиляторов), необходимый при сборке некоторых других программ LFS.
Bzip2
В этом пакете находятся программы для сжатия и распаковки файлов. Необходим для распаковки множества пакетов LFS.
Coreutils
В этом пакете находится ряд важных программ, необходимых для просмотра файлов и директориев и и работы с ними. Эти программы необходимы для управления файлами из командной строки; также используются в процедурах установки каждого пакета LFS.
DejaGNU
В этом пакете находится фреймворк тестирования других программ. Устанавливается только во временном наборе инструментальных средств.
Diffutils
В этом пакете находятся программы, с помощью которых выявляются различия в файлах или директориях. Эти программы можно использовать для создания патчей, они также используются в процедурах сборки многих пакетов.
Expect
В этом пакете находится программа, реализующая диалоги между скриптами и другими интерактивными программами. Обычно используется при тестировании других пакетов. Устанавливается только во временном наборе инструментальных средств.
E2fsprogs
В этом пакете находятся утилиты обработки файловых систем ext2, ext3 и ext4. Это наиболее распространенные и тщательно протестированные файловые системы, которые поддерживаются в Linux.
File
В этом пакете находится утилита определения типа указанного файла или файлов. Утилита нужна для сборки ряда пакетов.
Findutils
В этом пакете находятся программы поиска файлов в файловой системе. Используется в скриптах сборки многих пакетов.
Flex
В этом пакете находится утилита генерации программ, которые могут обрабатывать шаблоны, находящиеся в тексте. Это версия GNU программы lex (лексический анализатор). Требуется при сборке некоторых пакетов LFS.
Gawk
В этом пакете находятся программы для работы с текстовыми файлами. Это версия GNU программы AWK (Ахо-Вайнберг-Керниган). Используется в скриптах сборки многих других пакетов.
Gcc
Этот пакет является коллекцией компиляторов GNU Compiler Collection. В нем находятся компиляторы языков C и C++, а также ряд других, которые не используются в LFS.
GDBM
В этом пакете находятся библиотека менеджера базы данных GNU (GNU Database Manager). Он используется в другом пакете LFS - Man-DB.
Gettext
В этом пакете находятся утилиты и библиотеки интернационализации и локализации, используемые в огромном количестве других пакетов.
Glibc
В этом пакете находится основная библиотека C. Без нее программы Linux работать не будут.
GMP
В этом пакете находятся математические библиотеки, предоставляющие полезные функции арифметических расчетов произвольной точности. Требуется для сборки Gcc.
Grep
В этом пакете находятся программы поиска в файлах. Программы используются в большинстве пакетов в скриптах сборки пакетов.
Groff
В этом пакете находятся программы обработки и форматирования текста. Одной из важных функций этих программ является форматирование страниц man.
GRUB
Grand Unified Boot Loader. Этот пакет является начальным загрузчиком. Это один из нескольких имеющихся загрузчиков, но он наиболее гибкий.
Gzip
В этом пакете находятся программы сжатия и распаковки файлов. Он необходим для распаковки многих пакетов в проекте LFS и за его пределами.
Iana-etc
В этом пакете находятся данные, используемые сетевыми сервисами и протоколами. Он необходим для правильной работы сетевых средств.
Inetutils
В этом пакете находятся программы базового администрирования сети.
IProute2
В этом пакете находятся программы базового и расширенного сетевых протоколов IPv4 и IPv6. Он был выбран среди других пакетов, обычно используемых сетевых инструментальных средств (net-tools), из-за того, что позволяет использовать IPv6.
Kbd
В этом пакете находятся основные файлы таблиц обработки клавиатуры, клавиатурные утилиты для неамериканских раскладок, а также ряд консольных шрифтов.
Less
В этом пакете находится очень хороший просмотрщик текстовых файлов, который при просмотре файла позволяет выполнять прокрутку текста вверх или вниз. Он также используется в пакете Man-DB для просмотра страниц man.
Libtool
В этом пакете находится скрипт поддержки основных библиотек GNU. Он является обверткой, экранирующей сложность обращения к совместно используемым библиотекам и предоставляющей удобный системо-независимый интерфейс. Используется в тестовых наборах других пакетов LFS.
Linux Kernel
Этот пакет является операционной системой. Это - Linux в среде GNU/Linux.
M4
В этом пакете находится универсальный текстовый макропроцессор, используемый как инструмент сборки других программ.
Make
В этом пакете находится программа, осуществляющая сборку пакетов. Она требуется почти каждому пакету в LFS.
Man-DB
В этом пакете находятся программы поиска и просмотра страниц man. Он был выбран вместо пакета man из-за его превосходных возможностей локализации. В этом пакете присутствует программа man.
Man-pages
В этом пакете находятся фактическое содержание основных страниц man системы Linux.
Module-Init-Tools
В этом пакете находятся программы, необходимые для администрирования модулей ядра Linux.
MPC
В этом пакете находятся функции арифметических комплексных чисел. Он необходим для Gcc.
MPFR
В этом пакете находятся функции арифметических операций различной степени точности. Он необходим для Gcc.
Ncurses
В этом пакете находятся библиотеки обработки экранных символов, не зависящей от используемого терминала. Пакет часто используется для управления курсором в системе меню. Он необходим в ряде пакетов системы LFS.
Patch
В этом пакете содержится программа изменения или создания файлов, использующая патч, который обычно создается с помощью программы diff. Пакет необходим для процедур сборки некоторых пакетов LFS.
Perl
Этот пакет является интерпретатором времени выполнения языка PERL. Он необходим для инсталляции; в некоторых пакетах LFS он необходим для работы с наборами тестов.
Pkg-config
В этом пакете находится инструментальное средство, необходимое при конфигурировании и в процессе make. Позволяет определять пути include и/или пути к библиотекам инструментальных средств сборки пакетов. Требуется многим пакетам LFS.
Procps
В этом пакете находятся программы мониторинга процессов. Программы необходимы для системного администрирования и используются загрузочными скриптами LFS Bootscript.
Psmisc
В этом пакете находятся программы отображения информации о запущенных процессах. Эти программы используются при администрировании системы.
Readline
Этот пакет представляет собой набор библиотек, которые предоставляют средства редактирования командной строки и средства работы с историей команд. Используется в Bash.
Sed
Этот пакет позволяет редактировать текст, не открывая его в текстовом редакторе. Пакет также нужен настроечным скриптам в большинстве пакетов LFS.
Shadow
В этом пакете расположены программы обработки паролей в защищенном режиме.
Sysklogd
В этом пакете находятся программы ведения журнала системных сообщений, наподобие тех, что выдаются ядром или демоном процессов при возникновении непредусмотренных ситуаций.
Sysvinit
В этом пакете расположена программа init, являющаяся родительским процессом всех остальных процессов системы Linux.
Tar
В этом пакете предоставляются средства архивирования и раскрытия архивов, используемых в LFS практически для всех пакетов.
Tcl
В этом пакете находится язык обработки команд Tool Command Language, используемый в пакетах LFS во многих наборах тестов. Он устанавливается только во временном наборе инструментальных средств.
Texinfo
В этом пакете находятся программы чтения, записи и преобразования страниц info. Пакет используется при инсталляции многих пакетов LFS
Udev
В этом пакете находятся программы динамического создания нодов устройств. Это альтернативный способ создания тысяч статических устройств в директории /dev.
Util-linux
В этом пакете расположены многочисленные утилиты. Среди них есть утилиты обработки файловых систем, консолей, разделов и сообщений.
Vim
В этом пакете находится редактор. Он был выбран из-за его совместимости с классическим редактором vi и наличием у него огромного количества мощных возможностей. Редактор для многих пользователей является очень личным выбором и его, по желанию, можно заменить любым другим редактором.
XZ Utils
В этом пакете находятся программы сжатия и распаковки файлов. Пакет обеспечивает высокую степень сжатия и обычно используется пакетами распаковки форматов XZ или LZMA.
Zlib
В этом пакете находятся процедуры упаковки и распаковки, используемые некоторыми программами.
vi. Предварительные требования
Сборка системы LFS - непростая задача. Для нее требуется определенный уровень знаний системного администрирования Unix, позволяющий решать возникающие проблемы и правильно выполнять указываемые команды. В частности, как абсолютный минимум, вы уже должны уметь пользоваться командной строкой (оболочкой), уметь копировать или перемещать файлы и директории, просматривать содержимое директориев и файлов и переходить из одного директория в другой. Также предполагается, что вы достаточно знакомы с использованием и установкой программ под Linux.
Поскольку книга LFS предполагает, по крайней мере, базовый уровень знаний, различные форумы поддержки LFS вряд ли будут в состоянии в этом обеспечить вам достаточную помощь. Вы обнаружите, что ваши вопросы, связанные с базовым уровнем знания, скорее всего, останутся без ответа, или вас просто перенаправят к списку документов, с которыми надо ознакомиться перед началом сборки LFS.
Перед тем, как браться за сборку системы LFS, мы рекомендуем прочитать следующие HOWTO:
Software-Building-HOWTO (HOWTO по сборке программного обеспечения) http://www.tldp.org/HOWTO/Software-Building-HOWTO.html
Это подробное руководство по сборке и установке в Linux "типичных" пакетов Unix программ. Хотя руководство было написано некоторое время назад, оно все еще является хорошим обзором основных методов, необходимых для сборки и установки программ.
The Linux Users' Guide (Руководство пользователя Linux) http://www.linuxhq.com/guides/LUG/guide.html
В этом руководстве описываются программы, используемые в Linux. Эта ссылка также сравнительно старая, но она все еще доступна. (Прим.ред. - есть здесь.)
The Essential Pre-Reading Hint (Важные предварительные советы) http://www.linuxfromscratch.org/hints/downloads/files/essential_prereading.txt
Это советы по проекту LFS, специально предназначенные для новых пользователей Linux. В них дается список ссылок на замечательные источники информации по широкому кругу вопросов. Любой, кто пытается установить LFS, должен разбираться во многих темах, изложенных в этих советах.