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
