software:linux_server:lfs:foreword
Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
software:linux_server:lfs:foreword [2024/06/23 22:40] – vladpolskiy | software:linux_server:lfs:foreword [Дата неизвестна] (текущий) – удалено - внешнее изменение (Дата неизвестна) 127.0.0.1 | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | ======Предисловие====== | ||
- | Мой путь к изучению и лучшему пониманию Linux начался еще в 1998 году. Я только что установил свой первый дистрибутив Linux и быстро увлекся его концепцией и философией. | ||
- | У задачи может быть несколько вариантов решения. То же самое можно сказать и о дистрибутивах Linux. Многие из них существовали годами. Некоторые всё еще существуют, | ||
- | |||
- | Я попробовал разные дистрибутивы, | ||
- | |||
- | Чтобы создать свою собственную систему, | ||
- | |||
- | Разобравшись с такими проблемами, | ||
- | |||
- | Когда я поделился своими идеями и опытом с другими членами сообщества Linux, стал очевиден явный интерес к ним. Вскоре стало понятно, | ||
- | |||
- | Книга Linux From Scratch является ядром этого проекта. В ней содержится информация и инструкции, | ||
- | |||
- | Я искренне надеюсь, | ||
- | |||
- | -- | ||
- | Gerard Beekmans | ||
- | 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::Parser | ||
- | |||
- | Этот пакет представляет собой модуль Perl, который взаимодействует с Expat. | ||
- | |||
- | XZ Utils | ||
- | |||
- | Этот пакет содержит программы для сжатия и распаковки файлов. Он обеспечивает высокое сжатие и используется для распаковки пакетов в формате XZ или LZMA. | ||
- | |||
- | Zlib | ||
- | |||
- | Этот пакет содержит процедуры сжатия и распаковки, | ||
- | |||
- | Zstd | ||
- | |||
- | Этот пакет содержит процедуры сжатия и распаковки, |
software/linux_server/lfs/foreword.1719171648.txt.gz · Последнее изменение: — vladpolskiy