software:linux_server:lfs:foreword
Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
software:linux_server:lfs:foreword [2024/06/23 22:24] – vladpolskiy | software:linux_server:lfs:foreword [2024/06/23 23:08] (текущий) – [Оформление] vladpolskiy | ||
---|---|---|---|
Строка 19: | Строка 19: | ||
Gerard Beekmans | Gerard Beekmans | ||
gerard@linuxfromscratch.org | gerard@linuxfromscratch.org | ||
+ | =====Аудитория===== | ||
+ | Есть много причин, | ||
+ | |||
+ | Одной из важных целей существования этого проекта является помощь в изучении того, как работает система Linux изнутри. Создание системы LFS помогает продемонстрировать, | ||
+ | |||
+ | Другое ключевое преимущество - LFS предоставляет более глубокий контроль, | ||
+ | |||
+ | LFS позволяет создавать очень компактные системы Linux. При установке обычных дистрибутивов вам часто приходится устанавливать очень много программ, | ||
+ | |||
+ | Ещё одним преимуществом собственной сборки Linux является безопасность. При компиляции каждого компонента системы из исходных кодов вы можете всё проверить и применить необходимые патчи. Больше не нужно ждать, когда кто-то другой скомпилирует пакет с требуемыми исправлениями. Если вы не изучите патч и не примените его самостоятельно, | ||
+ | |||
+ | Цель Linux From Scratch — создать законченную и пригодную для использования систему базового уровня. Если вы не хотите создавать свою собственную систему Linux с нуля, вы, тем не менее, можете извлечь пользу из информации, | ||
+ | |||
+ | Есть много других веских причин для создания собственной системы LFS. В конце концов, | ||
+ | =====Целевые архитектуры LFS===== | ||
+ | Основными целевыми архитектурами LFS являются процессоры AMD/Intel x86 (32-разрядные) и x86_64 (64-разрядные). Однако, | ||
+ | |||
+ | При сборке LFS выигрыш от сборки на 64-битной системе по сравнению с 32-битной системой минимален. Например, | ||
+ | < | ||
+ | Архитектура | ||
+ | x86 239.9 минут | ||
+ | x64 233.2 минут | ||
+ | </ | ||
+ | Как видите, | ||
+ | |||
+ | По умолчанию 64-разрядная сборка LFS, считается «чистой» 64-разрядной системой. То есть она поддерживает только 64-разрядные исполняемые файлы. Сборка «multilib» системы требует компиляции многих программ дважды - один раз для 32-битной и один раз для 64-битной. Напрямую в книге данная опция не поддерживается, | ||
+ | |||
+ | =====Предпосылки===== | ||
+ | Создание системы LFS — непростая задача. Это требует определенного уровня знаний системного администрирования Unix для решения проблем и правильного выполнения перечисленных команд. В частности, | ||
+ | |||
+ | Поскольку книга LFS предполагает наличие хотя бы этого базового уровня навыков, | ||
+ | |||
+ | Перед созданием системы LFS мы настоятельно рекомендуем прочитать следующие статьи: | ||
+ | |||
+ | * HOWTO по сборке программного обеспечения https:// | ||
+ | |||
+ | Это исчерпывающее руководство по сборке и установке «универсальных» программ Unix под Linux. Несмотря на то что руководство написано достаточно давно, оно по-прежнему дает хороший обзор основных методов, | ||
+ | |||
+ | * Руководство для начинающих по установке из исходников https:// | ||
+ | |||
+ | В этом руководстве содержится хороший обзор основных навыков и методов, | ||
+ | |||
+ | =====LFS и стандарты===== | ||
+ | Структура LFS максимально соответствует стандартам Linux. Первичными стандартами являются: | ||
+ | |||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | |||
+ | LSB имеет четыре отдельных стандарта: | ||
+ | |||
+ | <WRAP left round box 100%> | ||
+ | Примечание | ||
+ | Многие не согласны с требованиями LSB. Основные цели стандартов - быть уверенным в том, что проприетарное ПО будет правильно установлено и сможет корректно работать на совместимой системе. Поскольку в LFS установка программ идёт из исходных кодов, у пользователя имеется полный контроль над тем, какие пакеты ему необходимы, | ||
+ | </ | ||
+ | |||
+ | |||
+ | Создать законченную систему, | ||
+ | |||
+ | **Пакеты LFS, которые необходимы для удовлетворения требований LSB** | ||
+ | |LSB Core:|Bash, Bc, Binutils, Coreutils, Diffutils, File, Findutils, Gawk, Grep, Gzip, M4, Man-DB, Ncurses, Procps, Psmisc, Sed, Shadow, Tar, Util-linux, Zlib| | ||
+ | |LSB Desktop: | ||
+ | |LSB Runtime Languages: | ||
+ | |LSB Imaging: | ||
+ | |LSB Gtk3 и LSB Graphics (Необязательные): | ||
+ | |||
+ | **Пакеты, | ||
+ | |LSB Core:|At, Batch (часть At), Cpio, Ed, Fcrontab, LSB-Tools, NSPR, NSS, PAM, Pax, Sendmail (или Postfix, или Exim), time| | ||
+ | |LSB Desktop: | ||
+ | |LSB Runtime Languages: | ||
+ | |LSB Imaging: | ||
+ | |LSB Gtk3 и LSB Graphics (Необязательные): | ||
+ | |||
+ | **Пакеты, | ||
+ | |LSB Core: | ||
+ | |LSB Desktop: | ||
+ | |LSB Runtime Languages: | ||
+ | |LSB Imaging: | ||
+ | |LSB Gtk3 и LSB Graphics (Необязательные): | ||
+ | |||
+ | =====Информация о пакетах===== | ||
+ | Целью LFS является создание законченной и пригодной для использования базовой системы, | ||
+ | |||
+ | |Acl|Access Control List или ACL — список управления доступом, | ||
+ | |Attr|Этот пакет содержит программы для управления расширенными атрибутами объектов файловой системы.| | ||
+ | |Autoconf|Этот пакет содержит программы для создания сценариев оболочки, | ||
+ | |Automake|Этот пакет содержит программы для создания Make-файлов из шаблона. Он также необходим для повторной компиляции пакета после обновления процедур сборки.| | ||
+ | |Bash|Этот пакет удовлетворяет требования LSB по предоставлению интерфейса Bourne Shell для системы. Он был выбран среди других пакетов оболочки из-за его повсеместного использования и широких возможностей.| | ||
+ | |Bc|Этот пакет предоставляет язык числовой обработки произвольной точности. Он необходимым для сборки ядра Linux| | ||
+ | |Binutils|Этот пакет содержит компоновщик, | ||
+ | |Bison|Этот пакет содержит GNU-версию yacc (Yet Another Compiler Compiler), необходимого для сборки некоторых пакетов в LFS.| | ||
+ | |Bzip2|Этот пакет содержит программы для сжатия и распаковки файлов. Используется для распаковки множества пакетов LFS.| | ||
+ | |Check|Этот пакет содержит тестовую обвязку для других программ.| | ||
+ | |Coreutils|Этот пакет содержит ряд программ для просмотра файлов и каталогов, | ||
+ | |D-Bus|Этот пакет содержит программы для реализации системы межпроцессного взаимодействия - простого способа взаимодействия приложений друг с другом.| | ||
+ | |DejaGNU|Этот пакет предоставляет фреймворк для тестирования других программ.| | ||
+ | |Diffutils|Этот пакет содержит программы, | ||
+ | |E2fsprogs|Этот пакет содержит утилиты для работы с файловыми системами ext2, ext3 и ext4. Это наиболее распространенные и тщательно протестированные файловые системы, | ||
+ | |Expat|Этот пакет содержит небольшую библиотеку разбора XML.Она необходима для модуля Perl XML:: | ||
+ | |Expect|Этот пакет содержит инструменты для автоматизации и тестирования, | ||
+ | |File|Этот пакет содержит утилиту для определения типа файла или файлов. Некоторым пакетам она нужна в сценариях сборки.| | ||
+ | |Findutils|Этот пакет предоставляет программы для поиска файлов. Он используется во многих сценариях сборки пакетов.| | ||
+ | |Flex|Этот пакет содержит утилиту для генерации программ, | ||
+ | |Gawk|Этот пакет содержит программы для работы с текстовыми файлами. Это GNU версия awk (Aho-Weinberg-Kernighan). Он используется во многих сценариях сборки пакетов.| | ||
+ | |GCC|Это коллекция компиляторов Gnu. Он содержит компиляторы C и C++, а также несколько других компиляторов, | ||
+ | |GDBM|Этот пакет содержит библиотеку GNU Database Manager. Он используется пакетом Man-DB| | ||
+ | |Gettext|Этот пакет содержит утилиты и библиотеки для интернационализации и локализации многочисленных пакетов.| | ||
+ | |Glibc|Этот пакет содержит основную библиотеку C. Программы Linux не будут работать без неё.| | ||
+ | |GMP|Этот пакет содержит математические библиотеки, | ||
+ | |Gperf|Этот пакет содержит программу, | ||
+ | |Grep|Этот пакет содержит программы для поиска по файлам. Пакет используется в скриптах сборки большинства пакетов.| | ||
+ | |Groff|Этот пакет содержит программы для обработки и форматирования текста. Одной из важнейших функций этих программ является форматирование man страниц.| | ||
+ | |GRUB|Это загрузчик операционной системы (GRand Unified Bootloader). Самый гибкий из нескольких доступных загрузчиков.| | ||
+ | |Gzip|Этот пакет содержит программы для сжатия и распаковки файлов. Он необходим для распаковки множества пакетов в LFS.| | ||
+ | |Iana-etc|Этот пакет предоставляет данные для сетевых служб и протоколов. Он необходим для обеспечения правильных сетевых возможностей.| | ||
+ | |Inetutils|Этот пакет содержит программы для базового сетевого администрирования.| | ||
+ | |Intltool|Этот пакет содержит инструменты для извлечения переводимых строк из исходных файлов.| | ||
+ | |IProute2|Этот пакет содержит программы для базовой и расширенной работы в сетях IPv4 и IPv6. Он был выбран среди других распространенных пакетов сетевых инструментов (net-tools) из-за его поддержки IPv6.| | ||
+ | |Jinja2|Этот пакет представляет собой модуль Python для создания текстовых шаблонов. Требуется для сборки Systemd.| | ||
+ | |Kbd|Этот пакет содержит таблицы раскладок, | ||
+ | |Kmod|Этот пакет содержит программы, | ||
+ | |Less|Этот пакет содержит очень хороший просмотрщик текстовых файлов, | ||
+ | |Libcap|Этот пакет реализует интерфейсы пользовательского пространства для возможностей POSIX 1003.1e, доступных в ядре Linux.| | ||
+ | |Libelf|Проект elfutils предоставляет библиотеки и инструменты для файлов ELF и данных DWARF. Большинство утилит в этом пакете доступны в других пакетах, | ||
+ | |Libffi|Этот пакет реализует переносимый программный интерфейс высокого уровня для различных соглашений о вызовах. Некоторые программы могут не знать во время компиляции, | ||
+ | |Libpipeline|Пакет Libpipeline содержит библиотеку для гибкого и удобного управления конвейерами подпроцессов. Она необходима для Man-DB.| | ||
+ | |Libtool|Этот пакет содержит сценарий поддержки универсальной библиотеки GNU. Он объединяет сложность использования общих библиотек в согласованный переносимый интерфейс. Библиотека необходима наборам тестов в других пакетах LFS.| | ||
+ | |Libxcrypt|Этот пакет предоставляет библиотеку libcrypt, необходимую различным пакетам (в частности, | ||
+ | |Linux Kernel|Этот пакет является ядром операционной системой.| | ||
+ | |M4|Этот пакет содержит текстовый макропроцессор, | ||
+ | |Make|Этот пакет содержит программу для управления сборкой пакетов. При сборке она необходима почти для каждого пакета в LFS.| | ||
+ | |MarkupSafe|Этот пакет представляет собой модуль Python для безопасной обработки строк в HTML/ | ||
+ | |Man-DB|Этот пакет содержит программы для поиска и просмотра справочных страниц. Он был выбран вместо пакета man из-за превосходных возможностей интернационализации. Содержит man.| | ||
+ | |Man-pages|Этот пакет представляет собой содержимое основных справочных страниц Linux.| | ||
+ | |Meson|Этот пакет предоставляет программный инструмент для автоматизации создания программного обеспечения. Основная цель Meson — свести к минимуму количество времени, | ||
+ | |MPC|Этот пакет содержит функции для арифметики комплексных чисел. Необходим GCC.| | ||
+ | |MPFR|Этот пакет содержит функции для арифметики с произвольной точностью. Необходим GCC.| | ||
+ | |Ninja|Этот пакет предоставляет небольшую систему сборки, | ||
+ | |Ncurses|Этот пакет содержит библиотеки для независимой от терминала обработки символьных экранов. Он часто используется для управления курсором в меню. Необходим ряду пакетов в LFS.| | ||
+ | |Openssl|Этот пакет содержит инструменты управления и библиотеки, | ||
+ | |Patch|Этот пакет содержит программу для изменения или создания файлов путем применения файла patch, обычно создаваемого программой diff. Он необходим процедуре сборки для некоторых пакетов LFS.| | ||
+ | |Perl|Этот пакет является интерпретатором языка PERL. Он необходим для установки и тестирования некоторых пакетов LFS.| | ||
+ | |Pkgconf|Этот пакет содержит программу, | ||
+ | |Procps-NG|Этот пакет содержит программы для мониторинга процессов. Набор полезен для системного администрирования, | ||
+ | |Psmisc|Этот пакет содержит программы для отображения информации о запущенных процессах. Этот набор программ полезен для системного администрирования.| | ||
+ | |Python 3|Этот пакет предоставляет интерпретируемый язык программирования, | ||
+ | |Readline|Этот пакет представляет собой набор библиотек, | ||
+ | |Sed|Этот пакет позволяет редактировать текст, не открывая его в текстовом редакторе. Он необходим сценариям настройки многих пакетов LFS.| | ||
+ | |Shadow|Этот пакет содержит программы для безопасной обработки паролей.| | ||
+ | |Systemd|Этот пакет предоставляет систему инициализации init и ряд дополнительных возможностей загрузки и управления системой в качестве альтернативы Sysvinit. Он используется многими дистрибутивами.| | ||
+ | |Tar|Этот пакет предоставляет возможность архивирования и извлечения практически всех пакетов, | ||
+ | |Tcl|Этот пакет содержит командный язык инструментов, | ||
+ | |Texinfo|Этот пакет предоставляет программы для чтения, | ||
+ | |Util-linux|Этот пакет содержит различные служебные программы. Среди них утилиты для работы с файловыми системами, | ||
+ | |Vim|Этот пакет содержит редактор. Его выбрали из-за совместимости с классическим редактором vi и огромного количества возможностей. Редактор является очень личным выбором для каждого пользователя. По желанию можно заменить любым другим редактором.| | ||
+ | |Wheel|Этот пакет содержит модуль Python, который представляет собой эталонную реализацию механизма упаковки Python.| | ||
+ | |XML:: | ||
+ | |XZ Utils|Этот пакет содержит программы для сжатия и распаковки файлов. Он обеспечивает высокое сжатие и используется для распаковки пакетов в формате XZ или LZMA.| | ||
+ | |Zlib|Этот пакет содержит процедуры сжатия и распаковки, | ||
+ | |Zstd|Этот пакет содержит процедуры сжатия и распаковки, | ||
+ | |||
+ | =====Оформление===== | ||
+ | Чтобы облегчить понимание, | ||
+ | |||
+ | < | ||
+ | ./configure --prefix=/ | ||
+ | </ | ||
+ | |||
+ | Такое оформление предназначено для ввода именно так, как показано, | ||
+ | |||
+ | В некоторых случаях логическая строка расширяется до двух или более физических строк с обратной косой чертой в конце строки. | ||
+ | |||
+ | < | ||
+ | CC=" | ||
+ | --prefix=/ | ||
+ | </ | ||
+ | Обратите внимание, | ||
+ | |||
+ | < | ||
+ | install-info: | ||
+ | </ | ||
+ | Такое оформление (текст фиксированной ширины) показывает вывод на экран, как правило, | ||
+ | |||
+ | <WRAP left round box 100%> | ||
+ | Примечание | ||
+ | Пожалуйста, | ||
+ | </ | ||
+ | |||
+ | Акцент | ||
+ | |||
+ | Эта форма текста используется в книге для нескольких целей. Его основная цель — подчеркнуть важные моменты. | ||
+ | |||
+ | https:// | ||
+ | |||
+ | Этот формат используется для гиперссылок как на сайт сообщества LFS, так и на внешние ресурсы. Может включать справочную информацию, | ||
+ | |||
+ | < | ||
+ | cat > $LFS/ | ||
+ | root:x:0: | ||
+ | bin:x:1: | ||
+ | ...... | ||
+ | EOF | ||
+ | </ | ||
+ | |||
+ | Этот формат используется при создании файлов конфигурации. Первая команда указывает системе создать файл $LFS/ | ||
+ | |||
+ | < | ||
+ | |||
+ | Этот формат используется для текста, | ||
+ | |||
+ | [НЕОБЯЗАТЕЛЬНЫЙ ТЕКСТ] | ||
+ | |||
+ | Этот формат используется для текста, | ||
+ | |||
+ | [[https:// | ||
+ | |||
+ | Этот формат используется для ссылки на определенную страницу руководства (man). Число в скобках указывает на конкретный раздел внутри руководств. Например, | ||
+ | =====Структура===== | ||
+ | Эта книга разделена на несколько частей. | ||
+ | |||
+ | **Часть I - Введение**\\ | ||
+ | Эта часть содержит важные замечания о том, как выполнить установку LFS. Также здесь представлена метаинформация о книге | ||
+ | |||
+ | **Часть II - Подготовка к сборке**\\ | ||
+ | Часть II описывает, | ||
+ | |||
+ | **Часть III - Создание кросс-тулчейна LFS и временных инструментов**\\ | ||
+ | Часть III содержит инструкции по созданию инструментов, | ||
+ | |||
+ | **Часть IV - Сборка системы LFS**\\ | ||
+ | Часть IV проводит читателя через сборку системы LFS—компиляцию и установку всех пакетов один за другим, | ||
+ | |||
+ | **Часть V - Приложения**\\ | ||
+ | Часть V содержит информацию о самой книге, включая акронимы и термины, | ||
+ | |||
+ | =====Ошибки и рекомендации по безопасности===== | ||
+ | Программное обеспечение, | ||
+ | |||
+ | Кроме того, редакторы Linux From Scratch ведут список уязвимостей безопасности, |
software/linux_server/lfs/foreword.1719170661.txt.gz · Последнее изменение: 2024/06/23 22:24 — vladpolskiy