<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://wwoss.direct.quickconnect.to/lib/exe/css.php?s=feed" type="text/css"?>
<rss version="2.0">
    <channel xmlns:g="http://base.google.com/ns/1.0">
        <title>worldwide open-source software - software:linux_server:iso_lfs_server</title>
        <description></description>
        <link>https://wwoss.direct.quickconnect.to/</link>
        <lastBuildDate>Sat, 06 Jun 2026 03:50:53 +0000</lastBuildDate>
        <generator>FeedCreator 1.8</generator>
        <image>
            <url>https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=wiki:logo.png</url>
            <title>worldwide open-source software</title>
            <link>https://wwoss.direct.quickconnect.to/</link>
        </image>
        <item>
            <title>iso_lfs_server</title>
            <link>https://wwoss.direct.quickconnect.to/doku.php?id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;rev=1778779112</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;iso_lfs_server&quot;&gt;iso lfs server&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;iso lfs server&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;iso_lfs_server&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-29&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;рабочий_план&quot;&gt;Рабочий план&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Начнем с этапа написания плана. Разбить все этапы на шаги (ориентируясь на 4 часа в день)
Разработка собственного дистрибутива на базе LFS с веб-установщиком — это марафон. &lt;br/&gt;

Разбивка на этапы по 4 часа в день поможет не перегореть и видеть прогресс.Ниже представлен план на первые 15 рабочих дней (3 недели). 
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0420\u0430\u0431\u043e\u0447\u0438\u0439 \u043f\u043b\u0430\u043d&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0440\u0430\u0431\u043e\u0447\u0438\u0439_\u043f\u043b\u0430\u043d&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;30-621&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit3&quot; id=&quot;неделя_1фундамент_и_автоматизация_хост-система&quot;&gt;Неделя 1: Фундамент и Автоматизация (Хост-система)&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;em&gt;Цель: Подготовить «завод» (скрипты), который будет собирать систему.&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;день_1среда_разработки&quot;&gt;День 1: Среда разработки.&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Установка Hyper-V, развертывание Ubuntu Server.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Настройка SSH для удобной работы с кодом.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Создание структуры папок /lfs-builder (packages, sources, logs, scripts).&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;день_2инструментарий_сборщика&quot;&gt;День 2: Инструментарий сборщика.&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Написание config.conf (переменные окружения).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Создание скрипта download.sh для автоматического скачивания всех пакетов LFS (через wget-list).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Проверка целостности (md5sum).&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;день_3двигатель_build_engine&quot;&gt;День 3: Двигатель (Build Engine).&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Написание главного скрипта build.sh.Реализация логики логирования и обработки ошибок (чтобы сборка останавливалась при ошибке make).&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;/div&gt;

&lt;h4 id=&quot;день_4кросс-компилятор_глава_5_lfs&quot;&gt;День 4: Кросс-компилятор (Глава 5 LFS).&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Написание скриптов для Binutils (Pass 1) и GCC (Pass 1).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Запуск и отладка. Это самые долгие компиляции.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;день_5завершение_временных_инструментов_глава_6&quot;&gt;День 5: Завершение временных инструментов (Глава 6).&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Сборка оставшихся утилит (M4, Ncurses, Bash, Coreutils и др.), работающих во временной папке.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041d\u0435\u0434\u0435\u043b\u044f 1: \u0424\u0443\u043d\u0434\u0430\u043c\u0435\u043d\u0442 \u0438 \u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044f (\u0425\u043e\u0441\u0442-\u0441\u0438\u0441\u0442\u0435\u043c\u0430)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043d\u0435\u0434\u0435\u043b\u044f_1\u0444\u0443\u043d\u0434\u0430\u043c\u0435\u043d\u0442_\u0438_\u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044f_\u0445\u043e\u0441\u0442-\u0441\u0438\u0441\u0442\u0435\u043c\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;622-2298&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit4&quot; id=&quot;неделя_2вход_в_chroot_и_ядро_системы&quot;&gt;Неделя 2: Вход в Chroot и Ядро Системы&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;em&gt;Цель: Собрать финальную систему, в которую мы сможем «зайти».&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;день_6вход_в_chroot&quot;&gt;День 6: Вход в Chroot.&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Написание скрипта mount-chroot.sh (монтирование /dev, /proc, /sys).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Настройка окружения внутри chroot.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;день_7-8основная_система_глава_8_lfs&quot;&gt;День 7-8: Основная система (Глава 8 LFS).&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Автоматизация сборки критических пакетов: Glibc, Zlib, Binutils (Pass 2), GCC (Pass 2).&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
&lt;em&gt;Примечание: Это «сердце» системы, здесь чаще всего возникают ошибки.&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;день_9завершение_системных_утилит&quot;&gt;День 9: Завершение системных утилит.&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Сборка менеджеров пакетов (если нужны) и базовых сетевых утилит (IProute2). &lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;день_10ядро_kernel_и_очистка&quot;&gt;День 10: Ядро (Kernel) и Очистка.&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Настройка конфигурации ядра (.config) с поддержкой USB, SquashFS и OverlayFS.
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Компиляция ядра. Очистка системы от лишних файлов документации и статических библиотек (уменьшение размера).&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041d\u0435\u0434\u0435\u043b\u044f 2: \u0412\u0445\u043e\u0434 \u0432 Chroot \u0438 \u042f\u0434\u0440\u043e \u0421\u0438\u0441\u0442\u0435\u043c\u044b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043d\u0435\u0434\u0435\u043b\u044f_2\u0432\u0445\u043e\u0434_\u0432_chroot_\u0438_\u044f\u0434\u0440\u043e_\u0441\u0438\u0441\u0442\u0435\u043c\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;2299-3601&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit5&quot; id=&quot;неделя_3серверная_часть_и_веб-установщик&quot;&gt;Неделя 3: Серверная часть и Веб-установщик&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;em&gt;Цель: Превратить LFS в сервер с вашим интерфейсом.&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;день_11сеть_и_безопасность&quot;&gt;День 11: Сеть и Безопасность .&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Сборка OpenSSL и OpenSSH.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Настройка автоматического запуска SSH при загрузке.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;день_12веб-стек_nginx_php&quot;&gt;День 12: Веб-стек (Nginx + PHP) .&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Сборка Nginx и PHP (в режиме CLI или FPM).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Настройка портов 5050 и 5051 в конфиге Nginx.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;день_13веб-интерфейс_frontend_backend&quot;&gt;День 13: Веб-интерфейс (Frontend/Backend).&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Написание вашей формы на PHP/JS.Реализация логики 2FA (библиотека для QR-кода).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Создание скрипта start_deploy.sh, который веб-морда будет запускать для установки системы на HDD.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;день_14создание_live-образа_squashfs_initramfs&quot;&gt;День 14: Создание Live-образа (SquashFS + Initramfs).&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Упаковка системы в rootfs.squashfs.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Написание скрипта init для Initramfs (монтирование сети и запуск веб-сервера).&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;день_15сборка_iso_и_тест&quot;&gt;День 15: Сборка ISO и Тест.&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Сборка финального ISO через xorriso.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Первый тестовый запуск в Hyper-V «без монитора»: попытка зайти на веб-морду по IP.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041d\u0435\u0434\u0435\u043b\u044f 3: \u0421\u0435\u0440\u0432\u0435\u0440\u043d\u0430\u044f \u0447\u0430\u0441\u0442\u044c \u0438 \u0412\u0435\u0431-\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0449\u0438\u043a&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043d\u0435\u0434\u0435\u043b\u044f_3\u0441\u0435\u0440\u0432\u0435\u0440\u043d\u0430\u044f_\u0447\u0430\u0441\u0442\u044c_\u0438_\u0432\u0435\u0431-\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0449\u0438\u043a&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;3602-5065&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit6&quot; id=&quot;контроль_и_списки&quot;&gt;Контроль и Списки&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Чтобы проект не превратился в хаос при перерывах или смене ПК, мы будем использовать методику &lt;strong&gt;«Контрольных точек»&lt;/strong&gt; и &lt;strong&gt;«Списка состояния»&lt;/strong&gt;.&lt;br/&gt;

Ниже — структура вопросов, которые вы должны задавать  себе в конце каждой 4-часовой сессии.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041a\u043e\u043d\u0442\u0440\u043e\u043b\u044c \u0438 \u0421\u043f\u0438\u0441\u043a\u0438&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c_\u0438_\u0441\u043f\u0438\u0441\u043a\u0438&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;5066-5541&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit7&quot; id=&quot;единый_бортовой_журнал_markdown-файл&quot;&gt;1. Единый &amp;quot;Бортовой журнал&amp;quot; (Markdown-файл)&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Создайте в корне папки /lfs-builder файл STATUS.md. В конце каждого дня копируйте туда ответы на эти вопросы.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;вопросы_к_себе_для_фиксации_прогресса&quot;&gt;Вопросы к себе (для фиксации прогресса):&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;Где я?&lt;/strong&gt; (Название этапа и номер последнего успешно собранного пакета).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;Что введено в строй?&lt;/strong&gt; (Список скриптов, которые уже работают без ошибок).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;Где возник затык?&lt;/strong&gt; (Ошибки компиляции или логики, которые не успел решить).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;Что нажать первым завтра?&lt;/strong&gt; (Конкретная команда: например, bash packages/045-glibc.sh).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;Где лежат исходники?&lt;/strong&gt; (При смене ПК: «Всё залито на GitHub» или «Архив на флешке»).&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;1. \u0415\u0434\u0438\u043d\u044b\u0439 \&amp;quot;\u0411\u043e\u0440\u0442\u043e\u0432\u043e\u0439 \u0436\u0443\u0440\u043d\u0430\u043b\&amp;quot; (Markdown-\u0444\u0430\u0439\u043b)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0435\u0434\u0438\u043d\u044b\u0439_\u0431\u043e\u0440\u0442\u043e\u0432\u043e\u0439_\u0436\u0443\u0440\u043d\u0430\u043b_markdown-\u0444\u0430\u0439\u043b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;5542-6584&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit8&quot; id=&quot;структурированные_вопросы_к_ии_для_возобновления_работы&quot;&gt;2. Структурированные вопросы к ИИ (для возобновления работы)&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Если вы сменили компьютер или вернулись к проекту через неделю, скопируйте этот блок вопросов и отправьте мне, дополнив вашими данными:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;Запрос для восстановления контекста:&lt;/strong&gt;«Я продолжаю разработку LFS-сервера с веб-установщиком.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;Текущий этап:&lt;/strong&gt; [Например: Глава 6, временные инструменты].&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;Последний успех:&lt;/strong&gt; Пакет [Например: GCC Pass 1].&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;Среда:&lt;/strong&gt; [Например: Hyper-V, Ubuntu 22.04].&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;Проблема, на которой остановился&lt;/strong&gt;: [Например: Ошибка сегментирования при сборке Glibc].&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
&lt;em&gt;Напомни план на текущий день и помоги проверить скрипт для следующего пакета — [Название пакета].»&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;2. \u0421\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u0432\u043e\u043f\u0440\u043e\u0441\u044b \u043a \u0418\u0418 (\u0434\u043b\u044f \u0432\u043e\u0437\u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f \u0440\u0430\u0431\u043e\u0442\u044b)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435_\u0432\u043e\u043f\u0440\u043e\u0441\u044b_\u043a_\u0438\u0438_\u0434\u043b\u044f_\u0432\u043e\u0437\u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u044f_\u0440\u0430\u0431\u043e\u0442\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;6585-7730&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit9&quot; id=&quot;таблица-чеклист_ваша_карта_проекта&quot;&gt;3. Таблица-чеклист (Ваша карта проекта)&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Скопируйте эту таблицу в свой файл статуса. Ставьте [x] по мере выполнения.
&lt;/p&gt;
&lt;div class=&quot;table sectionedit10&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;Этап&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Шаг&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt;Статус&lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;Комментарий&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;0. Подготовка&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Среда Hyper-V + Скрипт download.sh&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; [ ] &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;1. Инструменты&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Глава 5: Кросс-компилятор (Binutils/GCC)&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; [ ] &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;2. Инструменты&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Глава 6: Временная система (Bash/Coreutils)&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; [ ] &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;3. Chroot&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Скрипт входа + Монтирование VFS&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; [ ] &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;4. Система&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Глава 8: Финальная сборка Glibc/GCC&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; [ ] &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;5. Сервер&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Nginx + PHP + SSH&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; [ ] &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row7&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;6. Интерфейс&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Веб-морда + 2FA (PHP/JS)&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; [ ] &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row8&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;7. ISO&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Скрипт init + SquashFS + xorriso&lt;/td&gt;&lt;td class=&quot;col2&quot;&gt; [ ] &lt;/td&gt;&lt;td class=&quot;col3&quot;&gt;&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;secid&amp;quot;:10,&amp;quot;range&amp;quot;:&amp;quot;7946-8585&amp;quot;} --&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;3. \u0422\u0430\u0431\u043b\u0438\u0446\u0430-\u0447\u0435\u043a\u043b\u0438\u0441\u0442 (\u0412\u0430\u0448\u0430 \u043a\u0430\u0440\u0442\u0430 \u043f\u0440\u043e\u0435\u043a\u0442\u0430)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0442\u0430\u0431\u043b\u0438\u0446\u0430-\u0447\u0435\u043a\u043b\u0438\u0441\u0442_\u0432\u0430\u0448\u0430_\u043a\u0430\u0440\u0442\u0430_\u043f\u0440\u043e\u0435\u043a\u0442\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;7731-8585&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit11&quot; id=&quot;практический_совет_по_перезагрузке&quot;&gt;4. Практический совет по &amp;quot;перезагрузке&amp;quot;&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Чтобы легко менять ПК, храните папку /lfs-builder/packages (ваши скрипты) в &lt;strong&gt;Git-репозитории&lt;/strong&gt; (GitHub/Gitea). Сами исходники (/sources) и собранную систему переносить не обязательно — скрипты соберут их заново, но &lt;strong&gt;код ваших скриптов — это интеллект проекта&lt;/strong&gt;, его терять нельзя.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;4. \u041f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0441\u043e\u0432\u0435\u0442 \u043f\u043e \&amp;quot;\u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435\&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u0430\u043a\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439_\u0441\u043e\u0432\u0435\u0442_\u043f\u043e_\u043f\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u043a\u0435&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:11,&amp;quot;range&amp;quot;:&amp;quot;8586-9136&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit12&quot; id=&quot;день_1среда_разработки1&quot;&gt;День 1: Среда разработки.&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0414\u0435\u043d\u044c 1: \u0421\u0440\u0435\u0434\u0430 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0438.&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0434\u0435\u043d\u044c_1\u0441\u0440\u0435\u0434\u0430_\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u04381&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:12,&amp;quot;range&amp;quot;:&amp;quot;9137-9195&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit13&quot; id=&quot;установка_hyper-v_развертывание_ubuntu_server&quot;&gt;Установка Hyper-V, развертывание Ubuntu Server.&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 Hyper-V, \u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0435 Ubuntu Server.&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430_hyper-v_\u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0435_ubuntu_server&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:13,&amp;quot;range&amp;quot;:&amp;quot;9196-9277&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit14&quot; id=&quot;включение_компонентов_hyper-v_в_windows_10&quot;&gt;Включение компонентов Hyper-V в Windows 10&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Включить компоненты &lt;strong&gt;Hyper-V&lt;/strong&gt; в &lt;strong&gt;Windows 10&lt;/strong&gt; можно встроенными средствами системы, но только в редакциях Pro (Профессиональная), Enterprise (Корпоративная) и Education (Для образовательных учреждений). В домашней версии (Windows 10 Home) данный компонент официально не поддерживается.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;включение_через_графический_интерфейс_панель_управления&quot;&gt;Включение через графический интерфейс (Панель управления)&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Это самый простой и наглядный способ активации компонента:&lt;br/&gt;

Нажмите комбинацию клавиш &lt;strong&gt;Win + R&lt;/strong&gt;, введите &lt;strong&gt;optionalfeatures&lt;/strong&gt; и нажмите Enter.
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aiso_lfs_server%3Aiso_lfs_server&amp;amp;media=software:linux_server:iso_lfs_server:iso_lfs_server_0001.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:iso_lfs_server:iso_lfs_server_0001.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:iso_lfs_server:iso_lfs_server_0001.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
В открывшемся окне «Компоненты Windows» найдите пункт Hyper-V.
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aiso_lfs_server%3Aiso_lfs_server&amp;amp;media=software:linux_server:iso_lfs_server:iso_lfs_server_0002.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:iso_lfs_server:iso_lfs_server_0002.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:iso_lfs_server:iso_lfs_server_0002.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Установите галочку напротив него (убедитесь, что отмечены оба внутренних подпункта:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Средства управления &lt;strong&gt;Hyper-V&lt;/strong&gt; и &lt;strong&gt;Платформа Hyper-V&lt;/strong&gt;).&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Нажмите &lt;strong&gt;ОК&lt;/strong&gt;. Дождитесь окончания установки файлов и &lt;strong&gt;обязательно перезагрузите компьютер&lt;/strong&gt;.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;как_запустить_и_проверить_работу_hyper-v&quot;&gt;Как запустить и проверить работу Hyper-V?&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
После перезагрузки откройте меню &lt;strong&gt;«Пуск»&lt;/strong&gt; и начните вводить в поиск &lt;strong&gt;Диспетчер Hyper-V&lt;/strong&gt; для управления виртуальными машинами.
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aiso_lfs_server%3Aiso_lfs_server&amp;amp;media=software:linux_server:iso_lfs_server:iso_lfs_server_00022.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:iso_lfs_server:iso_lfs_server_00022.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:iso_lfs_server:iso_lfs_server_00022.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Если пункт &lt;strong&gt;Hyper-V&lt;/strong&gt; в списке компонентов серый или неактивный, проверьте статус виртуализации на вкладке &lt;strong&gt;«Производительность» → «ЦП»&lt;/strong&gt; в Диспетчере задач. Там должно быть указано: &lt;strong&gt;Виртуализация: Включено.&lt;/strong&gt;
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aiso_lfs_server%3Aiso_lfs_server&amp;amp;media=software:linux_server:iso_lfs_server:iso_lfs_server_0001_1.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:iso_lfs_server:iso_lfs_server_0001_1.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:iso_lfs_server:iso_lfs_server_0001_1.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0412\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432 Hyper-V \u0432 Windows 10&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435_\u043a\u043e\u043c\u043f\u043e\u043d\u0435\u043d\u0442\u043e\u0432_hyper-v_\u0432_windows_10&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:14,&amp;quot;range&amp;quot;:&amp;quot;9278-11740&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit15&quot; id=&quot;запуск_диспетчера_hyper-v&quot;&gt;Запуск Диспетчера Hyper-V:&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Через поиск: Нажмите клавишу &lt;strong&gt;Windows (Пуск)&lt;/strong&gt;, введите «&lt;strong&gt;Диспетчер Hyper-V&lt;/strong&gt;» (или Hyper-V Manager) и выберите соответствующее приложение. &lt;strong&gt;Запуск от имени администратора&lt;/strong&gt;
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aiso_lfs_server%3Aiso_lfs_server&amp;amp;media=software:linux_server:iso_lfs_server:iso_lfs_server_0001_2.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:iso_lfs_server:iso_lfs_server_0001_2.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:iso_lfs_server:iso_lfs_server_0001_2.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0417\u0430\u043f\u0443\u0441\u043a \u0414\u0438\u0441\u043f\u0435\u0442\u0447\u0435\u0440\u0430 Hyper-V:&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0437\u0430\u043f\u0443\u0441\u043a_\u0434\u0438\u0441\u043f\u0435\u0442\u0447\u0435\u0440\u0430_hyper-v&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:15,&amp;quot;range&amp;quot;:&amp;quot;11741-12171&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit16&quot; id=&quot;создание_виртуальной_машины&quot;&gt;Создание виртуальной машины&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Для создания виртуальной машины в Диспетчере &lt;strong&gt;Hyper-V&lt;/strong&gt; выполните следующие шаги. Перед началом подготовьте установочный &lt;strong&gt;ISO-образ&lt;/strong&gt; операционной системы &lt;strong&gt;&lt;a href=&quot;https://ubuntu.com/download/server&quot; class=&quot;urlextern&quot; title=&quot;https://ubuntu.com/download/server&quot; rel=&quot;ugc nofollow&quot;&gt;Ubuntu 26.04 LTS&lt;/a&gt;&lt;/strong&gt;.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;⚙️_шаг_1настройка_виртуального_коммутатора_для_доступа_в_интернет&quot;&gt;⚙️ Шаг 1: Настройка виртуального коммутатора (для доступа в интернет)&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
&lt;em&gt;Если виртуальной машине нужен интернет, сначала настройте сеть:&lt;/em&gt;
В правом меню Диспетчера &lt;strong&gt;Hyper-V&lt;/strong&gt; нажмите «&lt;strong&gt;Диспетчер виртуальных коммутаторов…&lt;/strong&gt;».Выберите тип «&lt;strong&gt;Внешний&lt;/strong&gt;» и нажмите «&lt;strong&gt;Создать виртуальный коммутатор&lt;/strong&gt;».Дайте ему имя (например, Internet или &lt;strong&gt;Lan_Network&lt;/strong&gt;), выберите вашу сетевую карту (&lt;strong&gt;Realtek&lt;/strong&gt; или Qualcomm) и нажмите «&lt;strong&gt;ОК&lt;/strong&gt;».
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aiso_lfs_server%3Aiso_lfs_server&amp;amp;media=software:linux_server:iso_lfs_server:iso_lfs_server_0001_3.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:iso_lfs_server:iso_lfs_server_0001_3.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:iso_lfs_server:iso_lfs_server_0001_3.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435_\u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439_\u043c\u0430\u0448\u0438\u043d\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:16,&amp;quot;range&amp;quot;:&amp;quot;12172-13396&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit17&quot; id=&quot;создание_виртуальной_машины1&quot;&gt;Создание виртуальной машины&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
В &lt;strong&gt;Диспетчере Hyper-V&lt;/strong&gt; нажмите &lt;strong&gt;Создать → Виртуальная машина&lt;/strong&gt;.
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aiso_lfs_server%3Aiso_lfs_server&amp;amp;media=software:linux_server:iso_lfs_server:iso_lfs_server_0001_5.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:iso_lfs_server:iso_lfs_server_0001_5.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:iso_lfs_server:iso_lfs_server_0001_5.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;укажите_имя_и_расположение&quot;&gt;Укажите имя и расположение:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Задайте имя (например, Ubuntu-Server-26.10) и выберите папку для хранения файлов ВМ (для примера: &lt;strong&gt;D:\Hyper-V\&lt;/strong&gt;).
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aiso_lfs_server%3Aiso_lfs_server&amp;amp;media=software:linux_server:iso_lfs_server:iso_lfs_server_0001_6.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:iso_lfs_server:iso_lfs_server_0001_6.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:iso_lfs_server:iso_lfs_server_0001_6.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;укажите_поколение&quot;&gt;Укажите поколение:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Строго выбирайте &lt;strong&gt;Поколение 2 (Generation 2)&lt;/strong&gt; для поддержки &lt;strong&gt;UEFI&lt;/strong&gt; и современной интеграции.
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aiso_lfs_server%3Aiso_lfs_server&amp;amp;media=software:linux_server:iso_lfs_server:iso_lfs_server_0001_7.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:iso_lfs_server:iso_lfs_server_0001_7.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:iso_lfs_server:iso_lfs_server_0001_7.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;выделение_памяти&quot;&gt;Выделение памяти:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Задайте объем ОЗУ (минимум 1024 МБ, рекомендуется от &lt;strong&gt;8192 МБ&lt;/strong&gt;). Флажок «&lt;strong&gt;Использовать динамическую память&lt;/strong&gt;» для Linux на этапе установки рекомендуется &lt;strong&gt;снять&lt;/strong&gt; (можно включить позже).
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aiso_lfs_server%3Aiso_lfs_server&amp;amp;media=software:linux_server:iso_lfs_server:iso_lfs_server_0001_8.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:iso_lfs_server:iso_lfs_server_0001_8.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:iso_lfs_server:iso_lfs_server_0001_8.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;настройка_сети&quot;&gt;Настройка сети:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
В выпадающем списке подключений выберите ранее созданный (например, Internet или Lan_Network).
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aiso_lfs_server%3Aiso_lfs_server&amp;amp;media=software:linux_server:iso_lfs_server:iso_lfs_server_0001_9.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:iso_lfs_server:iso_lfs_server_0001_9.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:iso_lfs_server:iso_lfs_server_0001_9.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;подключение_виртуального_жесткого_диска&quot;&gt;Подключение виртуального жесткого диска:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Выберите «&lt;strong&gt;Создать виртуальный жесткий диск&lt;/strong&gt;», укажите имя файла формата &lt;strong&gt;.vhdx&lt;/strong&gt; и задайте его размер (минимум 20 ГБ, по умолчанию обычно ставится &lt;strong&gt;127 ГБ&lt;/strong&gt;).
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aiso_lfs_server%3Aiso_lfs_server&amp;amp;media=software:linux_server:iso_lfs_server:iso_lfs_server_0001_10.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:iso_lfs_server:iso_lfs_server_0001_10.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:iso_lfs_server:iso_lfs_server_0001_10.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;параметры_установки&quot;&gt;Параметры установки:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Выберите пункт &lt;strong&gt;«Установить операционную систему из файла загрузочного образа»&lt;/strong&gt; и укажите путь к скачанному &lt;strong&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:iso_lfs_server:ubuntu-26.04-live-server-amd64.iso&quot; class=&quot;media mediafile mf_iso&quot; title=&quot;software:linux_server:iso_lfs_server:ubuntu-26.04-live-server-amd64.iso (2.7 GB)&quot;&gt;.iso-образу Ubuntu Server&lt;/a&gt;&lt;/strong&gt;. Нажмите Готово.
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aiso_lfs_server%3Aiso_lfs_server&amp;amp;media=software:linux_server:iso_lfs_server:iso_lfs_server_0001_11.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:iso_lfs_server:iso_lfs_server_0001_11.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:iso_lfs_server:iso_lfs_server_0001_11.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;завершение_работы_мастера_создания_виртуальной_машины&quot;&gt;Завершение работы мастера создания виртуальной машины&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Сверти параметры желаемой установки и завершите работу мастера создания виртуальной машины  нажатием кнопки &lt;strong&gt;«Готово»&lt;/strong&gt;.
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aiso_lfs_server%3Aiso_lfs_server&amp;amp;media=software:linux_server:iso_lfs_server:iso_lfs_server_0001_12.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:iso_lfs_server:iso_lfs_server_0001_12.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:iso_lfs_server:iso_lfs_server_0001_12.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u044b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435_\u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0439_\u043c\u0430\u0448\u0438\u043d\u044b1&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:17,&amp;quot;range&amp;quot;:&amp;quot;13397-16390&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit18&quot; id=&quot;критически_важная_настройка_перед_запуском_вм&quot;&gt;Критически важная настройка перед запуском ВМ&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;strong&gt;По умолчанию&lt;/strong&gt; ВМ Поколения 2 в &lt;strong&gt;Hyper-V&lt;/strong&gt; используют безопасную загрузку &lt;strong&gt;Windows&lt;/strong&gt;, которая &lt;strong&gt;не даст запуститься&lt;/strong&gt; установщику Ubuntu Linux.
Нажмите правой кнопкой мыши на созданную ВМ и выберите &lt;strong&gt;Параметры (Settings)&lt;/strong&gt;.
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aiso_lfs_server%3Aiso_lfs_server&amp;amp;media=software:linux_server:iso_lfs_server:iso_lfs_server_001_2.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:iso_lfs_server:iso_lfs_server_001_2.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:iso_lfs_server:iso_lfs_server_001_2.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Перейдите во вкладку &lt;strong&gt;Безопасность (Security)&lt;/strong&gt;.  → В блоке «Безопасная загрузка» (Secure Boot) измените шаблон с &lt;strong&gt;Microsoft Windows&lt;/strong&gt; на &lt;strong&gt;Центр сертификации Майкрософт для UEFI&lt;/strong&gt; (Microsoft UEFI Certificate Authority) либо полностью &lt;strong&gt;снимите флажок «Включить безопасную загрузку».&lt;/strong&gt;
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aiso_lfs_server%3Aiso_lfs_server&amp;amp;media=software:linux_server:iso_lfs_server:iso_lfs_server_001_4.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:iso_lfs_server:iso_lfs_server_001_4.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:iso_lfs_server:iso_lfs_server_001_4.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Перейдите во вкладку &lt;strong&gt;Процессор (Processor)&lt;/strong&gt; и выделите серверу минимум &lt;strong&gt;4&lt;/strong&gt; виртуальных ядра. 
Нажмите &lt;strong&gt;Применить&lt;/strong&gt; и &lt;strong&gt;ОК&lt;/strong&gt;.
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aiso_lfs_server%3Aiso_lfs_server&amp;amp;media=software:linux_server:iso_lfs_server:iso_lfs_server_001_5.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:iso_lfs_server:iso_lfs_server_001_5.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:iso_lfs_server:iso_lfs_server_001_5.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041a\u0440\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438 \u0432\u0430\u0436\u043d\u0430\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043f\u0435\u0440\u0435\u0434 \u0437\u0430\u043f\u0443\u0441\u043a\u043e\u043c \u0412\u041c&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043a\u0440\u0438\u0442\u0438\u0447\u0435\u0441\u043a\u0438_\u0432\u0430\u0436\u043d\u0430\u044f_\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430_\u043f\u0435\u0440\u0435\u0434_\u0437\u0430\u043f\u0443\u0441\u043a\u043e\u043c_\u0432\u043c&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:18,&amp;quot;range&amp;quot;:&amp;quot;16391-17787&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit19&quot; id=&quot;развертывание_ubuntu_server&quot;&gt;Развертывание Ubuntu Server&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Развертывание &lt;strong&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:iso_lfs_server:ubuntu-26.04-live-server-amd64.iso&quot; class=&quot;media mediafile mf_iso&quot; title=&quot;software:linux_server:iso_lfs_server:ubuntu-26.04-live-server-amd64.iso (2.7 GB)&quot;&gt;Ubuntu Server 26.04 LTS&lt;/a&gt;&lt;/strong&gt; «&lt;strong&gt;Resolute Raccoon&lt;/strong&gt;» (&lt;a href=&quot;https://lists.ubuntu.com/archives/ubuntu-announce/2026-April/000323.html&quot; class=&quot;urlextern&quot; title=&quot;https://lists.ubuntu.com/archives/ubuntu-announce/2026-April/000323.html&quot; rel=&quot;ugc nofollow&quot;&gt;выпущен 23 апреля 2026г&lt;/a&gt;.) основано на консольном установщике с поддержкой ядра &lt;strong&gt;Linux 7.0&lt;/strong&gt; и &lt;strong&gt;ИИ&lt;/strong&gt;-инструментов. Установка включает выбор языка, настройку сети, разметку диска (ext4, LVM), создание пользователя и установку OpenSSH. Доступны образы для архитектур x86_64, ARM64 и облачных платформ.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;загрузка_образа&quot;&gt;Загрузка образа:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
 Скачайте официальный &lt;strong&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:iso_lfs_server:ubuntu-26.04-live-server-amd64.iso&quot; class=&quot;media mediafile mf_iso&quot; title=&quot;software:linux_server:iso_lfs_server:ubuntu-26.04-live-server-amd64.iso (2.7 GB)&quot;&gt;ISO-образ Ubuntu 26.04 LTS Server&lt;/a&gt;&lt;/strong&gt; с сайта &lt;strong&gt;&lt;a href=&quot;https://releases.ubuntu.com/26.04/&quot; class=&quot;urlextern&quot; title=&quot;https://releases.ubuntu.com/26.04/&quot; rel=&quot;ugc nofollow&quot;&gt;Canonical&lt;/a&gt;&lt;/strong&gt;. 
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aiso_lfs_server%3Aiso_lfs_server&amp;amp;media=software:linux_server:iso_lfs_server:iso_lfs_server_0001_4.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:iso_lfs_server:iso_lfs_server_0001_4.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:iso_lfs_server:iso_lfs_server_0001_4.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0420\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0435 Ubuntu Server&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0435_ubuntu_server&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:19,&amp;quot;range&amp;quot;:&amp;quot;17788-18939&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit20&quot; id=&quot;установка_ос_ubuntu_server&quot;&gt;Установка ОС Ubuntu Server&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Нажмите на ВМ правой кнопкой мыши → &lt;strong&gt;Подключить&lt;/strong&gt; (Connect), 
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aiso_lfs_server%3Aiso_lfs_server&amp;amp;media=software:linux_server:iso_lfs_server:iso_lfs_server_22_3.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:iso_lfs_server:iso_lfs_server_22_3.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:iso_lfs_server:iso_lfs_server_22_3.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
затем нажмите кнопку &lt;strong&gt;Пуск (Start)&lt;/strong&gt;.
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aiso_lfs_server%3Aiso_lfs_server&amp;amp;media=software:linux_server:iso_lfs_server:iso_lfs_server_22_4.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:iso_lfs_server:iso_lfs_server_22_4.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:iso_lfs_server:iso_lfs_server_22_4.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
На экране &lt;strong&gt;GRUB&lt;/strong&gt; выберите первый пункт: &lt;strong&gt;Try or Install Ubuntu Server.&lt;/strong&gt;
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aiso_lfs_server%3Aiso_lfs_server&amp;amp;media=software:linux_server:iso_lfs_server:iso_lfs_server_23_1.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:iso_lfs_server:iso_lfs_server_23_1.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:iso_lfs_server:iso_lfs_server_23_1.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;пройдите_стандартные_шаги_мастера_установки&quot;&gt;Пройдите стандартные шаги мастера установки:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Выберите язык интерфейса и подтвердите нажатием клавиши &lt;strong&gt;«ENTER»&lt;/strong&gt;
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aiso_lfs_server%3Aiso_lfs_server&amp;amp;media=software:linux_server:iso_lfs_server:iso_lfs_server_23_2.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:iso_lfs_server:iso_lfs_server_23_2.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:iso_lfs_server:iso_lfs_server_23_2.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
 и раскладку клавиатуры подтвердив выбором &lt;strong&gt;«Done»&lt;/strong&gt;.
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aiso_lfs_server%3Aiso_lfs_server&amp;amp;media=software:linux_server:iso_lfs_server:iso_lfs_server_23_3.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:iso_lfs_server:iso_lfs_server_23_3.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:iso_lfs_server:iso_lfs_server_23_3.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;strong&gt;Тип установки:&lt;/strong&gt; Выберите базовый профиль &lt;strong&gt;Ubuntu Server&lt;/strong&gt; (по умолчанию).
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aiso_lfs_server%3Aiso_lfs_server&amp;amp;media=software:linux_server:iso_lfs_server:iso_lfs_server_23_4.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:iso_lfs_server:iso_lfs_server_23_4.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:iso_lfs_server:iso_lfs_server_23_4.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;strong&gt;Сетевые настройки:&lt;/strong&gt; Убедитесь, что интерфейс автоматически получил &lt;strong&gt;IP-адрес&lt;/strong&gt; по &lt;strong&gt;DHCP&lt;/strong&gt;.
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aiso_lfs_server%3Aiso_lfs_server&amp;amp;media=software:linux_server:iso_lfs_server:iso_lfs_server_23_5.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:iso_lfs_server:iso_lfs_server_23_5.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:iso_lfs_server:iso_lfs_server_23_5.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Настройка архива (&lt;strong&gt;Mirror&lt;/strong&gt;): Оставьте адрес репозитория &lt;strong&gt;по умолчанию&lt;/strong&gt;.
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aiso_lfs_server%3Aiso_lfs_server&amp;amp;media=software:linux_server:iso_lfs_server:iso_lfs_server_23_8.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:iso_lfs_server:iso_lfs_server_23_8.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:iso_lfs_server:iso_lfs_server_23_8.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
&lt;strong&gt;Разметка диска:&lt;/strong&gt; Активируйте опцию &lt;strong&gt;Use an entire disk.&lt;/strong&gt; &lt;span style=&quot;color:#ff0000;&quot;&gt;&lt;strong&gt;Внимание!&lt;/strong&gt;&lt;/span&gt; По умолчанию Ubuntu Server настраивает систему LVM и выделяет под корневой раздел / &lt;span style=&quot;color:#ff0000;&quot;&gt;только 50% диска&lt;/span&gt;. 
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aiso_lfs_server%3Aiso_lfs_server&amp;amp;media=software:linux_server:iso_lfs_server:iso_lfs_server_23_10.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:iso_lfs_server:iso_lfs_server_23_10.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:iso_lfs_server:iso_lfs_server_23_10.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Чтобы использовать весь накопитель сразу, 
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aiso_lfs_server%3Aiso_lfs_server&amp;amp;media=software:linux_server:iso_lfs_server:iso_lfs_server_23_11.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:iso_lfs_server:iso_lfs_server_23_11.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:iso_lfs_server:iso_lfs_server_23_11.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
вручную отредактируйте параметры разметки логического тома (LVM) 
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aiso_lfs_server%3Aiso_lfs_server&amp;amp;media=software:linux_server:iso_lfs_server:iso_lfs_server_23_13.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:iso_lfs_server:iso_lfs_server_23_13.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:iso_lfs_server:iso_lfs_server_23_13.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
на максимальный размер диска перед подтверждением.
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aiso_lfs_server%3Aiso_lfs_server&amp;amp;media=software:linux_server:iso_lfs_server:iso_lfs_server_23_14.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:iso_lfs_server:iso_lfs_server_23_14.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:iso_lfs_server:iso_lfs_server_23_14.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Профиль пользователя: Введите ваше &lt;strong&gt;имя&lt;/strong&gt;, &lt;strong&gt;имя сервера&lt;/strong&gt; (hostname), &lt;strong&gt;имя пользователя&lt;/strong&gt; и надежный &lt;strong&gt;пароль&lt;/strong&gt;.
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aiso_lfs_server%3Aiso_lfs_server&amp;amp;media=software:linux_server:iso_lfs_server:iso_lfs_server_23_15.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:iso_lfs_server:iso_lfs_server_23_15.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:iso_lfs_server:iso_lfs_server_23_15.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
SSH-сервер: &lt;strong&gt;Обязательно отметьте галочкой пункт Install OpenSSH server&lt;/strong&gt; для последующего удаленного администрирования.
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aiso_lfs_server%3Aiso_lfs_server&amp;amp;media=software:linux_server:iso_lfs_server:iso_lfs_server_23_17.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:iso_lfs_server:iso_lfs_server_23_17.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:iso_lfs_server:iso_lfs_server_23_17.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Дополнительные пакеты (Snaps): &lt;strong&gt;Нажмите Done&lt;/strong&gt;, пропуская выбор дополнительных утилит (их можно поставить позже).Начнется процесс установки.
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aiso_lfs_server%3Aiso_lfs_server&amp;amp;media=software:linux_server:iso_lfs_server:iso_lfs_server_23_18.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:iso_lfs_server:iso_lfs_server_23_18.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:iso_lfs_server:iso_lfs_server_23_18.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
После его завершения выберите команду &lt;strong&gt;Reboot Now&lt;/strong&gt;.
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aiso_lfs_server%3Aiso_lfs_server&amp;amp;media=software:linux_server:iso_lfs_server:iso_lfs_server_23_19.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:iso_lfs_server:iso_lfs_server_23_19.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:iso_lfs_server:iso_lfs_server_23_19.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Если &lt;strong&gt;Hyper-V попросит извлечь установочный диск&lt;/strong&gt;, просто нажмите клавишу &lt;strong&gt;Enter&lt;/strong&gt;
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aiso_lfs_server%3Aiso_lfs_server&amp;amp;media=software:linux_server:iso_lfs_server:iso_lfs_server_23_20.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:iso_lfs_server:iso_lfs_server_23_20.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:iso_lfs_server:iso_lfs_server_23_20.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Войдите в систему, введя &lt;strong&gt;логин&lt;/strong&gt; и &lt;strong&gt;пароль&lt;/strong&gt;
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aiso_lfs_server%3Aiso_lfs_server&amp;amp;media=software:linux_server:iso_lfs_server:iso_lfs_server_23_21.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:iso_lfs_server:iso_lfs_server_23_21.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:iso_lfs_server:iso_lfs_server_23_21.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u041e\u0421 Ubuntu Server&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430_\u043e\u0441_ubuntu_server&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:20,&amp;quot;range&amp;quot;:&amp;quot;18940-23131&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit21&quot; id=&quot;putty_ключи_ssh_и_обновление_системы&quot;&gt;PuTTY, ключи SSH и обновление системы.&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Добавим &lt;strong&gt;ip&lt;/strong&gt;-адрес (в нашем примере 192.168.1.&lt;strong&gt;65&lt;/strong&gt;) в программу &lt;strong&gt;PuTTY&lt;/strong&gt; — клиентская программа для работы с сетевыми протоколами.
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aiso_lfs_server%3Aiso_lfs_server&amp;amp;media=software:linux_server:iso_lfs_server:iso_lfs_server_23_22.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:iso_lfs_server:iso_lfs_server_23_22.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:iso_lfs_server:iso_lfs_server_23_22.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
И в появившееся окно вводим логин и пароль
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aiso_lfs_server%3Aiso_lfs_server&amp;amp;media=software:linux_server:iso_lfs_server:iso_lfs_server_23_24.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:iso_lfs_server:iso_lfs_server_23_24.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:iso_lfs_server:iso_lfs_server_23_24.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;PuTTY, \u043a\u043b\u044e\u0447\u0438 SSH \u0438 \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u0438\u0441\u0442\u0435\u043c\u044b.&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;putty_\u043a\u043b\u044e\u0447\u0438_ssh_\u0438_\u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435_\u0441\u0438\u0441\u0442\u0435\u043c\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:21,&amp;quot;range&amp;quot;:&amp;quot;23132-23685&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit22&quot; id=&quot;установите_инструменты_сборки&quot;&gt;Установите инструменты сборки:&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
После установки Ubuntu выполните команду, которая подготовит хост к сборке
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=0&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; apt update &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; apt &lt;span class=&quot;kw2&quot;&gt;install&lt;/span&gt; build-essential &lt;span class=&quot;kw2&quot;&gt;bison&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;flex&lt;/span&gt; texinfo &lt;span class=&quot;kw2&quot;&gt;gawk&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aiso_lfs_server%3Aiso_lfs_server&amp;amp;media=software:linux_server:iso_lfs_server:iso_lfs_server_30_1.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:iso_lfs_server:iso_lfs_server_30_1.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:iso_lfs_server:iso_lfs_server_30_1.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Выведим информацию обо всех доступных блочных устройствах: жестких дисках (HDD), SSD, USB-накопителях, разделах и логических томах (LVM/RAID)
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=1&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;lsblk&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aiso_lfs_server%3Aiso_lfs_server&amp;amp;media=software:linux_server:iso_lfs_server:iso_lfs_server_30_2.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:iso_lfs_server:iso_lfs_server_30_2.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:iso_lfs_server:iso_lfs_server_30_2.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b \u0441\u0431\u043e\u0440\u043a\u0438:&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435_\u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u044b_\u0441\u0431\u043e\u0440\u043a\u0438&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:22,&amp;quot;range&amp;quot;:&amp;quot;23686-24442&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit23&quot; id=&quot;добавление_второго_диска&quot;&gt;Добавление второго диска:&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
В настройках виртуальной машины в &lt;strong&gt;Hyper-V&lt;/strong&gt; добавьте еще один чистый виртуальный жесткий диск (VHDX) размером около 50-100 ГБ.&lt;br/&gt;

&lt;em&gt;Именно на этом чистом диске мы будем «строить» ваш будущий &lt;strong&gt;LFS-сервер&lt;/strong&gt;.&lt;/em&gt; &lt;br/&gt;

Откройте &lt;strong&gt;Диспетчер Hyper-V (Hyper-V Manager)&lt;/strong&gt;. В списке виртуальных машин найдите нужную.Нажмите на нее правой кнопкой мыши и выберите &lt;strong&gt;«Параметры…» (Settings)&lt;/strong&gt;
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aiso_lfs_server%3Aiso_lfs_server&amp;amp;media=software:linux_server:iso_lfs_server:iso_lfs_server_001_2.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:iso_lfs_server:iso_lfs_server_001_2.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:iso_lfs_server:iso_lfs_server_001_2.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Выберите &lt;strong&gt;Виртуальный жесткий диск&lt;/strong&gt; и нажмите &lt;strong&gt;Создать&lt;/strong&gt;.
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aiso_lfs_server%3Aiso_lfs_server&amp;amp;media=software:linux_server:iso_lfs_server:iso_lfs_server_30_3.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:iso_lfs_server:iso_lfs_server_30_3.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:iso_lfs_server:iso_lfs_server_30_3.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Выбирети тип диска: &lt;strong&gt;Динамически расширяемый&lt;/strong&gt;
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aiso_lfs_server%3Aiso_lfs_server&amp;amp;media=software:linux_server:iso_lfs_server:iso_lfs_server_30_4.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:iso_lfs_server:iso_lfs_server_30_4.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:iso_lfs_server:iso_lfs_server_30_4.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Укажите имя диска и местоположение
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aiso_lfs_server%3Aiso_lfs_server&amp;amp;media=software:linux_server:iso_lfs_server:iso_lfs_server_23_25.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:iso_lfs_server:iso_lfs_server_23_25.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:iso_lfs_server:iso_lfs_server_23_25.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Настройте диск (рекомендуется под lfs 100 Гб) 
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aiso_lfs_server%3Aiso_lfs_server&amp;amp;media=software:linux_server:iso_lfs_server:iso_lfs_server_30_5.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:iso_lfs_server:iso_lfs_server_30_5.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:iso_lfs_server:iso_lfs_server_30_5.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Проверьте параметры и подтвердите создание диска
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aiso_lfs_server%3Aiso_lfs_server&amp;amp;media=software:linux_server:iso_lfs_server:iso_lfs_server_30_6.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:iso_lfs_server:iso_lfs_server_30_6.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:iso_lfs_server:iso_lfs_server_30_6.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Примените изменения окна &lt;strong&gt;«Параметров»&lt;/strong&gt; и нажмите &lt;strong&gt;«ОК»&lt;/strong&gt;.
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aiso_lfs_server%3Aiso_lfs_server&amp;amp;media=software:linux_server:iso_lfs_server:iso_lfs_server_30_7.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:iso_lfs_server:iso_lfs_server_30_7.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:iso_lfs_server:iso_lfs_server_30_7.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Выведим информацию обо всех доступных блочных устройствах: жестких дисках (HDD), SSD, USB-накопителях, разделах и логических томах (LVM/RAID)
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=2&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;lsblk&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;strong&gt;Найдите ваш диск&lt;/strong&gt;:Введите команду &lt;strong&gt;lsblk&lt;/strong&gt;. Скорее всего, ваш диск на &lt;strong&gt;100 ГБ&lt;/strong&gt; будет называться &lt;strong&gt;/dev/sdb&lt;/strong&gt;. 
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aiso_lfs_server%3Aiso_lfs_server&amp;amp;media=software:linux_server:iso_lfs_server:iso_lfs_server_30_8.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:iso_lfs_server:iso_lfs_server_30_8.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:iso_lfs_server:iso_lfs_server_30_8.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Если это так, используйте это имя. &lt;strong&gt;Разметка диска&lt;/strong&gt; (создаем один раздел на &lt;strong&gt;весь объем&lt;/strong&gt;):
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=3&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;fdisk&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sdb&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;em&gt;Внутри &lt;strong&gt;fdisk&lt;/strong&gt; вводите команды по очереди:&lt;/em&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;  &lt;em&gt;&amp;#039;g&amp;#039; (создаст новую пустую таблицу разделов GPT)&lt;/em&gt; &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;  &lt;em&gt;&amp;#039;n&amp;#039; (создаст новый раздел)&lt;/em&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;  &lt;em&gt;&amp;#039;Enter&amp;#039; (номер 1)&lt;/em&gt; &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;  &lt;em&gt;&amp;#039;Enter&amp;#039; (первый сектор)&lt;/em&gt; &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;  &lt;em&gt;&amp;#039;Enter&amp;#039; (последний сектор - выберется весь объем)&lt;/em&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;  &lt;em&gt;&amp;#039;w&amp;#039; (записать изменения и выйти)&lt;/em&gt; - запишет изменения на диск и выйдет&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aiso_lfs_server%3Aiso_lfs_server&amp;amp;media=software:linux_server:iso_lfs_server:iso_lfs_server_30_9.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:iso_lfs_server:iso_lfs_server_30_9.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:iso_lfs_server:iso_lfs_server_30_9.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0432\u0442\u043e\u0440\u043e\u0433\u043e \u0434\u0438\u0441\u043a\u0430:&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435_\u0432\u0442\u043e\u0440\u043e\u0433\u043e_\u0434\u0438\u0441\u043a\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:23,&amp;quot;range&amp;quot;:&amp;quot;24443-27657&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit24&quot; id=&quot;форматирование_и_монтирование&quot;&gt;Форматирование и монтирование&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Форматируем диск нижеприведенной командой. Для LFS стандартным и самым надежным выбором является файловая система ext4.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=4&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; mkfs.ext4 &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sdb1&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aiso_lfs_server%3Aiso_lfs_server&amp;amp;media=software:linux_server:iso_lfs_server:iso_lfs_server_30_10.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:iso_lfs_server:iso_lfs_server_30_10.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:iso_lfs_server:iso_lfs_server_30_10.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Создаем точку монтирования, если она не создана
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=5&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-pv&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aiso_lfs_server%3Aiso_lfs_server&amp;amp;media=software:linux_server:iso_lfs_server:iso_lfs_server_30_11.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:iso_lfs_server:iso_lfs_server_30_11.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:iso_lfs_server:iso_lfs_server_30_11.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Монтируем диск
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=6&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;mount&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-v&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-t&lt;/span&gt; ext4 &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sdb1 &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aiso_lfs_server%3Aiso_lfs_server&amp;amp;media=software:linux_server:iso_lfs_server:iso_lfs_server_30_12.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:iso_lfs_server:iso_lfs_server_30_12.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:iso_lfs_server:iso_lfs_server_30_12.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Выведим информацию обо всех доступных блочных устройствах: жестких дисках (HDD), SSD, USB-накопителях, разделах и логических томах (LVM/RAID)
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=7&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;lsblk&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aiso_lfs_server%3Aiso_lfs_server&amp;amp;media=software:linux_server:iso_lfs_server:iso_lfs_server_30_13.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:iso_lfs_server:iso_lfs_server_30_13.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:iso_lfs_server:iso_lfs_server_30_13.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Даем права вашему пользователю, чтобы скрипты работали без sudo
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=8&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;chown&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-v&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$USER&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aiso_lfs_server%3Aiso_lfs_server&amp;amp;media=software:linux_server:iso_lfs_server:iso_lfs_server_30_14.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:iso_lfs_server:iso_lfs_server_30_14.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:iso_lfs_server:iso_lfs_server_30_14.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0424\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0444\u043e\u0440\u043c\u0430\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435_\u0438_\u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:4,&amp;quot;secid&amp;quot;:24,&amp;quot;range&amp;quot;:&amp;quot;27658-29119&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit25&quot; id=&quot;создание_структуры_папок_lfs-builder_packages_sources_logs_scripts&quot;&gt;Создание структуры папок /lfs-builder (packages, sources, logs, scripts).&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Папки &lt;strong&gt;lfs&lt;/strong&gt; и &lt;strong&gt;lfs-builder&lt;/strong&gt; с подкаталогами &lt;strong&gt;packages&lt;/strong&gt;, &lt;strong&gt;sources&lt;/strong&gt;, &lt;strong&gt;logs&lt;/strong&gt; и &lt;strong&gt;scripts&lt;/strong&gt; относятся к процессу автоматизированной сборки операционной системы Linux From Scratch (LFS) из исходных кодов.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b \u043f\u0430\u043f\u043e\u043a \/lfs-builder (packages, sources, logs, scripts).&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435_\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u044b_\u043f\u0430\u043f\u043e\u043a_lfs-builder_packages_sources_logs_scripts&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:9,&amp;quot;secid&amp;quot;:25,&amp;quot;range&amp;quot;:&amp;quot;29120-29534&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit26&quot; id=&quot;каталог_lfs-builder&quot;&gt;Каталог /lfs-builder&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;strong&gt;/lfs-builder&lt;/strong&gt; (или чаще просто $LFS, указывающая на определенный раздел, например, &lt;strong&gt;/mnt/lfs&lt;/strong&gt;) используется в проекте Linux From Scratch (LFS — «Linux с нуля»)
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;суть_этой_папки&quot;&gt;Суть этой папки:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;Рабочее пространство&lt;/strong&gt;: Это специально выделенное место на диске (отдельный раздел или каталог), где происходит сборка вашей собственной операционной системы GNU/Linux из исходных кодов.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;Изоляция:&lt;/strong&gt; В этой папке создается изолированная файловая система, чтобы процесс сборки не затронул файлы установленной хост-системы (вашего основного Linux-дистрибутива).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;Содержимое:&lt;/strong&gt; Внутри &lt;strong&gt;$LFS&lt;/strong&gt; находятся:&lt;/div&gt;
&lt;ul&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;sources:&lt;/strong&gt; Исходные коды пакетов (архивы &lt;strong&gt;.tar.gz&lt;/strong&gt; и др.).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;tools:&lt;/strong&gt; Временные инструменты сборки (компилятор, ассемблер, библиотеки), которые собираются в начале.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;bin, etc, lib, usr и т.д.:&lt;/strong&gt; Корневая файловая система будущей новой ОС.В контексте сборки LFS, переменная окружения LFS указывает на эту папку, чтобы все команды выполнялись внутри нее, например: &lt;strong&gt;export LFS=/mnt/lfs&lt;/strong&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;назначение_папок&quot;&gt;Назначение папок&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;sources/&lt;/strong&gt; (Исходные коды) - сюда скачиваются официальные архивы исходного кода (&lt;strong&gt;.tar.gz&lt;/strong&gt;, .tar.xz) всех базовых компонентов будущей ОС (ядро Linux, компилятор &lt;strong&gt;GCC&lt;/strong&gt;, системная библиотека &lt;strong&gt;Glibc&lt;/strong&gt;, утилиты &lt;strong&gt;Bash&lt;/strong&gt;, &lt;strong&gt;Coreutils&lt;/strong&gt; и т.д.). Именно из этих файлов утилита будет компилировать систему. &lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;scripts/&lt;/strong&gt; (Сценарии сборки) - содержит автоматические сценарии (обычно &lt;strong&gt;.sh&lt;/strong&gt; на &lt;strong&gt;Bash&lt;/strong&gt;). Каждый скрипт отвечает за сборку конкретного пакета (например, &lt;strong&gt;01-binutils.sh&lt;/strong&gt;, &lt;strong&gt;02-gcc.sh&lt;/strong&gt;). Они автоматизируют рутинные команды: распаковку архива, запуск &lt;strong&gt;./configure, make и make install&lt;/strong&gt;.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;packages/&lt;/strong&gt; (Готовые пакеты) - есто, куда сохраняются скомпилированные бинарные пакеты, если сборщик использует пакетный менеджер (например, создает &lt;strong&gt;.pkg.tar.xz или .rpm&lt;/strong&gt; в процессе). Также здесь могут временно находиться файлы, уже готовые к развертыванию в целевую систему.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;logs/&lt;/strong&gt; (Журналы сборки) - cюда записывается весь текстовый вывод процесса компиляции (ошибки, предупреждения, отчеты тестов &lt;strong&gt;make check&lt;/strong&gt;). Так как сборка LFS длится часами и содержит тысячи строк логов, папка критически важна для отладки: если компиляция упала, причину ищут в файле вроде &lt;strong&gt;logs/gcc-build.log&lt;/strong&gt;.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041a\u0430\u0442\u0430\u043b\u043e\u0433 \/lfs-builder&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043a\u0430\u0442\u0430\u043b\u043e\u0433_lfs-builder&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:9,&amp;quot;secid&amp;quot;:26,&amp;quot;range&amp;quot;:&amp;quot;29535-33338&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit27&quot; id=&quot;создаем_папку_packages_в_домашнем_каталоге_lfs-builder&quot;&gt;Создаем папку /packages в домашнем каталоге /lfs-builder:&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Команда &lt;strong&gt;mkdir -pv ~/lfs-builder/packages&lt;/strong&gt; используется для создания структуры каталогов в операционных системах на базе Linux. Она подготавливает директорию для хранения пакетов исходного кода, необходимых для сборки собственной операционной системы в рамках проекта LFS (Linux From Scratch)
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=9&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-pv&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;packages&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Разбор команды по частя
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;мmkdir (make directory)&lt;/strong&gt; — стандартная утилита Linux для создания новых папок (каталогов).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;-p (parents)&lt;/strong&gt; — флаг, который позволяет создавать вложенные папки вместе со всеми недостающими родительскими каталогами. Если целевая папка уже существует, команда не выдаст ошибку.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;-v (verbose)&lt;/strong&gt; — флаг детализации. Выводит в терминал сообщение о каждой созданной директории, подтверждая успешное выполнение действия.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;~/lfs-builder/packages&lt;/strong&gt; — путь к создаваемой папке:&lt;strong&gt;~ (тильда)&lt;/strong&gt; — короткое обозначение домашнего каталога текущего пользователя (например, &lt;strong&gt;/home/lfs&lt;/strong&gt;)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;.lfs-builder/packages&lt;/strong&gt; — имя создаваемой цепочки папок (сначала создается &lt;strong&gt;lfs-builder&lt;/strong&gt;, а внутри нее каталог &lt;strong&gt;packages&lt;/strong&gt;).&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aiso_lfs_server%3Aiso_lfs_server&amp;amp;media=software:linux_server:iso_lfs_server:iso_lfs_server_30_15.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:iso_lfs_server:iso_lfs_server_30_15.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:iso_lfs_server:iso_lfs_server_30_15.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Эта команда создает символическую ссылку в корневой директории, связывающую путь &lt;strong&gt;/lfs-builder&lt;/strong&gt; с папкой &lt;strong&gt;lfs-builder&lt;/strong&gt; в домашнем каталоге текущего пользователя.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=10&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;ln&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-sv&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Разбор команды по частям
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;sudo&lt;/strong&gt; — запускает команду с правами администратора &lt;strong&gt;(root)&lt;/strong&gt;, так как создание файлов и папок в корневом каталоге &lt;strong&gt;(/)&lt;/strong&gt; обычному пользователю запрещено.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;ln&lt;/strong&gt; — стандартная утилита Linux для создания ссылок между файлами или директориями.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;-s (symbolic)&lt;/strong&gt; — указывает создать символическую ссылку (софт-линк), а не жесткую.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;-v (verbose)&lt;/strong&gt; — включает подробный вывод, заставляя команду напечатать в терминал имя каждого связанного файла (например: &amp;#039;&lt;strong&gt;/lfs-builder&amp;#039;&lt;/strong&gt; → &amp;#039;&lt;strong&gt;/home/user/lfs-builder&amp;#039;&lt;/strong&gt;).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;~/lfs-builder&lt;/strong&gt; — исходный объект (цель). Знак тильды &lt;strong&gt;(~)&lt;/strong&gt; автоматически разворачивается в путь к домашней директории текущего пользователя (например,&lt;strong&gt; /home/имя_пользователя/lfs-builder&lt;/strong&gt;).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;/lfs-builder&lt;/strong&gt; — путь и имя создаваемой ссылки в корневой файловой системе.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aiso_lfs_server%3Aiso_lfs_server&amp;amp;media=software:linux_server:iso_lfs_server:iso_lfs_server_30_16.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:iso_lfs_server:iso_lfs_server_30_16.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:iso_lfs_server:iso_lfs_server_30_16.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Команда &lt;strong&gt;df -h | grep lfs&lt;/strong&gt; используется для проверки статуса монтирования раздела LFS. Она позволяет быстро узнать, подключен ли отдельный жесткий диск или раздел для сборки Linux From Scratch к вашей текущей системе, а также оценить свободное место на нем.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=11&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;df&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-h&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;grep&lt;/span&gt; lfs&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Разбор команды по частям
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;df (disk free)&lt;/strong&gt; — утилита для вывода информации о дисковом пространстве файловых систем.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;-h (human-readable)&lt;/strong&gt; — флаг, который переводит размеры в понятный человеку формат (в гигабайтах ГБ или мегабайтах МБ вместо байт)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;| (pipe / конвейер)&lt;/strong&gt; — перенаправляет текстовый вывод команды &lt;strong&gt;df&lt;/strong&gt; на вход команды grep&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;grep lfs&lt;/strong&gt; — фильтр, который ищет и выводит только те строки, которые содержат текст «lfs».&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
На этапе подготовки сборки вы монтируете целевой раздел (например, в точку &lt;strong&gt;/mnt/lfs&lt;/strong&gt;).
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Если раздел примонтирован: команда выведет строку с информацией о диске (размер, занято место, доступно место, процент использования и точка монтирования &lt;strong&gt;/mnt/lfs&lt;/strong&gt;).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Если раздел &lt;strong&gt;НЕ примонтирован&lt;/strong&gt;: команда вернет пустую строку. Это сигнал, что перед началом работы нужно выполнить команду &lt;strong&gt;mount&lt;/strong&gt;.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aiso_lfs_server%3Aiso_lfs_server&amp;amp;media=software:linux_server:iso_lfs_server:iso_lfs_server_30_17.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:iso_lfs_server:iso_lfs_server_30_17.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:iso_lfs_server:iso_lfs_server_30_17.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043f\u0430\u043f\u043a\u0443 \/packages \u0432 \u0434\u043e\u043c\u0430\u0448\u043d\u0435\u043c \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435 \/lfs-builder:&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u043e\u0437\u0434\u0430\u0435\u043c_\u043f\u0430\u043f\u043a\u0443_packages_\u0432_\u0434\u043e\u043c\u0430\u0448\u043d\u0435\u043c_\u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0435_lfs-builder&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:9,&amp;quot;secid&amp;quot;:27,&amp;quot;range&amp;quot;:&amp;quot;33339-39232&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit28&quot; id=&quot;создаем_каталоги_sources_logs_scripts_в_lfs-builder&quot;&gt;Создаем каталоги /sources,logs,scripts в /lfs-builder:&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Флаг &lt;strong&gt;-p&lt;/strong&gt; создаст всю цепочку папок, если родительский каталог &lt;strong&gt;/lfs-builder&lt;/strong&gt; еще не существует.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=12&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-p&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;sources,logs,scripts&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
В нашем случае Флаг &lt;strong&gt;-p&lt;/strong&gt; опускаем
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=13&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;sources,logs,scripts&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aiso_lfs_server%3Aiso_lfs_server&amp;amp;media=software:linux_server:iso_lfs_server:iso_lfs_server_30_21.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:iso_lfs_server:iso_lfs_server_30_21.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:iso_lfs_server:iso_lfs_server_30_21.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Установка полных прав для владельца (&lt;strong&gt;не root&lt;/strong&gt;) (чтение, запись, исполнение)
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=14&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sudo&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;chmod&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-R&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;755&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aiso_lfs_server%3Aiso_lfs_server&amp;amp;media=software:linux_server:iso_lfs_server:iso_lfs_server_30_22.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:iso_lfs_server:iso_lfs_server_30_22.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:iso_lfs_server:iso_lfs_server_30_22.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;

&lt;h4 id=&quot;проверка_результата&quot;&gt;Проверка результата&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Убедиться, что каталоги созданы и права выставлены корректно, можно командой:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=15&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-la&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aiso_lfs_server%3Aiso_lfs_server&amp;amp;media=software:linux_server:iso_lfs_server:iso_lfs_server_30_23.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:iso_lfs_server:iso_lfs_server_30_23.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:iso_lfs_server:iso_lfs_server_30_23.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
В выводе вы должны увидеть, что у всех папок владельцем значится lfs, а права имеют вид &lt;strong&gt;drwxwxrwx&lt;/strong&gt;.&lt;br/&gt;

Права вида &lt;strong&gt;drwxwxrwx&lt;/strong&gt; означают максимальный (полный) уровень доступа к каталогу для абсолютно всех пользователей в системе.&lt;br/&gt;

Для папок проекта &lt;strong&gt;/lfs-builder&lt;/strong&gt; (особенно &lt;strong&gt;sources, logs, packages, scripts&lt;/strong&gt;) режим 777 имеет свои плюсы и минусы:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;Плюс:&lt;/strong&gt; Скрипты сборщика и любые пользователи (включая &lt;strong&gt;root&lt;/strong&gt; и &lt;strong&gt;lfs&lt;/strong&gt;) гарантированно смогут записывать логи, скачивать пакеты и запускать сценарии без ошибок &lt;strong&gt;«Permission denied»&lt;/strong&gt;.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;Минус:&lt;/strong&gt; Это небезопасно в реальных многопользовательских системах, так как любой непривилегированный процесс или гость сможет удалить или подменить файлы исходного кода ОС.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u043e\u0437\u0434\u0430\u0435\u043c \u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0438 \/sources,logs,scripts \u0432 \/lfs-builder:&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u043e\u0437\u0434\u0430\u0435\u043c_\u043a\u0430\u0442\u0430\u043b\u043e\u0433\u0438_sources_logs_scripts_\u0432_lfs-builder&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:12,&amp;quot;secid&amp;quot;:28,&amp;quot;range&amp;quot;:&amp;quot;39233-41609&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit29&quot; id=&quot;файл_configconf&quot;&gt;Файл config.conf&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Файл &lt;strong&gt;config.conf&lt;/strong&gt; — это текстовый файл &lt;strong&gt;конфигурации (настроек)&lt;/strong&gt;, который используется программами и скриптами для хранения параметров работы. В контексте сборки Linux From Scratch (LFS) или автоматизированных скриптов (например, lfs-automated-builder) этот файл содержит ключевые переменные окружения. 
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;что_обычно_находится_внутри_configconf&quot;&gt;Что обычно находится внутри config.conf&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
В этом файле задаются глобальные настройки, чтобы не вводить их вручную при каждой сборке. Типичное содержимое включает:
&lt;strong&gt;LFS=/mnt/lfs&lt;/strong&gt; — путь к точке монтирования целевого раздела LFS.
&lt;strong&gt;LFS_TGT=x86_64-lfs-linux-gnu&lt;/strong&gt; — префикс целевой архитектуры для кросс-компиляции.
&lt;strong&gt;MAKEFLAGS=&amp;quot;-j$(nproc)&amp;quot;&lt;/strong&gt; — количество ядер процессора, используемых для ускорения сборки пакетов.
&lt;strong&gt;LFS_USER=lfs&lt;/strong&gt; — имя непривилегированного пользователя, от имени которого собираются начальные инструменты.
Зайдите в папку сборщика:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=16&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;cd&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aiso_lfs_server%3Aiso_lfs_server&amp;amp;media=software:linux_server:iso_lfs_server:iso_lfs_server_30_18.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:iso_lfs_server:iso_lfs_server_30_18.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:iso_lfs_server:iso_lfs_server_30_18.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Создайте файл: 
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=17&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;nano&lt;/span&gt; config.conf&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aiso_lfs_server%3Aiso_lfs_server&amp;amp;media=software:linux_server:iso_lfs_server:iso_lfs_server_30_19.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:iso_lfs_server:iso_lfs_server_30_19.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:iso_lfs_server:iso_lfs_server_30_19.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Вставьте туда следующий текст:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=18&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_conf&quot;&gt;config.conf&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;#!/bin/bash&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# Путь к новой системе&lt;/span&gt;
&lt;span class=&quot;kw3&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;LFS&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs
&lt;span class=&quot;co0&quot;&gt;# Параметры кросс-компиляции&lt;/span&gt;
&lt;span class=&quot;kw3&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;LFS_TGT&lt;/span&gt;=x86_64-lfs-linux-gnu
&lt;span class=&quot;co0&quot;&gt;# Ускорение сборки (используем все ядра CPU)&lt;/span&gt;
&lt;span class=&quot;kw3&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;MAKEFLAGS&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;-j&lt;span class=&quot;es4&quot;&gt;$(nproc)&lt;/span&gt;&amp;quot;&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# Пути к исходникам и логам&lt;/span&gt;
&lt;span class=&quot;kw3&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;SOURCES&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sources
&lt;span class=&quot;kw3&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;LOGS&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$HOME&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;logs
&lt;span class=&quot;co0&quot;&gt;# Создаем папку для логов, если её нет&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-pv&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$LOGS&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;em&gt;(Нажмите Ctrl+O, Enter, затем Ctrl+X для сохранения и выхода)&lt;/em&gt;
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aiso_lfs_server%3Aiso_lfs_server&amp;amp;media=software:linux_server:iso_lfs_server:iso_lfs_server_30_20.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:iso_lfs_server:iso_lfs_server_30_20.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:iso_lfs_server:iso_lfs_server_30_20.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0424\u0430\u0439\u043b config.conf&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0444\u0430\u0439\u043b_configconf&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:16,&amp;quot;secid&amp;quot;:29,&amp;quot;range&amp;quot;:&amp;quot;41610-44144&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit30&quot; id=&quot;файл_downloadsh&quot;&gt;Файл download.sh&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Файл &lt;strong&gt;download.sh&lt;/strong&gt; — это скрипт автоматизации на языке Bash, предназначенный для скачивания пакетов исходного кода (тарболов &lt;strong&gt;.tar.gz, .tar.xz&lt;/strong&gt;) и патчей, необходимых для сборки операционной системы Linux From Scratch (LFS).
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;что_делает_этот_скрипт&quot;&gt;Что делает этот скрипт&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
При запуске скрипт выполняет следующие задачи:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Чтение списка пакетов: обращается к текстовому файлу (например, &lt;strong&gt;wget-list&lt;/strong&gt;), где перечислены &lt;abbr title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/abbr&gt;-адреса всех программ для текущей версии LFS.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Скачивание файлов: поочередно загружает исходные коды (&lt;strong&gt;GCC, Glibc, Binutils&lt;/strong&gt;, ядро Linux и др.) с помощью утилит &lt;strong&gt;wget&lt;/strong&gt; или &lt;strong&gt;curl&lt;/strong&gt;.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Проверка целостности: часто сверяет контрольные суммы скачанных архивов (&lt;strong&gt;MD5/SHA256&lt;/strong&gt;) со списком &lt;strong&gt;md5sums&lt;/strong&gt;, чтобы исключить повреждение файлов.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Сохранение в целевую папку: автоматически складывает загруженные архивы в правильный каталог, обычно в &lt;strong&gt;$LFS/sources&lt;/strong&gt; или созданную ранее &lt;strong&gt;~/lfs-builder/packages&lt;/strong&gt;.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;

&lt;h4 id=&quot;пример_содержимого_изнутри&quot;&gt;Пример содержимого изнутри&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Внутри скрипта обычно находится код подобного вида:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=19&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;#!/bin/bash&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# Загрузка списка URL и скачивание в папку источников&lt;/span&gt;
&lt;span class=&quot;kw3&quot;&gt;cd&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sources
&lt;span class=&quot;kw2&quot;&gt;wget&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--input-file&lt;/span&gt;=wget-list &lt;span class=&quot;re5&quot;&gt;--continue&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--directory-prefix&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sources&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Ссылка на рабочий репозиторий &lt;strong&gt;&lt;a href=&quot;https://ftp.clfs.org/pub/lfs/lfs-packages/12.1/&quot; class=&quot;urlextern&quot; title=&quot;https://ftp.clfs.org/pub/lfs/lfs-packages/12.1/&quot; rel=&quot;ugc nofollow&quot;&gt;lfs-packages 12.1&lt;/a&gt;&lt;/strong&gt;, откуда можно взять любой пакет, описанный в этом руководстве, пример команды:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=20&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;wget&lt;/span&gt; https:&lt;span class=&quot;sy0&quot;&gt;//&lt;/span&gt;ftp.clfs.org&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pub&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;12.1&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;... .tar.gz .tar.xz&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Чистый рабочий скрипт &lt;strong&gt;download.sh&lt;/strong&gt; с правильным &lt;abbr title=&quot;Uniform Resource Locator&quot;&gt;URL&lt;/abbr&gt;&lt;br/&gt;

Скопируйте этот блок кода целиком и вставьте его правой кнопкой мыши в консоль PuTTy (находясь в папке &lt;strong&gt;~/lfs-builder&lt;/strong&gt;):
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=21&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;EOF&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;download.sh
&lt;span class=&quot;co0&quot;&gt;#!/bin/bash&lt;/span&gt;
&lt;span class=&quot;kw3&quot;&gt;source&lt;/span&gt; .&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;config.conf
&amp;nbsp;
&lt;span class=&quot;re2&quot;&gt;URL&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;ftp.clfs.org/pub/lfs/lfs-packages/12.1/&amp;quot;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re2&quot;&gt;PACKAGES&lt;/span&gt;=&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;
  &lt;span class=&quot;st0&quot;&gt;&amp;quot;Jinja2-3.1.3.tar.gz&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;MarkupSafe-2.1.5.tar.gz&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;Python-3.12.2.tar.xz&amp;quot;&lt;/span&gt;
  &lt;span class=&quot;st0&quot;&gt;&amp;quot;XML-Parser-2.47.tar.gz&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;acl-2.3.2.tar.xz&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;attr-2.5.2.tar.gz&amp;quot;&lt;/span&gt;
  &lt;span class=&quot;st0&quot;&gt;&amp;quot;autoconf-2.72.tar.xz&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;automake-1.16.5.tar.xz&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;bash-5.2.21.tar.gz&amp;quot;&lt;/span&gt;
  &lt;span class=&quot;st0&quot;&gt;&amp;quot;bash-5.2.21-upstream_fixes-1.patch&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;bc-6.7.5.tar.xz&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;binutils-2.42.tar.xz&amp;quot;&lt;/span&gt;
  &lt;span class=&quot;st0&quot;&gt;&amp;quot;bison-3.8.2.tar.xz&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;bzip2-1.0.8.tar.gz&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;bzip2-1.0.8-install_docs-1.patch&amp;quot;&lt;/span&gt;
  &lt;span class=&quot;st0&quot;&gt;&amp;quot;check-0.15.2.tar.gz&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;coreutils-9.4.tar.xz&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;coreutils-9.4-i18n-1.patch&amp;quot;&lt;/span&gt;
  &lt;span class=&quot;st0&quot;&gt;&amp;quot;dbus-1.14.10.tar.xz&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;dejagnu-1.6.3.tar.gz&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;diffutils-3.10.tar.xz&amp;quot;&lt;/span&gt;
  &lt;span class=&quot;st0&quot;&gt;&amp;quot;e2fsprogs-1.47.0.tar.gz&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;elfutils-0.190.tar.bz2&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;expat-2.6.0.tar.xz&amp;quot;&lt;/span&gt;
  &lt;span class=&quot;st0&quot;&gt;&amp;quot;expect5.45.4.tar.gz&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;file-5.45.tar.gz&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;findutils-4.9.0.tar.xz&amp;quot;&lt;/span&gt;
  &lt;span class=&quot;st0&quot;&gt;&amp;quot;flex-2.6.4.tar.gz&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;flit_core-3.9.0.tar.gz&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;gawk-5.3.0.tar.xz&amp;quot;&lt;/span&gt;
  &lt;span class=&quot;st0&quot;&gt;&amp;quot;gcc-13.2.0.tar.xz&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;gdbm-1.23.tar.gz&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;gettext-0.22.4.tar.xz&amp;quot;&lt;/span&gt;
  &lt;span class=&quot;st0&quot;&gt;&amp;quot;glibc-2.39.tar.xz&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;glibc-2.39-fhs-1.patch&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;gmp-6.3.0.tar.xz&amp;quot;&lt;/span&gt;
  &lt;span class=&quot;st0&quot;&gt;&amp;quot;gperf-3.1.tar.gz&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;grep-3.11.tar.xz&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;groff-1.23.0.tar.gz&amp;quot;&lt;/span&gt;
  &lt;span class=&quot;st0&quot;&gt;&amp;quot;grub-2.12.tar.xz&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;gzip-1.13.tar.xz&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;iana-etc-20240125.tar.gz&amp;quot;&lt;/span&gt;
  &lt;span class=&quot;st0&quot;&gt;&amp;quot;inetutils-2.5.tar.xz&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;intltool-0.51.0.tar.gz&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;iproute2-6.7.0.tar.xz&amp;quot;&lt;/span&gt;
  &lt;span class=&quot;st0&quot;&gt;&amp;quot;kbd-2.6.4.tar.xz&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;kbd-2.6.4-backspace-1.patch&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;kmod-31.tar.xz&amp;quot;&lt;/span&gt;
  &lt;span class=&quot;st0&quot;&gt;&amp;quot;less-643.tar.gz&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;lfs-bootscripts-20231015.tar.xz&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;libcap-2.69.tar.xz&amp;quot;&lt;/span&gt;
  &lt;span class=&quot;st0&quot;&gt;&amp;quot;libffi-3.4.4.tar.gz&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;libpipeline-1.5.7.tar.gz&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;libtool-2.4.7.tar.xz&amp;quot;&lt;/span&gt;
  &lt;span class=&quot;st0&quot;&gt;&amp;quot;libxcrypt-4.4.36.tar.xz&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;linux-6.7.4.tar.xz&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;m4-1.4.19.tar.xz&amp;quot;&lt;/span&gt;
  &lt;span class=&quot;st0&quot;&gt;&amp;quot;make-4.4.1.tar.gz&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;man-db-2.12.0.tar.xz&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;man-pages-6.06.tar.xz&amp;quot;&lt;/span&gt;
  &lt;span class=&quot;st0&quot;&gt;&amp;quot;meson-1.3.2.tar.gz&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;mpc-1.3.1.tar.gz&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;mpfr-4.2.1.tar.xz&amp;quot;&lt;/span&gt;
  &lt;span class=&quot;st0&quot;&gt;&amp;quot;ncurses-6.4-20230520.tar.xz&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;ninja-1.11.1.tar.gz&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;openssl-3.2.1.tar.gz&amp;quot;&lt;/span&gt;
  &lt;span class=&quot;st0&quot;&gt;&amp;quot;patch-2.7.6.tar.xz&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;perl-5.38.2.tar.xz&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;pkgconf-2.1.1.tar.xz&amp;quot;&lt;/span&gt;
  &lt;span class=&quot;st0&quot;&gt;&amp;quot;procps-ng-4.0.4.tar.xz&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;psmisc-23.6.tar.xz&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;readline-8.2.tar.gz&amp;quot;&lt;/span&gt;
  &lt;span class=&quot;st0&quot;&gt;&amp;quot;readline-8.2-upstream_fixes-3.patch&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;sed-4.9.tar.xz&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;setuptools-69.1.0.tar.gz&amp;quot;&lt;/span&gt;
  &lt;span class=&quot;st0&quot;&gt;&amp;quot;shadow-4.14.5.tar.xz&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;sysklogd-1.5.1.tar.gz&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;systemd-255.tar.gz&amp;quot;&lt;/span&gt;
  &lt;span class=&quot;st0&quot;&gt;&amp;quot;systemd-255-upstream_fixes-1.patch&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;sysvinit-3.08.tar.xz&amp;quot;&lt;/span&gt;
  &lt;span class=&quot;st0&quot;&gt;&amp;quot;sysvinit-3.08-consolidated-1.patch&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;tar-1.35.tar.xz&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;tcl8.6.13-src.tar.gz&amp;quot;&lt;/span&gt;
  &lt;span class=&quot;st0&quot;&gt;&amp;quot;texinfo-7.1.tar.xz&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;tzdata2024a.tar.gz&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;udev-lfs-20230818.tar.xz&amp;quot;&lt;/span&gt;
  &lt;span class=&quot;st0&quot;&gt;&amp;quot;util-linux-2.39.3.tar.xz&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;vim-9.1.0041.tar.gz&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;wheel-0.42.0.tar.gz&amp;quot;&lt;/span&gt;
  &lt;span class=&quot;st0&quot;&gt;&amp;quot;xz-5.4.6.tar.xz&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;zlib-1.3.1.tar.gz&amp;quot;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;zstd-1.5.5.tar.gz&amp;quot;&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-pv&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es2&quot;&gt;$SOURCES&lt;/span&gt;&amp;quot;&lt;/span&gt;
&lt;span class=&quot;kw3&quot;&gt;cd&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es2&quot;&gt;$SOURCES&lt;/span&gt;&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;exit&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;for&lt;/span&gt; pkg &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es3&quot;&gt;${PACKAGES[@]}&lt;/span&gt;&amp;quot;&lt;/span&gt;; &lt;span class=&quot;kw1&quot;&gt;do&lt;/span&gt;
  &lt;span class=&quot;kw2&quot;&gt;wget&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--continue&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es3&quot;&gt;${URL}&lt;/span&gt;/&lt;span class=&quot;es3&quot;&gt;${pkg}&lt;/span&gt;&amp;quot;&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;done&lt;/span&gt;
EOF&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aiso_lfs_server%3Aiso_lfs_server&amp;amp;media=software:linux_server:iso_lfs_server:iso_lfs_server_40_1.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:iso_lfs_server:iso_lfs_server_40_1.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:iso_lfs_server:iso_lfs_server_40_1.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0424\u0430\u0439\u043b download.sh&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0444\u0430\u0439\u043b_downloadsh&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:19,&amp;quot;secid&amp;quot;:30,&amp;quot;range&amp;quot;:&amp;quot;44145-49312&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit31&quot; id=&quot;запуск_конвейера&quot;&gt;Запуск конвейера&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Выполните команды очистки, фиксации и старта:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=22&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;# Переход в рабочую директорию&lt;/span&gt;
&lt;span class=&quot;kw3&quot;&gt;cd&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder
&lt;span class=&quot;co0&quot;&gt;#Исправление формата текстового файла&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;sed&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-i&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;s/\r$//&#039;&lt;/span&gt; download.sh
&lt;span class=&quot;co0&quot;&gt;# Выдача прав на выполнение&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;chmod&lt;/span&gt; +x download.sh
&lt;span class=&quot;co0&quot;&gt;# Запуск скрипта загрузки&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;bash&lt;/span&gt; .&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;download.sh&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aiso_lfs_server%3Aiso_lfs_server&amp;amp;media=software:linux_server:iso_lfs_server:iso_lfs_server_40_2.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:iso_lfs_server:iso_lfs_server_40_2.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:iso_lfs_server:iso_lfs_server_40_2.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Скрипт начнет массово скачивать из интернета архивы (например, &lt;strong&gt;gcc.tar.xz, glibc.tar.xz, ядра Linux&lt;/strong&gt;) во внутреннюю папку (обычно это &lt;strong&gt;/sources&lt;/strong&gt;). Эти архивы — фундамент, из которого потом скомпилируют вашу ОС.
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aiso_lfs_server%3Aiso_lfs_server&amp;amp;media=software:linux_server:iso_lfs_server:iso_lfs_server_40_3.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:iso_lfs_server:iso_lfs_server_40_3.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:iso_lfs_server:iso_lfs_server_40_3.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0417\u0430\u043f\u0443\u0441\u043a \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0437\u0430\u043f\u0443\u0441\u043a_\u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:22,&amp;quot;secid&amp;quot;:31,&amp;quot;range&amp;quot;:&amp;quot;49313-50308&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit32&quot; id=&quot;анализ_и_зачистка_папки_источников&quot;&gt;Анализ и зачистка папки источников&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Запустим следубщую команду
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=23&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-lh&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sources&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aiso_lfs_server%3Aiso_lfs_server&amp;amp;media=software:linux_server:iso_lfs_server:iso_lfs_server_40_5.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:iso_lfs_server:iso_lfs_server_40_5.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:iso_lfs_server:iso_lfs_server_40_5.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Выведем список всех файлов в вашей целевой директории с отображением их реальных размеров:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Любые файлы с именем index.html* (это ошибочно скачанные заглушки сайтов).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Ошибочный файл списка wget-list, если он остался со старыми &lt;abbr title=&quot;HyperText Markup Language&quot;&gt;HTML&lt;/abbr&gt;-тегами.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Другую версию binutils-2.44.tar.gz (мы строим систему строго на стабильной базе 2.42 из спецификации).&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Команда для гарантированной зачистки мусора:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=24&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;rm&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-fv&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sources&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;index.html&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;rm&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-fv&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sources&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;binutils-&lt;span class=&quot;nu0&quot;&gt;2.44&lt;/span&gt;.tar.gz&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0410\u043d\u0430\u043b\u0438\u0437 \u0438 \u0437\u0430\u0447\u0438\u0441\u0442\u043a\u0430 \u043f\u0430\u043f\u043a\u0438 \u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u0432&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0430\u043d\u0430\u043b\u0438\u0437_\u0438_\u0437\u0430\u0447\u0438\u0441\u0442\u043a\u0430_\u043f\u0430\u043f\u043a\u0438_\u0438\u0441\u0442\u043e\u0447\u043d\u0438\u043a\u043e\u0432&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:23,&amp;quot;secid&amp;quot;:32,&amp;quot;range&amp;quot;:&amp;quot;50309-51356&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit33&quot; id=&quot;проверка_целостности_базовой_тройки&quot;&gt;Проверка целостности базовой тройки&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Убедитесь, что три главных кита нашей будущей системы скачались полностью и без повреждений:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;binutils-2.42.tar.xz&lt;/strong&gt; — должен весить около &lt;strong&gt;26 МБ&lt;/strong&gt;.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;gcc-13.2.0.tar.xz&lt;/strong&gt; — должен весить около &lt;strong&gt;84 МБ&lt;/strong&gt;.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;glibc-2.39.tar.xz&lt;/strong&gt; — должен весить около &lt;strong&gt;18 МБ&lt;/strong&gt;.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aiso_lfs_server%3Aiso_lfs_server&amp;amp;media=software:linux_server:iso_lfs_server:iso_lfs_server_40_6.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:iso_lfs_server:iso_lfs_server_40_6.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:iso_lfs_server:iso_lfs_server_40_6.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0446\u0435\u043b\u043e\u0441\u0442\u043d\u043e\u0441\u0442\u0438 \u0431\u0430\u0437\u043e\u0432\u043e\u0439 \u0442\u0440\u043e\u0439\u043a\u0438&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430_\u0446\u0435\u043b\u043e\u0441\u0442\u043d\u043e\u0441\u0442\u0438_\u0431\u0430\u0437\u043e\u0432\u043e\u0439_\u0442\u0440\u043e\u0439\u043a\u0438&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:25,&amp;quot;secid&amp;quot;:33,&amp;quot;range&amp;quot;:&amp;quot;51357-51936&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit34&quot; id=&quot;запуск_вашего_эталонного_скрипта&quot;&gt;Запуск вашего эталонного скрипта&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Теперь, когда у нас есть проверенный файл &lt;strong&gt;download.sh&lt;/strong&gt; хост-системы, мы можем перепроверить загруженные пакеты:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=25&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;cd&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder
&lt;span class=&quot;co0&quot;&gt;# Запускаем конвейер&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;bash&lt;/span&gt; .&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;download.sh&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Благодаря флагу &lt;strong&gt;--continue&lt;/strong&gt; в скрипте, утилита проверит ваши уже скачанные &lt;strong&gt;binutils, gcc и glibc&lt;/strong&gt;, увидит, что они целы, и начнет выкачивать все остальные 90+ пакетов по цепочке.
&lt;/p&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aiso_lfs_server%3Aiso_lfs_server&amp;amp;media=software:linux_server:iso_lfs_server:iso_lfs_server_40_8.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:iso_lfs_server:iso_lfs_server_40_8.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:iso_lfs_server:iso_lfs_server_40_8.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0417\u0430\u043f\u0443\u0441\u043a \u0432\u0430\u0448\u0435\u0433\u043e \u044d\u0442\u0430\u043b\u043e\u043d\u043d\u043e\u0433\u043e \u0441\u043a\u0440\u0438\u043f\u0442\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0437\u0430\u043f\u0443\u0441\u043a_\u0432\u0430\u0448\u0435\u0433\u043e_\u044d\u0442\u0430\u043b\u043e\u043d\u043d\u043e\u0433\u043e_\u0441\u043a\u0440\u0438\u043f\u0442\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:25,&amp;quot;secid&amp;quot;:34,&amp;quot;range&amp;quot;:&amp;quot;51937-52696&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit35&quot; id=&quot;финальная_проверка_количества_файлов&quot;&gt;Финальная проверка количества файлов&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Давайте убедимся, что на диске лежит полный комплект для сборки нашего сервера. Выполните команду:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=26&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;ls&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-1&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sources &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;wc&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-l&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aiso_lfs_server%3Aiso_lfs_server&amp;amp;media=software:linux_server:iso_lfs_server:iso_lfs_server_40_10.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:iso_lfs_server:iso_lfs_server_40_10.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:iso_lfs_server:iso_lfs_server_40_10.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Цифра в терминале должна быть в районе 90 (91-93 файла вместе с системными патчами).&lt;br/&gt;

&lt;em&gt;91 файл на скриншоте — это идеальный, эталонный показатель для полной сборки LFS 12.1. Это значит, что у вас на диске лежат абсолютно все исходники программ, библиотек и необходимые официальные патчи ядра и утилит.&lt;/em&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0424\u0438\u043d\u0430\u043b\u044c\u043d\u0430\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u0444\u0430\u0439\u043b\u043e\u0432&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0444\u0438\u043d\u0430\u043b\u044c\u043d\u0430\u044f_\u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430_\u043a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u0430_\u0444\u0430\u0439\u043b\u043e\u0432&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:26,&amp;quot;secid&amp;quot;:35,&amp;quot;range&amp;quot;:&amp;quot;52697-53643&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit36&quot; id=&quot;день_3двигатель_build_engine1&quot;&gt;День 3: Двигатель (Build Engine).&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0414\u0435\u043d\u044c 3: \u0414\u0432\u0438\u0433\u0430\u0442\u0435\u043b\u044c (Build Engine).&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0434\u0435\u043d\u044c_3\u0434\u0432\u0438\u0433\u0430\u0442\u0435\u043b\u044c_build_engine1&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:27,&amp;quot;secid&amp;quot;:36,&amp;quot;range&amp;quot;:&amp;quot;53644-53704&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit37&quot; id=&quot;написание_главного_скрипта_buildshреализация_логики_логирования_и_обработки_ошибок_чтобы_сборка_останавливалась_при_ошибке_make&quot;&gt;Написание главного скрипта build.sh.Реализация логики логирования и обработки ошибок (чтобы сборка останавливалась при ошибке make).&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Главный скрипт &lt;strong&gt;build.sh&lt;/strong&gt; берет на себя автоматическую распаковку, переход в директорию, запуск вашего вложенного скрипта сборки, логирование всего вывода в реальном времени и мгновенную остановку (abort) всего конвейера, если любая из команд компиляции (&lt;strong&gt;configure, make, make install&lt;/strong&gt;) завершилась &lt;strong&gt;ошибкой.1.&lt;/strong&gt; Создание главного управляющего скрипта &lt;strong&gt;build.sh&lt;/strong&gt;&lt;br/&gt;

Выполните в консоли для создания движка:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=27&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_sh&quot;&gt;build.sh&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;EOF&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;scripts&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;build.sh
&lt;span class=&quot;co0&quot;&gt;#!/bin/bash&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-o&lt;/span&gt; pipefail
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Автоматически определяем корень проекта относительно самого скрипта&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;LFS_BUILDER_ROOT&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es4&quot;&gt;$(cd &amp;quot;$(dirname &amp;quot;${BASH_SOURCE[0]}&amp;quot;)&lt;/span&gt;/..&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;pwd&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;
&amp;nbsp;
# Загружаем конфигурацию из корня
if [ -f &amp;quot;&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;$LFS_BUILDER_ROOT&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;config.conf&lt;span class=&quot;st0&quot;&gt;&amp;quot; ]; then
    source &amp;quot;&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;$LFS_BUILDER_ROOT&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;config.conf&lt;span class=&quot;st0&quot;&gt;&amp;quot;
else
    echo &amp;quot;&lt;/span&gt;Ошибка: Конфигурационный файл config.conf не найден в &lt;span class=&quot;re1&quot;&gt;$LFS_BUILDER_ROOT&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;
    exit 1
fi
&amp;nbsp;
# Проверка переданных аргументов
if [ -z &amp;quot;&lt;/span&gt;&lt;span class=&quot;re4&quot;&gt;$1&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot; ] || [ -z &amp;quot;&lt;/span&gt;&lt;span class=&quot;re4&quot;&gt;$2&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot; ]; then
    echo &amp;quot;&lt;/span&gt;Использование: &lt;span class=&quot;re4&quot;&gt;$0&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;имя_архива&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;скрипт_пакета.sh&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;
    echo &amp;quot;&lt;/span&gt;Пример: &lt;span class=&quot;re4&quot;&gt;$0&lt;/span&gt; binutils-&lt;span class=&quot;nu0&quot;&gt;2.42&lt;/span&gt;.tar.xz packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;001-binutils-p1.sh&lt;span class=&quot;st0&quot;&gt;&amp;quot;
    exit 1
fi
&amp;nbsp;
ARCHIVE=&amp;quot;&lt;/span&gt;&lt;span class=&quot;re4&quot;&gt;$1&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;
PACK_SCRIPT=&amp;quot;&lt;/span&gt;&lt;span class=&quot;re4&quot;&gt;$2&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;
PKG_NAME=&lt;span class=&quot;es4&quot;&gt;$(basename &amp;quot;$PACK_SCRIPT&amp;quot; .sh)&lt;/span&gt;
LOG_FILE=&amp;quot;&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;$LOGS&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;${PKG_NAME}&lt;/span&gt;.log&lt;span class=&quot;st0&quot;&gt;&amp;quot;
&amp;nbsp;
echo &amp;quot;&lt;/span&gt;=== Запуск сборки пакета: &lt;span class=&quot;re1&quot;&gt;$PKG_NAME&lt;/span&gt; ===&lt;span class=&quot;st0&quot;&gt;&amp;quot;
echo &amp;quot;&lt;/span&gt;Лог компиляции: &lt;span class=&quot;re1&quot;&gt;$LOG_FILE&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;
&amp;nbsp;
# Переход в рабочую область исходников (из config.conf)
cd &amp;quot;&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;$SOURCES&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;
&amp;nbsp;
# Распаковка тарболла
echo &amp;quot;&lt;/span&gt;Распаковка &lt;span class=&quot;re1&quot;&gt;$ARCHIVE&lt;/span&gt;...&lt;span class=&quot;st0&quot;&gt;&amp;quot;
case &amp;quot;&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;$ARCHIVE&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot; in
    *.tar.gz|*.tgz)   tar -f &amp;quot;&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;$ARCHIVE&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot; -zxf ;;
    *.tar.xz|*.txz)   tar -f &amp;quot;&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;$ARCHIVE&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot; -Jxf ;;
    *.tar.bz2|*.tbz2) tar -f &amp;quot;&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;$ARCHIVE&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot; -jxf ;;
    *) echo &amp;quot;&lt;/span&gt;Неизвестный формат архива&lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;; exit 1 ;;
esac
&amp;nbsp;
# Определение имени созданной папки
SRC_DIR=&lt;span class=&quot;es4&quot;&gt;$(ls -td */ | head -n1)&lt;/span&gt;
cd &amp;quot;&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;$SRC_DIR&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;
echo &amp;quot;&lt;/span&gt;Переход в каталог исходников: &lt;span class=&quot;re1&quot;&gt;$SRC_DIR&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;
&amp;nbsp;
# Выполнение скрипта сборки с логированием
set +e
bash &amp;quot;&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;$LFS_BUILDER_ROOT&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;$PACK_SCRIPT&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot; 2&amp;gt;&amp;amp;1 | tee &amp;quot;&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;$LOG_FILE&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;
EXIT_CODE=&lt;span class=&quot;es3&quot;&gt;${PIPESTATUS[0]}&lt;/span&gt;
set -e
&amp;nbsp;
# Очистка рабочей папки
cd &amp;quot;&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;$SOURCES&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;
echo &amp;quot;&lt;/span&gt;Удаление временной директории исходников &lt;span class=&quot;re1&quot;&gt;$SRC_DIR&lt;/span&gt;...&lt;span class=&quot;st0&quot;&gt;&amp;quot;
rm -rf &amp;quot;&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;$SRC_DIR&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;
&amp;nbsp;
if [ &lt;span class=&quot;es2&quot;&gt;$EXIT_CODE&lt;/span&gt; -eq 0 ]; then
    echo &amp;quot;&lt;/span&gt;=== &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;УСПЕХ&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; Пакет &lt;span class=&quot;re1&quot;&gt;$PKG_NAME&lt;/span&gt; собран успешно&lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt; ===&lt;span class=&quot;st0&quot;&gt;&amp;quot;
else
    echo &amp;quot;&lt;/span&gt;=== &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;ОШИБКА&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; Сбой при сборке &lt;span class=&quot;re1&quot;&gt;$PKG_NAME&lt;/span&gt;. См. лог: &lt;span class=&quot;re1&quot;&gt;$LOG_FILE&lt;/span&gt; ===&lt;span class=&quot;st0&quot;&gt;&amp;quot;
    exit &lt;span class=&quot;es2&quot;&gt;$EXIT_CODE&lt;/span&gt;
fi
EOF
&amp;nbsp;
# Делаем скрипт исполняемым
chmod +x ~/lfs-builder/scripts/build.sh&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aiso_lfs_server%3Aiso_lfs_server&amp;amp;media=software:linux_server:iso_lfs_server:iso_lfs_server_x_2.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:iso_lfs_server:iso_lfs_server_x_2.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:iso_lfs_server:iso_lfs_server_x_2.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aiso_lfs_server%3Aiso_lfs_server&amp;amp;media=software:linux_server:iso_lfs_server:iso_lfs_server_x_4.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:iso_lfs_server:iso_lfs_server_x_4.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:iso_lfs_server:iso_lfs_server_x_4.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Для наведения идеального порядка переместим все управляющие скрипты в предназначенную для них директорию &lt;strong&gt;scripts&lt;/strong&gt;, избавимся от опасной циклической ссылки и обновим главный движок сборки с учетом новых путей.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;исправление_структуры_и_перенос_файлов&quot;&gt;Исправление структуры и перенос файлов&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Выполните эти команды последовательно, находясь в терминале под пользователем eva:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=28&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;# Удаляем ошибочную циклическую ссылку&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;rm&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-f&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Переносим скрипт загрузки в правильное место&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;mv&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;download.sh ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;scripts&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Переносим главный движок сборки в папку скриптов (если он уже был создан в корне)&lt;/span&gt;
&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-f&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;build.sh &lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;mv&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;build.sh ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;scripts&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
файл &lt;strong&gt;config.conf&lt;/strong&gt; обязательно оставляем в корне директории &lt;strong&gt;~/lfs-builder&lt;/strong&gt;. &lt;br/&gt;

Почему это правильно:
&lt;strong&gt;Глобальная точка настройки:&lt;/strong&gt; Корень проекта — лучшее место для главного конфигурационного файла.
&lt;strong&gt;Доступность:&lt;/strong&gt; Из корня его одинаково легко читать и редактировать вручную, а движок &lt;strong&gt;scripts/build.sh&lt;/strong&gt; уже обучен автоматически подниматься на уровень выше и подгружать его.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0433\u043b\u0430\u0432\u043d\u043e\u0433\u043e \u0441\u043a\u0440\u0438\u043f\u0442\u0430 build.sh.\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f \u043b\u043e\u0433\u0438\u043a\u0438 \u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0438 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438 \u043e\u0448\u0438\u0431\u043e\u043a (\u0447\u0442\u043e\u0431\u044b \u0441\u0431\u043e\u0440\u043a\u0430 \u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u043b\u0430\u0441\u044c \u043f\u0440\u0438 \u043e\u0448\u0438\u0431\u043a\u0435 make).&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435_\u0433\u043b\u0430\u0432\u043d\u043e\u0433\u043e_\u0441\u043a\u0440\u0438\u043f\u0442\u0430_buildsh\u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f_\u043b\u043e\u0433\u0438\u043a\u0438_\u043b\u043e\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f_\u0438_\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0438_\u043e\u0448\u0438\u0431\u043e\u043a_\u0447\u0442\u043e\u0431\u044b_\u0441\u0431\u043e\u0440\u043a\u0430_\u043e\u0441\u0442\u0430\u043d\u0430\u0432\u043b\u0438\u0432\u0430\u043b\u0430\u0441\u044c_\u043f\u0440\u0438_\u043e\u0448\u0438\u0431\u043a\u0435_make&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:27,&amp;quot;secid&amp;quot;:37,&amp;quot;range&amp;quot;:&amp;quot;53705-59015&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit38&quot; id=&quot;проверка_содержимого_configconf&quot;&gt;Проверка содержимого config.conf&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Чтобы на Дне 4 сборка не упала из-за неверных путей, ваш config.conf должен содержать жесткие (абсолютные) пути. Проверьте его командой &lt;strong&gt;cat ~/lfs-builder/config.conf.&lt;/strong&gt; Эталонное и безопасное содержимое для вашей структуры:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=29&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;config.conf&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
В вашем текущем файле config.conf на скриншоте есть критическая ошибка в путях, которая сломает сборку на первом же пакете.&lt;br/&gt;

⚠️ В чем заключается критическая ошибка:&lt;br/&gt;

У вас указано: export SOURCES=$LFS/sources.Это означает, что скрипт будет искать исходники в /mnt/lfs/sources.Но согласно Дню 3, все ваши 91 файл находятся в вашей домашней директории: /home/eva/lfs-builder/sources.Из-за этого расхождения движок build.sh выдаст ошибку Неизвестный формат архива! или Файл не найден.
🛠️ Как исправить (Два варианта на выбор):&lt;br/&gt;

Привести config.conf к реальной структуре вашей домашней папки (Рекомендуется)Выполните эту команду, чтобы перезаписать конфигурацию правильными путями:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=30&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;EOF&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;config.conf
&lt;span class=&quot;co0&quot;&gt;#!/bin/bash&lt;/span&gt;
&lt;span class=&quot;kw3&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;LFS&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs
&lt;span class=&quot;kw3&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;LFS_TGT&lt;/span&gt;=x86_64-lfs-linux-gnu
&lt;span class=&quot;kw3&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;MAKEFLAGS&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;-j&lt;span class=&quot;es4&quot;&gt;$(nproc)&lt;/span&gt;&amp;quot;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Исправленные пути к вашей домашней директории сборщика&lt;/span&gt;
&lt;span class=&quot;kw3&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;LFS_BUILDER&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;home&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;eva&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder
&lt;span class=&quot;kw3&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;SOURCES&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS_BUILDER&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sources
&lt;span class=&quot;kw3&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;LOGS&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS_BUILDER&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;logs
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-pv&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$LOGS&lt;/span&gt;
EOF&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
1. Применение правильной конфигурации&lt;br/&gt;

Запустите команду в терминале для перезаписи config.conf:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=31&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;EOF&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;config.conf
&lt;span class=&quot;co0&quot;&gt;#!/bin/bash&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# Путь к новой системе&lt;/span&gt;
&lt;span class=&quot;kw3&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;LFS&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mnt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Параметры кросс-компиляции&lt;/span&gt;
&lt;span class=&quot;kw3&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;LFS_TGT&lt;/span&gt;=x86_64-lfs-linux-gnu
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Ускорение сборки (используем все ядра CPU)&lt;/span&gt;
&lt;span class=&quot;kw3&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;MAKEFLAGS&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;-j&lt;span class=&quot;es4&quot;&gt;$(nproc)&lt;/span&gt;&amp;quot;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Пути к исходникам и логам в домашней папке eva&lt;/span&gt;
&lt;span class=&quot;kw3&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;LFS_BUILDER&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;home&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;eva&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder
&lt;span class=&quot;kw3&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;SOURCES&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS_BUILDER&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sources
&lt;span class=&quot;kw3&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;LOGS&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS_BUILDER&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;logs
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Создаем папку для логов, если её нет&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-pv&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$LOGS&lt;/span&gt;
EOF&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
1. Скачивание точного файла MD5-суммВыполните команду для принудительного скачивания оригинального файла сумм от LFS 12.1:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=32&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;curl &lt;span class=&quot;re5&quot;&gt;-s&lt;/span&gt; linuxfromscratch.org &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sources&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;md5sums&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
1. Создание скрипта-валидатора
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=33&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&amp;nbsp;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
2. Первая проверка структуры&lt;br/&gt;

Убедитесь, что конфигурация применилась правильно, запустив валидатор контрольных сумм:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=34&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;cd&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder
.&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;scripts&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;check_md5.sh&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Так как файлы у вас физически присутствуют на диске /mnt/lfs/sources, мы можем смело переходить к компиляции
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e config.conf&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430_\u0441\u043e\u0434\u0435\u0440\u0436\u0438\u043c\u043e\u0433\u043e_configconf&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:29,&amp;quot;secid&amp;quot;:38,&amp;quot;range&amp;quot;:&amp;quot;59016-62719&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit39&quot; id=&quot;запуск_компиляции_день_4&quot;&gt;Запуск компиляции (День 4)&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Выполните в терминале команду для старта сборки первого прохода Binutils:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=35&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;cd&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder
.&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;scripts&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;build.sh binutils-&lt;span class=&quot;nu0&quot;&gt;2.42&lt;/span&gt;.tar.xz packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;001-binutils-p1.sh&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Что произойдет после нажатия Enter:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Движок build.sh автоматически перейдет в /mnt/lfs/sources.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Распакует архив binutils-2.42.tar.xz.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Создаст изолированную директорию build.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Запустит конфигурацию и компиляцию в соответствии с флагами параллелизма -j$(nproc).&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Установит готовый кросс-компилятор в каталог /mnt/lfs/tools.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Полностью очистит за собой временные исходники и выведет статус [УСПЕХ]&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
&lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;
На скриншоте видна ошибка синтаксиса утилиты tar: tar: option requires an argument – &amp;#039;f&amp;#039;.В команде tar -f «$ARCHIVE» -Jxf флаг -f ожидает имя архива сразу после себя, а у нас аргументы перепутаны местами. Исправим эту строку в управляющем движке.1. Исправление ошибки распаковки в scripts/build.shВыполните команду для автоматической перезаписи движка со стандартным и безопасным синтаксисом tar -xf:
&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=36&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;EOF&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;scripts&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;build.sh
&lt;span class=&quot;co0&quot;&gt;#!/bin/bash&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-o&lt;/span&gt; pipefail
&amp;nbsp;
&lt;span class=&quot;re2&quot;&gt;LFS_BUILDER_ROOT&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es4&quot;&gt;$(cd &amp;quot;$(dirname &amp;quot;${BASH_SOURCE}&amp;quot;)&lt;/span&gt;/..&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;pwd&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;
&amp;nbsp;
if [ -f &amp;quot;&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;$LFS_BUILDER_ROOT&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;config.conf&lt;span class=&quot;st0&quot;&gt;&amp;quot; ]; then
    source &amp;quot;&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;$LFS_BUILDER_ROOT&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;config.conf&lt;span class=&quot;st0&quot;&gt;&amp;quot;
else
    echo &amp;quot;&lt;/span&gt;Ошибка: Конфигурационный файл config.conf не найден в &lt;span class=&quot;re1&quot;&gt;$LFS_BUILDER_ROOT&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;
    exit 1
fi
&amp;nbsp;
if [ -z &amp;quot;&lt;/span&gt;&lt;span class=&quot;re4&quot;&gt;$1&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot; ] || [ -z &amp;quot;&lt;/span&gt;&lt;span class=&quot;re4&quot;&gt;$2&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot; ]; then
    echo &amp;quot;&lt;/span&gt;Использование: &lt;span class=&quot;re4&quot;&gt;$0&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;имя_архива&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;скрипт_пакета.sh&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;
    echo &amp;quot;&lt;/span&gt;Пример: &lt;span class=&quot;re4&quot;&gt;$0&lt;/span&gt; binutils-&lt;span class=&quot;nu0&quot;&gt;2.42&lt;/span&gt;.tar.xz packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;001-binutils-p1.sh&lt;span class=&quot;st0&quot;&gt;&amp;quot;
    exit 1
fi
&amp;nbsp;
ARCHIVE=&amp;quot;&lt;/span&gt;&lt;span class=&quot;re4&quot;&gt;$1&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;
PACK_SCRIPT=&amp;quot;&lt;/span&gt;&lt;span class=&quot;re4&quot;&gt;$2&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;
PKG_NAME=&lt;span class=&quot;es4&quot;&gt;$(basename &amp;quot;$PACK_SCRIPT&amp;quot; .sh)&lt;/span&gt;
LOG_FILE=&amp;quot;&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;$LOGS&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;co1&quot;&gt;${PKG_NAME}&lt;/span&gt;.log&lt;span class=&quot;st0&quot;&gt;&amp;quot;
&amp;nbsp;
echo &amp;quot;&lt;/span&gt;=== Запуск сборки пакета: &lt;span class=&quot;re1&quot;&gt;$PKG_NAME&lt;/span&gt; ===&lt;span class=&quot;st0&quot;&gt;&amp;quot;
echo &amp;quot;&lt;/span&gt;Лог компиляции: &lt;span class=&quot;re1&quot;&gt;$LOG_FILE&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;
&amp;nbsp;
cd &amp;quot;&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;$SOURCES&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;
&amp;nbsp;
echo &amp;quot;&lt;/span&gt;Распаковка &lt;span class=&quot;re1&quot;&gt;$ARCHIVE&lt;/span&gt;...&lt;span class=&quot;st0&quot;&gt;&amp;quot;
if [ ! -f &amp;quot;&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;$ARCHIVE&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot; ]; then
    echo &amp;quot;&lt;/span&gt;Ошибка: Архив &lt;span class=&quot;re1&quot;&gt;$ARCHIVE&lt;/span&gt; не найден в &lt;span class=&quot;re1&quot;&gt;$SOURCES&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;
    exit 1
fi
&amp;nbsp;
# Универсальная и безопасная распаковка tar
tar -xf &amp;quot;&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;$ARCHIVE&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;
&amp;nbsp;
# Фиксируем точное имя созданной папки
SRC_DIR=&lt;span class=&quot;es4&quot;&gt;$(ls -td */ | grep -v &amp;quot;lost+found&amp;quot; | head -n1 | cut -d&#039;/&#039; -f1)&lt;/span&gt;
&amp;nbsp;
cd &amp;quot;&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;$SRC_DIR&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;
echo &amp;quot;&lt;/span&gt;Переход в каталог исходников: &lt;span class=&quot;re1&quot;&gt;$SRC_DIR&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;
&amp;nbsp;
set +e
bash &amp;quot;&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;$LFS_BUILDER_ROOT&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;$PACK_SCRIPT&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot; 2&amp;gt;&amp;amp;1 | tee &amp;quot;&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;$LOG_FILE&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;
EXIT_CODE=&lt;span class=&quot;es3&quot;&gt;${PIPESTATUS}&lt;/span&gt;
set -e
&amp;nbsp;
cd &amp;quot;&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;$SOURCES&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;
echo &amp;quot;&lt;/span&gt;Удаление временной директории исходников &lt;span class=&quot;re1&quot;&gt;$SRC_DIR&lt;/span&gt;...&lt;span class=&quot;st0&quot;&gt;&amp;quot;
rm -rf &amp;quot;&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;$SRC_DIR&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;
&amp;nbsp;
if [ &lt;span class=&quot;es2&quot;&gt;$EXIT_CODE&lt;/span&gt; -eq 0 ]; then
    echo &amp;quot;&lt;/span&gt;=== &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;УСПЕХ&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; Пакет &lt;span class=&quot;re1&quot;&gt;$PKG_NAME&lt;/span&gt; собран успешно&lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt; ===&lt;span class=&quot;st0&quot;&gt;&amp;quot;
else
    echo &amp;quot;&lt;/span&gt;=== &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;ОШИБКА&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; Сбой при сборке &lt;span class=&quot;re1&quot;&gt;$PKG_NAME&lt;/span&gt;. См. лог: &lt;span class=&quot;re1&quot;&gt;$LOG_FILE&lt;/span&gt; ===&lt;span class=&quot;st0&quot;&gt;&amp;quot;
    exit &lt;span class=&quot;es2&quot;&gt;$EXIT_CODE&lt;/span&gt;
fi
EOF
&amp;nbsp;
chmod +x ~/lfs-builder/scripts/build.sh&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;
2. Повторный старт Дня 4Теперь синтаксис распаковщика полностью исправлен. Запускайте компиляцию:
&amp;lt;code bash #bash&amp;gt;
cd ~/lfs-builder
./scripts/build.sh binutils-2.42.tar.xz packages/001-binutils-p1.sh
&amp;lt;/code&amp;gt;

Отлично, распаковка и переход в каталог теперь работают идеально. Последнее препятствие — ошибка No such file or directory. Она означает, что скрипт 001-binutils-p1.sh физически отсутствует внутри папки ~/lfs-builder/packages/, либо у него поврежден заголовок (shebang).Давайте запишем актуальные скрипты для Binutils (Pass 1) и GCC (Pass 1) в эту папку.1. Создание папки и запись скрипта Binutils (Pass 1)
&lt;br/&gt;
 
1. Создание папки и запись скрипта Binutils (Pass 1)Выполните команду, чтобы гарантировать наличие файла и его контента:
&lt;br/&gt;
 
&amp;lt;code bash #bash&amp;gt;
mkdir -p ~/lfs-builder/packages

cat « &amp;#039;&lt;abbr title=&quot;End of file&quot;&gt;EOF&lt;/abbr&gt;&amp;#039; &amp;gt; ~/lfs-builder/packages/001-binutils-p1.sh
#!/bin/bash
set -e

mkdir -v build
cd       build

../configure –prefix=$LFS/tools \
             –with-sysroot=$LFS \
             –target=$LFS_TGT   \
             –disable-nls       \
             –enable-gprofng=no \
             –disable-werror    \
             –enable-default-hash-style=gnu

make $MAKEFLAGS
make install
&lt;abbr title=&quot;End of file&quot;&gt;EOF&lt;/abbr&gt;

chmod +x ~/lfs-builder/packages/001-binutils-p1.sh
&amp;lt;/code&amp;gt;
2. Запись скрипта GCC (Pass 1)Сразу подготовим и второй файл, чтобы он гарантированно был на месте:
&amp;lt;code bash #bash&amp;gt;
cat « &amp;#039;&lt;abbr title=&quot;End of file&quot;&gt;EOF&lt;/abbr&gt;&amp;#039; &amp;gt; ~/lfs-builder/packages/002-gcc-p1.sh
#!/bin/bash
set -e

tar -xf ../mpfr-4.2.1.tar.xz &amp;amp;&amp;amp; mv -v mpfr-4.2.1 mpfr
tar -xf ../gmp-6.3.0.tar.xz  &amp;amp;&amp;amp; mv -v gmp-6.3.0 gmp
tar -xf ../mpc-1.3.1.tar.gz  &amp;amp;&amp;amp; mv -v mpc-1.3.1 mpc

case $(uname -m) in
  x86_64)
    sed -e &amp;#039;/m64=/s/lib64/lib/&amp;#039; \
        -i.bak gcc/config/i386/t-linux64
 ;;
esac

mkdir -v build
cd       build

../configure –target=$LFS_TGT         \
             –prefix=$LFS/tools       \
             –with-glibc-version=2.39 \
             –with-sysroot=$LFS       \
             –with-newlib             \
             –without-headers         \
             –enable-default-pie      \
             –enable-default-ssp      \
             –disable-nls             \
             –disable-shared          \
             –disable-multilib        \
             –disable-threads         \
             –disable-libatomic       \
             –disable-libgomp         \
             –disable-libquadmath     \
             –disable-libssp          \
             –disable-libvtv          \
             –disable-libstdcxx       \
             –enable-languages=c,c++

make $MAKEFLAGS
make install

cd ..
cat gcc/limitx.h gcc/glimits.h gcc/limity.h &amp;gt; \
  $(dirname $($LFS/tools/bin/$LFS_TGT-gcc -print-libgcc-file-name))/install-tools/include/limits.h
&lt;abbr title=&quot;End of file&quot;&gt;EOF&lt;/abbr&gt;

chmod +x ~/lfs-builder/packages/002-gcc-p1.sh
&amp;lt;/code&amp;gt;
3. Повторный запуск первой компиляцииТеперь, когда скрипт лежит на своем месте, запускайте конвейер:
&amp;lt;code bash #bash&amp;gt;
cd ~/lfs-builder
./scripts/build.sh binutils-2.42.tar.xz packages/001-binutils-p1.sh
&amp;lt;/code&amp;gt;
Сработало!!! все ввыше исправить!
&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;*
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0417\u0430\u043f\u0443\u0441\u043a \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438 (\u0414\u0435\u043d\u044c 4)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0437\u0430\u043f\u0443\u0441\u043a_\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438_\u0434\u0435\u043d\u044c_4&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:35,&amp;quot;secid&amp;quot;:39,&amp;quot;range&amp;quot;:&amp;quot;62720-70015&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit40&quot; id=&quot;🚀_шаг_2сборка_gcc_pass_1&quot;&gt;🚀 Шаг 2: Сборка GCC (Pass 1)&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Скрипт сборки 002-gcc-p1.sh мы уже создали и сделали исполняемым на предыдущем этапе. Теперь запускаем компиляцию аналогичным образом через наш движок.
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=37&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;cd&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder
.&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;scripts&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;build.sh gcc-13.2.0.tar.xz packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;002-gcc-p1.sh&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Важно: Сборка GCC — это самый длительный процесс первого этапа кросс-компиляции. Она займет значительно больше времени, чем Binutils.&lt;br/&gt;

Вы можете открыть второе окно терминала и следить за ходом компиляции в реальном времени с помощью команды:
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\ud83d\ude80 \u0428\u0430\u0433 2: \u0421\u0431\u043e\u0440\u043a\u0430 GCC (Pass 1)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\ud83d\ude80_\u0448\u0430\u0433_2\u0441\u0431\u043e\u0440\u043a\u0430_gcc_pass_1&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:37,&amp;quot;secid&amp;quot;:40,&amp;quot;range&amp;quot;:&amp;quot;70016-70877&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit41&quot; id=&quot;🚀_шаг_3установка_linux_api_headers&quot;&gt;🚀 Шаг 3: Установка Linux API Headers&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
1. Физическое создание скрипта Linux &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; Headers (Пакет 003)&lt;br/&gt;

Выполните команду в терминале, чтобы создать файл пакета заголовков:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=38&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;EOF&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;003-linux-headers.sh
&lt;span class=&quot;co0&quot;&gt;#!/bin/bash&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Гарантируем, что целевой каталог в LFS существует&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-pv&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;include
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Очищаем дерево исходников ядра&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; mrproper
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Генерируем и переносим заголовочные файлы&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; headers
&lt;span class=&quot;kw2&quot;&gt;find&lt;/span&gt; usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;include &lt;span class=&quot;re5&quot;&gt;-type&lt;/span&gt; f &lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-name&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;*.h&#039;&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-delete&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;cp&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-rv&lt;/span&gt; usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;include&lt;span class=&quot;sy0&quot;&gt;/*&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;include
EOF
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;chmod&lt;/span&gt; +x ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;003-linux-headers.sh&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Этот этап выполняется очень быстро, так как компиляция кода не происходит — скрипт просто подготавливает и копирует заголовочные файлы ядра Linux в целевой каталог $LFS/usr/include [12.1].Запустите команду в терминале:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=39&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;cd&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder
.&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;scripts&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;build.sh linux-6.7.4.tar.xz packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;003-linux-headers.sh&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\ud83d\ude80 \u0428\u0430\u0433 3: \u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 Linux API Headers&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\ud83d\ude80_\u0448\u0430\u0433_3\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430_linux_api_headers&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:38,&amp;quot;secid&amp;quot;:41,&amp;quot;range&amp;quot;:&amp;quot;70878-72192&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit42&quot; id=&quot;физическое_создание_скрипта_glibc_пакет_004&quot;&gt;2. Физическое создание скрипта Glibc (Пакет 004)&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Запишем сценарий для сборки системной библиотеки C:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=40&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;EOF&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;004-glibc.sh
&lt;span class=&quot;co0&quot;&gt;#!/bin/bash&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Создаем необходимые ссылки для динамического линкера&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-pv&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lib &lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lib64
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;case&lt;/span&gt; $&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;uname&lt;/span&gt; -m&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt;
    i?&lt;span class=&quot;nu0&quot;&gt;86&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;   &lt;span class=&quot;kw2&quot;&gt;ln&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-sfv&lt;/span&gt; ld-linux.so.2 &lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lib&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;ld-lsb.so.3
            &lt;span class=&quot;sy0&quot;&gt;;;&lt;/span&gt;
    x86_64&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;ln&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-sfv&lt;/span&gt; ..&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lib&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;ld-linux-x86-&lt;span class=&quot;nu0&quot;&gt;64&lt;/span&gt;.so.2 &lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lib64
            &lt;span class=&quot;kw2&quot;&gt;ln&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-sfv&lt;/span&gt; ..&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lib&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;ld-linux-x86-&lt;span class=&quot;nu0&quot;&gt;64&lt;/span&gt;.so.2 &lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lib64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;ld-lsb-x86-&lt;span class=&quot;nu0&quot;&gt;64&lt;/span&gt;.so.3
            &lt;span class=&quot;sy0&quot;&gt;;;&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;esac&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Применяем обязательный патч LHS/FHS&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;patch&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-Np1&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-i&lt;/span&gt; ..&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;glibc-&lt;span class=&quot;nu0&quot;&gt;2.39&lt;/span&gt;-fhs-&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;.patch
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-v&lt;/span&gt; build
&lt;span class=&quot;kw3&quot;&gt;cd&lt;/span&gt;       build
&amp;nbsp;
..&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;configure \
      &lt;span class=&quot;re5&quot;&gt;--prefix&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr \
      &lt;span class=&quot;re5&quot;&gt;--host&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS_TGT&lt;/span&gt; \
      &lt;span class=&quot;re5&quot;&gt;--build&lt;/span&gt;=$&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;..&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;scripts&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;config.guess&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; \
      &lt;span class=&quot;re5&quot;&gt;--enable-kernel&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;4.19&lt;/span&gt; \
      &lt;span class=&quot;re5&quot;&gt;--with-headers&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;include \
      &lt;span class=&quot;re2&quot;&gt;libc_cv_slibdir&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lib
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$MAKEFLAGS&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;DESTDIR&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;install&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Корректируем пути утилиты ldd&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;sed&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;/RTLDLIST/s@/usr@@g&#039;&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-i&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;bin&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;ldd&lt;/span&gt;
EOF
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;chmod&lt;/span&gt; +x ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;004-glibc.sh&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;2. \u0424\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u043a\u0440\u0438\u043f\u0442\u0430 Glibc (\u041f\u0430\u043a\u0435\u0442 004)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043a\u043e\u0435_\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435_\u0441\u043a\u0440\u0438\u043f\u0442\u0430_glibc_\u043f\u0430\u043a\u0435\u0442_004&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:40,&amp;quot;secid&amp;quot;:42,&amp;quot;range&amp;quot;:&amp;quot;72193-73386&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit43&quot; id=&quot;повторный_запуск_шагов&quot;&gt;3. Повторный запуск шагов&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Теперь файлы гарантированно находятся в папке packages/ [12.1]. 
&lt;br/&gt;
 Перезапустите конвейер:Запуск Linux &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; Headers:bash
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=41&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;cd&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder
.&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;scripts&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;build.sh linux-6.7.4.tar.xz packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;003-linux-headers.sh&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;3. \u041f\u043e\u0432\u0442\u043e\u0440\u043d\u044b\u0439 \u0437\u0430\u043f\u0443\u0441\u043a \u0448\u0430\u0433\u043e\u0432&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u043e\u0432\u0442\u043e\u0440\u043d\u044b\u0439_\u0437\u0430\u043f\u0443\u0441\u043a_\u0448\u0430\u0433\u043e\u0432&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:41,&amp;quot;secid&amp;quot;:43,&amp;quot;range&amp;quot;:&amp;quot;73387-73740&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit44&quot; id=&quot;запуск_glibc&quot;&gt;Запуск Glibc:&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
(Запускайте строго после успешного завершения предыдущего шага)
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=42&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;.&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;scripts&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;build.sh glibc-&lt;span class=&quot;nu0&quot;&gt;2.39&lt;/span&gt;.tar.xz packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;004-glibc.sh&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0417\u0430\u043f\u0443\u0441\u043a Glibc:&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0437\u0430\u043f\u0443\u0441\u043a_glibc&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:42,&amp;quot;secid&amp;quot;:44,&amp;quot;range&amp;quot;:&amp;quot;73741-73972&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit45&quot; id=&quot;🔍_чтение_лога_ошибок&quot;&gt;🔍 Чтение лога ошибок&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Выполните команду поиска строки error: в лог-файле сборки Glibc, чтобы вывести контекст сбоя (5 строк до и после ошибки):
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=43&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;grep&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-n&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-C&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;error:&amp;quot;&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;logs&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;004-glibc.log&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h4 id=&quot;🛠️_как_это_обычно_лечится_в_glibc_239&quot;&gt;🛠️ Как это обычно лечится в Glibc 2.39&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Чаще всего в этой точке компилятор спотыкается на оптимизациях или проверках строк (-Werror=stringop-overflow).Пока вы проверяете лог, мы можем превентивно обновить скрипт packages/004-glibc.sh, добавив флаг отключения жестких предупреждений в configure (libc_cv_include_x86_isa_level=no или явное отключение -Wno-error), чтобы сборка прошла стабильно:&lt;br/&gt;

Диагноз подтвердился на 100%. Ошибка error: &amp;#039;artificial&amp;#039; attribute ignored [-Werror=attributes] — это классическое поведение нового компилятора GCC из состава Ubuntu 24.04 при сборке более старой версии Glibc 2.39.Компилятор видит встроенный атрибут оптимизации в коде wctomb.c, считает его избыточным, выдает предупреждение, а из-за включенного флага -Werror (все предупреждения как ошибки) аварийно останавливает сборку.Мы обойдем это ограничение, принудительно отключив строгие проверки через переменную CFLAGS.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;🛠️_перезапись_исправленного_скрипта_packages_004-glibcsh&quot;&gt;🛠️ Перезапись исправленного скрипта packages/004-glibc.sh&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Выполните эту команду, чтобы внедрить в скрипт флаги -Wno-error=attributes и -Wno-error, которые заставят компилятор проигнорировать это предупреждение и успешно завершить сборку:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=44&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;EOF&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;004-glibc.sh
&lt;span class=&quot;co0&quot;&gt;#!/bin/bash&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-pv&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lib &lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lib64
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;case&lt;/span&gt; $&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;uname&lt;/span&gt; -m&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt;
    i?&lt;span class=&quot;nu0&quot;&gt;86&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;   &lt;span class=&quot;kw2&quot;&gt;ln&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-sfv&lt;/span&gt; ld-linux.so.2 &lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lib&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;ld-lsb.so.3
            &lt;span class=&quot;sy0&quot;&gt;;;&lt;/span&gt;
    x86_64&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;ln&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-sfv&lt;/span&gt; ..&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lib&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;ld-linux-x86-&lt;span class=&quot;nu0&quot;&gt;64&lt;/span&gt;.so.2 &lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lib64
            &lt;span class=&quot;kw2&quot;&gt;ln&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-sfv&lt;/span&gt; ..&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lib&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;ld-linux-x86-&lt;span class=&quot;nu0&quot;&gt;64&lt;/span&gt;.so.2 &lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lib64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;ld-lsb-x86-&lt;span class=&quot;nu0&quot;&gt;64&lt;/span&gt;.so.3
            &lt;span class=&quot;sy0&quot;&gt;;;&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;esac&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;patch&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-Np1&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-i&lt;/span&gt; ..&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;glibc-&lt;span class=&quot;nu0&quot;&gt;2.39&lt;/span&gt;-fhs-&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;.patch
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-v&lt;/span&gt; build
&lt;span class=&quot;kw3&quot;&gt;cd&lt;/span&gt;       build
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Добавляем принудительное отключение ошибок атрибутов через CFLAGS и конфигуратор&lt;/span&gt;
..&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;configure \
      &lt;span class=&quot;re5&quot;&gt;--prefix&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr \
      &lt;span class=&quot;re5&quot;&gt;--host&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS_TGT&lt;/span&gt; \
      &lt;span class=&quot;re5&quot;&gt;--build&lt;/span&gt;=$&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;..&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;scripts&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;config.guess&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; \
      &lt;span class=&quot;re5&quot;&gt;--enable-kernel&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;4.19&lt;/span&gt; \
      &lt;span class=&quot;re5&quot;&gt;--with-headers&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;include \
      &lt;span class=&quot;re2&quot;&gt;libc_cv_slibdir&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lib \
      &lt;span class=&quot;re2&quot;&gt;libc_cv_include_x86_isa_level&lt;/span&gt;=no
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Компилируем, явно запрещая падать на предупреждениях компилятора хоста&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$MAKEFLAGS&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;CFLAGS&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;-O2 -Wno-error -Wno-error=attributes&amp;quot;&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;DESTDIR&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;install&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;sed&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;/RTLDLIST/s@/usr@@g&#039;&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-i&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;bin&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;ldd&lt;/span&gt;
EOF
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;chmod&lt;/span&gt; +x ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;004-glibc.sh&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h4 id=&quot;🚀_повторный_запуск_сборки_glibc&quot;&gt;🚀 Повторный запуск сборки Glibc&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Запустите сборку заново. Движок сам очистит старые неудачные исходники, распакует их заново и применит наши новые флаги:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=45&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;cd&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder
.&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;scripts&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;build.sh glibc-&lt;span class=&quot;nu0&quot;&gt;2.39&lt;/span&gt;.tar.xz packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;004-glibc.sh&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Вторая ошибка еще более специфическая: error: #warning _FORTIFY_SOURCE requires compiling with optimization (-O).&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;почему_это_произошло&quot;&gt;Почему это произошло&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Система сборки Glibc принудительно сбрасывает или переопределяет переменную CFLAGS, которую мы передали через make CFLAGS=«…». В итоге компилятор хоста Ubuntu начал собирать файлы вообще без оптимизации (-O0). Защитный механизм макросов _FORTIFY_SOURCE внутри заголовочных файлов Glibc обнаружил отсутствие оптимизации, выбросил предупреждение, а из-за -Werror сборка снова упала.Флаги компиляции для Glibc нужно передавать строго на этапе конфигурации через переменные окружения, а не в команду make.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;🛠️_окончательное_исправление_скрипта_packages_004-glibcsh&quot;&gt;🛠️ Окончательное исправление скрипта packages/004-glibc.sh&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Мы внесем флаги оптимизации -O2 и отключение жестких предупреждений прямо в тело вызова ../configure. Это заставит систему сборки Glibc правильно зафиксировать параметры.Выполните команду для полной перезаписи сценария:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=46&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;EOF&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;004-glibc.sh
&lt;span class=&quot;co0&quot;&gt;#!/bin/bash&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-pv&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lib &lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lib64
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;case&lt;/span&gt; $&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;uname&lt;/span&gt; -m&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt;
    i?&lt;span class=&quot;nu0&quot;&gt;86&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;   &lt;span class=&quot;kw2&quot;&gt;ln&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-sfv&lt;/span&gt; ld-linux.so.2 &lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lib&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;ld-lsb.so.3
            &lt;span class=&quot;sy0&quot;&gt;;;&lt;/span&gt;
    x86_64&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;ln&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-sfv&lt;/span&gt; ..&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lib&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;ld-linux-x86-&lt;span class=&quot;nu0&quot;&gt;64&lt;/span&gt;.so.2 &lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lib64
            &lt;span class=&quot;kw2&quot;&gt;ln&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-sfv&lt;/span&gt; ..&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lib&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;ld-linux-x86-&lt;span class=&quot;nu0&quot;&gt;64&lt;/span&gt;.so.2 &lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lib64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;ld-lsb-x86-&lt;span class=&quot;nu0&quot;&gt;64&lt;/span&gt;.so.3
            &lt;span class=&quot;sy0&quot;&gt;;;&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;esac&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;patch&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-Np1&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-i&lt;/span&gt; ..&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;glibc-&lt;span class=&quot;nu0&quot;&gt;2.39&lt;/span&gt;-fhs-&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;.patch
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-v&lt;/span&gt; build
&lt;span class=&quot;kw3&quot;&gt;cd&lt;/span&gt;       build
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Передаем правильные флаги компиляции как переменные для configure&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;CFLAGS&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;-O2 -Wno-error&amp;quot;&lt;/span&gt; \
..&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;configure \
      &lt;span class=&quot;re5&quot;&gt;--prefix&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr \
      &lt;span class=&quot;re5&quot;&gt;--host&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS_TGT&lt;/span&gt; \
      &lt;span class=&quot;re5&quot;&gt;--build&lt;/span&gt;=$&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;..&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;scripts&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;config.guess&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; \
      &lt;span class=&quot;re5&quot;&gt;--enable-kernel&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;4.19&lt;/span&gt; \
      &lt;span class=&quot;re5&quot;&gt;--with-headers&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;include \
      &lt;span class=&quot;re2&quot;&gt;libc_cv_slibdir&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lib \
      &lt;span class=&quot;re2&quot;&gt;libc_cv_include_x86_isa_level&lt;/span&gt;=no
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Запускаем чистый make без переопределения CFLAGS вручную&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$MAKEFLAGS&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;DESTDIR&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;install&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;sed&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;/RTLDLIST/s@/usr@@g&#039;&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-i&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;bin&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;ldd&lt;/span&gt;
EOF
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;chmod&lt;/span&gt; +x ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;004-glibc.sh&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h4 id=&quot;🚀_повторный_запуск_сборки_glibc1&quot;&gt;🚀 Повторный запуск сборки Glibc&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Запустите процесс компиляции заново:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=47&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;cd&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder
.&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;scripts&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;build.sh glibc-&lt;span class=&quot;nu0&quot;&gt;2.39&lt;/span&gt;.tar.xz packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;004-glibc.sh&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Мы действительно на самом пороге победы над базовым кросс-компилятором! Скрипт вернулся к первой ошибке в wctomb.c, потому что система конфигурации Glibc отбрасывает кастомные переменные CFLAGS, если они переданы перед вызовом ./configure, и заменяет их своими внутренними флагами со встроенным -Werror.Чтобы гарантированно заставить Glibc проигнорировать предупреждения хост-компилятора Ubuntu &lt;strong&gt;24.04&lt;/strong&gt;, флаги нужно внедрить через специальный конфигурационный параметр –disable-werror.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\ud83d\udd0d \u0427\u0442\u0435\u043d\u0438\u0435 \u043b\u043e\u0433\u0430 \u043e\u0448\u0438\u0431\u043e\u043a&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\ud83d\udd0d_\u0447\u0442\u0435\u043d\u0438\u0435_\u043b\u043e\u0433\u0430_\u043e\u0448\u0438\u0431\u043e\u043a&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:43,&amp;quot;secid&amp;quot;:45,&amp;quot;range&amp;quot;:&amp;quot;73973-81450&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit46&quot; id=&quot;🛠️_финальное_исправление_скрипта_packages_004-glibcsh&quot;&gt;🛠️ Финальное исправление скрипта packages/004-glibc.sh&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Выполните команду для перезаписи скрипта. Этот вариант использует официальный флаг конфигуратора LFS для отключения режима прерывания сборки из-за предупреждений:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=48&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;EOF&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;004-glibc.sh
&lt;span class=&quot;co0&quot;&gt;#!/bin/bash&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-pv&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lib &lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lib64
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;case&lt;/span&gt; $&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;uname&lt;/span&gt; -m&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt;
    i?&lt;span class=&quot;nu0&quot;&gt;86&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;   &lt;span class=&quot;kw2&quot;&gt;ln&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-sfv&lt;/span&gt; ld-linux.so.2 &lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lib&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;ld-lsb.so.3
            &lt;span class=&quot;sy0&quot;&gt;;;&lt;/span&gt;
    x86_64&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;ln&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-sfv&lt;/span&gt; ..&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lib&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;ld-linux-x86-&lt;span class=&quot;nu0&quot;&gt;64&lt;/span&gt;.so.2 &lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lib64
            &lt;span class=&quot;kw2&quot;&gt;ln&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-sfv&lt;/span&gt; ..&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lib&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;ld-linux-x86-&lt;span class=&quot;nu0&quot;&gt;64&lt;/span&gt;.so.2 &lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lib64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;ld-lsb-x86-&lt;span class=&quot;nu0&quot;&gt;64&lt;/span&gt;.so.3
            &lt;span class=&quot;sy0&quot;&gt;;;&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;esac&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;patch&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-Np1&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-i&lt;/span&gt; ..&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;glibc-&lt;span class=&quot;nu0&quot;&gt;2.39&lt;/span&gt;-fhs-&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;.patch
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-v&lt;/span&gt; build
&lt;span class=&quot;kw3&quot;&gt;cd&lt;/span&gt;       build
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# --disable-werror отключает режим &amp;quot;все предупреждения как ошибки&amp;quot; на уровне всей системы сборки Glibc&lt;/span&gt;
..&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;configure \
      &lt;span class=&quot;re5&quot;&gt;--prefix&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr \
      &lt;span class=&quot;re5&quot;&gt;--host&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS_TGT&lt;/span&gt; \
      &lt;span class=&quot;re5&quot;&gt;--build&lt;/span&gt;=$&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;..&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;scripts&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;config.guess&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; \
      &lt;span class=&quot;re5&quot;&gt;--enable-kernel&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;4.19&lt;/span&gt; \
      &lt;span class=&quot;re5&quot;&gt;--with-headers&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;include \
      &lt;span class=&quot;re5&quot;&gt;--disable-werror&lt;/span&gt; \
      &lt;span class=&quot;re2&quot;&gt;libc_cv_slibdir&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lib
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$MAKEFLAGS&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;DESTDIR&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;install&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;sed&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;/RTLDLIST/s@/usr@@g&#039;&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-i&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;bin&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;ldd&lt;/span&gt;
EOF
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;chmod&lt;/span&gt; +x ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;004-glibc.sh&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h4 id=&quot;🚀_запуск_решающей_компиляции&quot;&gt;🚀 Запуск решающей компиляции&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Запускаем сборку Glibc заново:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=49&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&amp;nbsp;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h5 id=&quot;в_чём_точная_причина_сбоя&quot;&gt;В чём точная причина сбоя&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Это известная ошибка сборки Glibc 2.39, специфичная для хост-систем на базе современных версий Ubuntu (включая 24.04). Модифицированный компилятор GCC в Ubuntu по умолчанию жестко внедряет макрос _FORTIFY_SOURCE прямо в препроцессор.Из-за этого в коде syslog.c возникает конфликт встраивания функций: syslog.c:95: error: inlining failed in call to &amp;#039;always_inline&amp;#039; &amp;#039;syslog&amp;#039;: function not inlinable. Заданный нами ранее параметр –disable-werror здесь бессилен, так как это не просто предупреждение, а полноценная синтаксическая ошибка компиляции на уровне макросов.Чтобы победить этот конфликт, мы должны принудительно отключить (undefine) фортификацию исходного кода через скрытые флаги препроцессора (-U_FORTIFY_SOURCE)&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\ud83d\udee0\ufe0f \u0424\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0435 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u043a\u0440\u0438\u043f\u0442\u0430 packages\/004-glibc.sh&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\ud83d\udee0\ufe0f_\u0444\u0438\u043d\u0430\u043b\u044c\u043d\u043e\u0435_\u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435_\u0441\u043a\u0440\u0438\u043f\u0442\u0430_packages_004-glibcsh&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:48,&amp;quot;secid&amp;quot;:46,&amp;quot;range&amp;quot;:&amp;quot;81451-84189&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit47&quot; id=&quot;🛠️_модификация_скрипта_packages_004-glibcsh_под_ubuntu_2404&quot;&gt;🛠️ Модификация скрипта packages/004-glibc.sh под Ubuntu 24.04&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Мы внесем явное подавление макросов _FORTIFY_SOURCE в переменные CFLAGS, что заставит препроцессор хоста пропустить встраивание встроенных механизмов логирования и успешно скомпилировать syslog.o.Выполните команду в терминале, чтобы полностью обновить сценарий Glibc:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=50&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;EOF&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;004-glibc.sh
&lt;span class=&quot;co0&quot;&gt;#!/bin/bash&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-pv&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lib &lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lib64
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;case&lt;/span&gt; $&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;uname&lt;/span&gt; -m&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt;
    i?&lt;span class=&quot;nu0&quot;&gt;86&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;   &lt;span class=&quot;kw2&quot;&gt;ln&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-sfv&lt;/span&gt; ld-linux.so.2 &lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lib&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;ld-lsb.so.3
            &lt;span class=&quot;sy0&quot;&gt;;;&lt;/span&gt;
    x86_64&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;ln&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-sfv&lt;/span&gt; ..&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lib&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;ld-linux-x86-&lt;span class=&quot;nu0&quot;&gt;64&lt;/span&gt;.so.2 &lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lib64
            &lt;span class=&quot;kw2&quot;&gt;ln&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-sfv&lt;/span&gt; ..&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lib&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;ld-linux-x86-&lt;span class=&quot;nu0&quot;&gt;64&lt;/span&gt;.so.2 &lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lib64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;ld-lsb-x86-&lt;span class=&quot;nu0&quot;&gt;64&lt;/span&gt;.so.3
            &lt;span class=&quot;sy0&quot;&gt;;;&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;esac&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;patch&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-Np1&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-i&lt;/span&gt; ..&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;glibc-&lt;span class=&quot;nu0&quot;&gt;2.39&lt;/span&gt;-fhs-&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;.patch
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-v&lt;/span&gt; build
&lt;span class=&quot;kw3&quot;&gt;cd&lt;/span&gt;       build
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# -U_FORTIFY_SOURCE нейтрализует жесткую встроенную фортификацию Ubuntu 24.04&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# -Wno-error=attributes и -O2 гарантируют совместимость со stdlib&lt;/span&gt;
&lt;span class=&quot;kw3&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;CFLAGS&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;-O2 -U_FORTIFY_SOURCE -Wno-error=attributes&amp;quot;&lt;/span&gt;
&lt;span class=&quot;kw3&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;CXXFLAGS&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;-O2 -U_FORTIFY_SOURCE -Wno-error=attributes&amp;quot;&lt;/span&gt;
&amp;nbsp;
..&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;configure \
      &lt;span class=&quot;re5&quot;&gt;--prefix&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr \
      &lt;span class=&quot;re5&quot;&gt;--host&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS_TGT&lt;/span&gt; \
      &lt;span class=&quot;re5&quot;&gt;--build&lt;/span&gt;=$&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;..&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;scripts&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;config.guess&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; \
      &lt;span class=&quot;re5&quot;&gt;--enable-kernel&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;4.19&lt;/span&gt; \
      &lt;span class=&quot;re5&quot;&gt;--with-headers&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;include \
      &lt;span class=&quot;re5&quot;&gt;--disable-werror&lt;/span&gt; \
      &lt;span class=&quot;re2&quot;&gt;libc_cv_slibdir&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lib \
      &lt;span class=&quot;re2&quot;&gt;libc_cv_include_x86_isa_level&lt;/span&gt;=no
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$MAKEFLAGS&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;DESTDIR&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;install&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;sed&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;/RTLDLIST/s@/usr@@g&#039;&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-i&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;bin&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;ldd&lt;/span&gt;
EOF
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;chmod&lt;/span&gt; +x ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;004-glibc.sh&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h4 id=&quot;🚀_запуск_финальной_итерации_сборки_glibc&quot;&gt;🚀 Запуск финальной итерации сборки Glibc&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Запустите конвейер сборки заново. Механизм движка build.sh очистит директорию от прошлых неудачных бинарников, развернет чистые исходники и применит исправленные флаги препроцессора [12.1]:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=51&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;cd&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder
.&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;scripts&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;build.sh glibc-&lt;span class=&quot;nu0&quot;&gt;2.39&lt;/span&gt;.tar.xz packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;004-glibc.sh&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;strong&gt;Успех!&lt;/strong&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\ud83d\udee0\ufe0f \u041c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u0441\u043a\u0440\u0438\u043f\u0442\u0430 packages\/004-glibc.sh \u043f\u043e\u0434 Ubuntu 24.04&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\ud83d\udee0\ufe0f_\u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f_\u0441\u043a\u0440\u0438\u043f\u0442\u0430_packages_004-glibcsh_\u043f\u043e\u0434_ubuntu_2404&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:50,&amp;quot;secid&amp;quot;:47,&amp;quot;range&amp;quot;:&amp;quot;84190-86486&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit48&quot; id=&quot;🖥️_модификация_скрипта_под_ubuntu_2610&quot;&gt;🖥️ Модификация скрипта под Ubuntu 26.10&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
В дистрибутивах хост-систем уровня Ubuntu 26.10 компилятор GCC делает еще один серьезный шаг вперед в плане безопасности:Флаг -Werror=implicit-function-declaration (запрет неявных объявлений) активирован намертво.Внедрен еще более жесткий контроль над переполнениями строк (-Werror=stringop-overflow).Фортификация _FORTIFY_SOURCE=3 применяется по умолчанию ко всем фазам сборки препроцессора.Чтобы этот же скрипт гарантированно и без правок исходного кода Glibc скомпилировался на Ubuntu 26.10, нам нужно расширить подавление новых защитных механизмов компилятора через CFLAGS и CXXFLAGS.Выполните на второй машине (с Ubuntu 26.10) следующую команду для создания адаптированного сценария:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=52&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;EOF&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;004-glibc.sh
&lt;span class=&quot;co0&quot;&gt;#!/bin/bash&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-pv&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lib &lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lib64
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;case&lt;/span&gt; $&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;uname&lt;/span&gt; -m&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt;
    i?&lt;span class=&quot;nu0&quot;&gt;86&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;   &lt;span class=&quot;kw2&quot;&gt;ln&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-sfv&lt;/span&gt; ld-linux.so.2 &lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lib&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;ld-lsb.so.3
            &lt;span class=&quot;sy0&quot;&gt;;;&lt;/span&gt;
    x86_64&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;ln&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-sfv&lt;/span&gt; ..&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lib&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;ld-linux-x86-&lt;span class=&quot;nu0&quot;&gt;64&lt;/span&gt;.so.2 &lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lib64
            &lt;span class=&quot;kw2&quot;&gt;ln&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-sfv&lt;/span&gt; ..&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lib&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;ld-linux-x86-&lt;span class=&quot;nu0&quot;&gt;64&lt;/span&gt;.so.2 &lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lib64&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;ld-lsb-x86-&lt;span class=&quot;nu0&quot;&gt;64&lt;/span&gt;.so.3
            &lt;span class=&quot;sy0&quot;&gt;;;&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;esac&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;patch&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-Np1&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-i&lt;/span&gt; ..&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;glibc-&lt;span class=&quot;nu0&quot;&gt;2.39&lt;/span&gt;-fhs-&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;.patch
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-v&lt;/span&gt; build
&lt;span class=&quot;kw3&quot;&gt;cd&lt;/span&gt;       build
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Специфические флаги для ультра-нового GCC в Ubuntu 26.10:&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# -O2: Обязательная базовая оптимизация для макросов Glibc&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# -U_FORTIFY_SOURCE: Полное отключение фортификации Ubuntu, ломающей syslog.o&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# -Wno-error: Глобальный запрет падать на предупреждениях (включая stringop-overflow)&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# -fno-strict-aliasing: Защита от агрессивных оптимизаций указателей нового GCC&lt;/span&gt;
&lt;span class=&quot;kw3&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;CFLAGS&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;-O2 -U_FORTIFY_SOURCE -Wno-error -fno-strict-aliasing&amp;quot;&lt;/span&gt;
&lt;span class=&quot;kw3&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;CXXFLAGS&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;-O2 -U_FORTIFY_SOURCE -Wno-error -fno-strict-aliasing&amp;quot;&lt;/span&gt;
&amp;nbsp;
..&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;configure \
      &lt;span class=&quot;re5&quot;&gt;--prefix&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr \
      &lt;span class=&quot;re5&quot;&gt;--host&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS_TGT&lt;/span&gt; \
      &lt;span class=&quot;re5&quot;&gt;--build&lt;/span&gt;=$&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;..&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;scripts&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;config.guess&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; \
      &lt;span class=&quot;re5&quot;&gt;--enable-kernel&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;4.19&lt;/span&gt; \
      &lt;span class=&quot;re5&quot;&gt;--with-headers&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;include \
      &lt;span class=&quot;re5&quot;&gt;--disable-werror&lt;/span&gt; \
      &lt;span class=&quot;re2&quot;&gt;libc_cv_slibdir&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lib \
      &lt;span class=&quot;re2&quot;&gt;libc_cv_include_x86_isa_level&lt;/span&gt;=no
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$MAKEFLAGS&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;DESTDIR&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;install&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;sed&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;/RTLDLIST/s@/usr@@g&#039;&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-i&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;bin&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;ldd&lt;/span&gt;
EOF
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;chmod&lt;/span&gt; +x ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;004-glibc.sh&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Этот вариант полностью нейтрализует все новые «строгие» проверки Ubuntu 26.10, сохранив при этом целостность собираемой Glibc 2.39 [12.1].
&lt;/p&gt;
&lt;hr /&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\ud83d\udda5\ufe0f \u041c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u0441\u043a\u0440\u0438\u043f\u0442\u0430 \u043f\u043e\u0434 Ubuntu 26.10&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\ud83d\udda5\ufe0f_\u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f_\u0441\u043a\u0440\u0438\u043f\u0442\u0430_\u043f\u043e\u0434_ubuntu_2610&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:52,&amp;quot;secid&amp;quot;:48,&amp;quot;range&amp;quot;:&amp;quot;86487-89597&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit49&quot; id=&quot;🏁_что_делать_дальше_на_первой_машине_ubuntu_2404&quot;&gt;🏁 Что делать дальше на первой машине (Ubuntu 24.04)&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Пока вторая машина готовится, на первой системе вам осталось сделать один финальный рывок, чтобы полностью триумфально закрыть Главе 5 книги LFS за сегодня [12.1].Запустите сборку стандартной библиотеки C++, сценарий которой мы подготовили ранее:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=53&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;cd&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder
.&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;scripts&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;build.sh gcc-13.2.0.tar.xz packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;005-libstdcxx.sh&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h4 id=&quot;на_скриншоте_виден_финальный_штрих&quot;&gt;На скриншоте виден финальный штрих:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
движок сборки выдал ошибку No such file or directory, потому что в имени созданного скрипта пакета допущена опечатка. Файл в вашей папке packages/ называется 005-libstdcxx.sh (через две x), а движок ищет 005-libstdcxx.sh (на скриншоте видно имя 005-libstdcxx.sh, которое вы передали в команду).Давайте исправим имя скрипта прямо на диске, чтобы они идеально совпали, и завершим главу.
&lt;br/&gt;
 перезапишем
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=54&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;EOF&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;005-libstdcxx.sh
&lt;span class=&quot;co0&quot;&gt;#!/bin/bash&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-v&lt;/span&gt; build
&lt;span class=&quot;kw3&quot;&gt;cd&lt;/span&gt;       build
&amp;nbsp;
..&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;libstdc++-v3&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;configure \
    &lt;span class=&quot;re5&quot;&gt;--host&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS_TGT&lt;/span&gt; \
    &lt;span class=&quot;re5&quot;&gt;--build&lt;/span&gt;=$&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;..&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;config.guess&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; \
    &lt;span class=&quot;re5&quot;&gt;--prefix&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr \
    &lt;span class=&quot;re5&quot;&gt;--disable-multilib&lt;/span&gt; \
    &lt;span class=&quot;re5&quot;&gt;--disable-nls&lt;/span&gt; \
    &lt;span class=&quot;re5&quot;&gt;--disable-libstdcxx-pch&lt;/span&gt; \
    &lt;span class=&quot;re5&quot;&gt;--with-gxx-include-dir&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tools&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;$LFS_TGT&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;include&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;c++&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;13.2.0
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$MAKEFLAGS&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;DESTDIR&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;install&lt;/span&gt;
EOF
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;chmod&lt;/span&gt; +x ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;005-libstdcxx.sh&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\ud83c\udfc1 \u0427\u0442\u043e \u0434\u0435\u043b\u0430\u0442\u044c \u0434\u0430\u043b\u044c\u0448\u0435 \u043d\u0430 \u043f\u0435\u0440\u0432\u043e\u0439 \u043c\u0430\u0448\u0438\u043d\u0435 (Ubuntu 24.04)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\ud83c\udfc1_\u0447\u0442\u043e_\u0434\u0435\u043b\u0430\u0442\u044c_\u0434\u0430\u043b\u044c\u0448\u0435_\u043d\u0430_\u043f\u0435\u0440\u0432\u043e\u0439_\u043c\u0430\u0448\u0438\u043d\u0435_ubuntu_2404&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:53,&amp;quot;secid&amp;quot;:49,&amp;quot;range&amp;quot;:&amp;quot;89598-91432&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit50&quot; id=&quot;финальный_старт_сборки_libstdc&quot;&gt;2. Финальный старт сборки Libstdc++&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Запускайте компиляцию:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=55&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;cd&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder
.&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;scripts&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;build.sh gcc-13.2.0.tar.xz packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;005-libstdcxx.sh&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h5 id=&quot;на_скриншоте_зафиксирована_известная_аппаратная_многопоточная_ошибка_сборки_gcc-1320_при_компиляции_tzdbccerrorinfos_mutex_was_not_declared_in_this_scope&quot;&gt;На скриншоте зафиксирована известная аппаратная/многопоточная ошибка сборки gcc-13.2.0 при компиляции tzdb.cc: error: &amp;#039;infos_mutex&amp;#039; was not declared in this scope.&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Почему это произошлоКогда вы собирали первый проход GCC (пакет 002), у вас еще не было системных потоков Glibc (флаг –disable-threads). Теперь, при сборке Libstdc++, заголовочные файлы GCC конфликтуют с уже установленной новой Glibc, некорректно определяя поддержку многопоточности в стандарте C++20 (tzdb.cc), если сборка идет в слишком много параллельных потоков на хосте Ubuntu 24.04.Решается эта проблема принудительным отключением специфического модуля часовых поясов C++20 (–disable-libstdcxx-time) на этапе конфигурации.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;🛠️_исправление_скрипта_packages_005-libstdcxxsh&quot;&gt;🛠️ Исправление скрипта packages/005-libstdcxx.sh&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Выполните команду для полной перезаписи сценария:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=56&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;EOF&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;005-libstdcxx.sh
&lt;span class=&quot;co0&quot;&gt;#!/bin/bash&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-v&lt;/span&gt; build
&lt;span class=&quot;kw3&quot;&gt;cd&lt;/span&gt;       build
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Добавлен флаг --disable-libstdcxx-time для обхода ошибки компиляции tzdb.cc&lt;/span&gt;
..&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;libstdc++-v3&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;configure \
    &lt;span class=&quot;re5&quot;&gt;--host&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS_TGT&lt;/span&gt; \
    &lt;span class=&quot;re5&quot;&gt;--build&lt;/span&gt;=$&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;..&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;config.guess&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; \
    &lt;span class=&quot;re5&quot;&gt;--prefix&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr \
    &lt;span class=&quot;re5&quot;&gt;--disable-multilib&lt;/span&gt; \
    &lt;span class=&quot;re5&quot;&gt;--disable-nls&lt;/span&gt; \
    &lt;span class=&quot;re5&quot;&gt;--disable-libstdcxx-pch&lt;/span&gt; \
    &lt;span class=&quot;re5&quot;&gt;--disable-libstdcxx-time&lt;/span&gt; \
    &lt;span class=&quot;re5&quot;&gt;--with-gxx-include-dir&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tools&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;$LFS_TGT&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;include&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;c++&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;13.2.0
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$MAKEFLAGS&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;DESTDIR&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;install&lt;/span&gt;
EOF
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;chmod&lt;/span&gt; +x ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;005-libstdcxx.sh&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h4 id=&quot;🚀_повторный_старт_финального_пакета&quot;&gt;🚀 Повторный старт финального пакета&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Запускайте компиляцию заново:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=57&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;cd&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder
.&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;scripts&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;build.sh gcc-13.2.0.tar.xz packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;005-libstdcxx.sh&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
На новом скриншоте видно, что флаг –disable-libstdcxx-time в gcc-13.2.0 не отключил компиляцию файла tzdb.cc [12.1]. Ошибка error: &amp;#039;mutex&amp;#039; does name a type подтверждает, что кросс-компилятор собран без поддержки потоков (–disable-threads) [12.1]. Из-за этого он физически не знает, что такое std::mutex, а код C++20 пытается его использовать.&lt;br/&gt;

Так как мы строим систему в обход жестких рамок книги LFS, мы решим эту проблему радикально и гарантированно: внедрим костыль прямо в файл tzdb.cc перед сборкой, чтобы препроцессор полностью проигнорировал этот файл.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;2. \u0424\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439 \u0441\u0442\u0430\u0440\u0442 \u0441\u0431\u043e\u0440\u043a\u0438 Libstdc++&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0444\u0438\u043d\u0430\u043b\u044c\u043d\u044b\u0439_\u0441\u0442\u0430\u0440\u0442_\u0441\u0431\u043e\u0440\u043a\u0438_libstdc&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:55,&amp;quot;secid&amp;quot;:50,&amp;quot;range&amp;quot;:&amp;quot;91433-94713&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit51&quot; id=&quot;🛠️_радикальное_исправление_скрипта_packages_005-libstdcxxsh&quot;&gt;🛠️ Радикальное исправление скрипта packages/005-libstdcxx.sh&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Мы добавим команду sed, которая затрет все содержимое проблемного файла tzdb.cc, оставив его пустым. Так как в кросс-компиляторе первого прохода база таймзон C++20 все равно не используется, это абсолютно безопасно [12.1].&lt;br/&gt;

Выполните команду для полной перезаписи сценария:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=58&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;EOF&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;005-libstdcxx.sh
&lt;span class=&quot;co0&quot;&gt;#!/bin/bash&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Мы находимся внутри распакованной папки gcc-13.2.0&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# Обнуляем файл tzdb.cc, чтобы компилятор не спотыкался об отсутствующие потоки mutex&lt;/span&gt;
&lt;span class=&quot;kw3&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; libstdc++-v3&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;src&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;c++&lt;span class=&quot;nu0&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tzdb.cc
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-v&lt;/span&gt; build
&lt;span class=&quot;kw3&quot;&gt;cd&lt;/span&gt;       build
&amp;nbsp;
..&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;libstdc++-v3&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;configure \
    &lt;span class=&quot;re5&quot;&gt;--host&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS_TGT&lt;/span&gt; \
    &lt;span class=&quot;re5&quot;&gt;--build&lt;/span&gt;=$&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;..&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;config.guess&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; \
    &lt;span class=&quot;re5&quot;&gt;--prefix&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr \
    &lt;span class=&quot;re5&quot;&gt;--disable-multilib&lt;/span&gt; \
    &lt;span class=&quot;re5&quot;&gt;--disable-nls&lt;/span&gt; \
    &lt;span class=&quot;re5&quot;&gt;--disable-libstdcxx-pch&lt;/span&gt; \
    &lt;span class=&quot;re5&quot;&gt;--with-gxx-include-dir&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tools&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;$LFS_TGT&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;include&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;c++&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;13.2.0
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$MAKEFLAGS&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;DESTDIR&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;install&lt;/span&gt;
EOF
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;chmod&lt;/span&gt; +x ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;005-libstdcxx.sh&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h4 id=&quot;🚀_повторный_запуск_сборки_libstdc&quot;&gt;🚀 Повторный запуск сборки Libstdc++&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Запускайте финальную компиляцию:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=59&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;cd&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder
.&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;scripts&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;build.sh gcc-13.2.0.tar.xz packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;005-libstdcxx.sh&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
На скриншоте видно, что файл tzdb.cc всё ещё пытается компилироваться и выдаёт ту же самую ошибку.
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;почему_это_произошло1&quot;&gt;Почему это произошло?&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Наш главный управляющий движок build.sh работает по строгому алгоритму:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Он распаковывает чистый архив gcc-13.2.0.tar.xz.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Из-за этого создается абсолютно новая, чистая папка исходников.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Команда echo «» &amp;gt; libstdc++-v3/…, которую мы добавили в 005-libstdcxx.sh, не сработала, потому что этот скрипт запускается движком уже внутри созданной папки исходников, но пути внутри скрипта были написаны как относительные, либо build.sh выполнил очистку раньше времени.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Давайте сделаем обнуление файла абсолютно надёжным, прописав команду очистки прямо на этапе конфигурации внутри скрипта пакета.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\ud83d\udee0\ufe0f \u0420\u0430\u0434\u0438\u043a\u0430\u043b\u044c\u043d\u043e\u0435 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u043a\u0440\u0438\u043f\u0442\u0430 packages\/005-libstdcxx.sh&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\ud83d\udee0\ufe0f_\u0440\u0430\u0434\u0438\u043a\u0430\u043b\u044c\u043d\u043e\u0435_\u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435_\u0441\u043a\u0440\u0438\u043f\u0442\u0430_packages_005-libstdcxxsh&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:58,&amp;quot;secid&amp;quot;:51,&amp;quot;range&amp;quot;:&amp;quot;94714-97526&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit52&quot; id=&quot;🛠️_сверхнадежное_исправление_скрипта_packages_005-libstdcxxsh&quot;&gt;🛠️ Сверхнадежное исправление скрипта packages/005-libstdcxx.sh&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Выполните команду в терминале. Теперь мы принудительно очищаем файл tzdb.cc, используя $(pwd), чтобы команда выполнилась точно в корне распакованного GCC, прямо перед запуском configure:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=60&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;EOF&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;005-libstdcxx.sh
&lt;span class=&quot;co0&quot;&gt;#!/bin/bash&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Мы находимся внутри распакованной папки gcc-13.2.0&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# Вырезаем код tzdb.cc прямо в текущей рабочей директории&lt;/span&gt;
&lt;span class=&quot;kw3&quot;&gt;echo&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;/* Файл принудительно очищен для обхода отсутствия mutex */&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; .&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;libstdc++-v3&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;src&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;c++&lt;span class=&quot;nu0&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tzdb.cc
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-v&lt;/span&gt; build
&lt;span class=&quot;kw3&quot;&gt;cd&lt;/span&gt;       build
&amp;nbsp;
..&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;libstdc++-v3&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;configure \
    &lt;span class=&quot;re5&quot;&gt;--host&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS_TGT&lt;/span&gt; \
    &lt;span class=&quot;re5&quot;&gt;--build&lt;/span&gt;=$&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;..&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;config.guess&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; \
    &lt;span class=&quot;re5&quot;&gt;--prefix&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr \
    &lt;span class=&quot;re5&quot;&gt;--disable-multilib&lt;/span&gt; \
    &lt;span class=&quot;re5&quot;&gt;--disable-nls&lt;/span&gt; \
    &lt;span class=&quot;re5&quot;&gt;--disable-libstdcxx-pch&lt;/span&gt; \
    &lt;span class=&quot;re5&quot;&gt;--with-gxx-include-dir&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tools&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;$LFS_TGT&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;include&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;c++&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;13.2.0
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$MAKEFLAGS&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;DESTDIR&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;install&lt;/span&gt;
EOF
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;chmod&lt;/span&gt; +x ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;005-libstdcxx.sh&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h4 id=&quot;🚀_повторный_запускзапускаем_компиляцию_заново&quot;&gt;🚀 Повторный запускЗапускаем компиляцию заново.&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Теперь файл tzdb.cc гарантированно окажется пустым в момент сборки, компилятор хоста Ubuntu 24.04 просто пропустит его, и мы наконец закроем этот этап [12.1]:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=61&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;cd&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder
.&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;scripts&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;build.sh gcc-13.2.0.tar.xz packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;005-libstdcxx.sh&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h5 id=&quot;успех_скрин_34&quot;&gt;Успех!!! Скрин 34&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\ud83d\udee0\ufe0f \u0421\u0432\u0435\u0440\u0445\u043d\u0430\u0434\u0435\u0436\u043d\u043e\u0435 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u043a\u0440\u0438\u043f\u0442\u0430 packages\/005-libstdcxx.sh&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\ud83d\udee0\ufe0f_\u0441\u0432\u0435\u0440\u0445\u043d\u0430\u0434\u0435\u0436\u043d\u043e\u0435_\u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435_\u0441\u043a\u0440\u0438\u043f\u0442\u0430_packages_005-libstdcxxsh&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:60,&amp;quot;secid&amp;quot;:52,&amp;quot;range&amp;quot;:&amp;quot;97527-99260&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit53&quot; id=&quot;создание_скрипта_резервного_копирования_scripts_backup_toolssh&quot;&gt;1. Создание скрипта резервного копирования scripts/backup_tools.sh&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Убедимся, что скрипт бэкапа находится на своем месте в новой структуре и привязан к правильным переменным. Выполните команду в терминале:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=62&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;EOF&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;scripts&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;backup_tools.sh
&lt;span class=&quot;co0&quot;&gt;#!/bin/bash&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Подгружаем глобальную конфигурацию&lt;/span&gt;
&lt;span class=&quot;re2&quot;&gt;LFS_BUILDER_ROOT&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es4&quot;&gt;$(cd &amp;quot;$(dirname &amp;quot;${BASH_SOURCE}&amp;quot;)&lt;/span&gt;/..&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;pwd&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;
source &amp;quot;&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;$LFS_BUILDER_ROOT&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;config.conf&lt;span class=&quot;st0&quot;&gt;&amp;quot;
&amp;nbsp;
BACKUP_DIR=&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;home&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;eva&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-backups&lt;span class=&quot;st0&quot;&gt;&amp;quot;
BACKUP_NAME=&amp;quot;&lt;/span&gt;lfs-tools-day4-success.tar.xz&lt;span class=&quot;st0&quot;&gt;&amp;quot;
&amp;nbsp;
mkdir -p &amp;quot;&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;$BACKUP_DIR&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;
&amp;nbsp;
echo &amp;quot;&lt;/span&gt;=== Архивирование временного инструментария &lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tools ===&lt;span class=&quot;st0&quot;&gt;&amp;quot;
echo &amp;quot;&lt;/span&gt;Это займет некоторое время, пожалуйста, подождите...&lt;span class=&quot;st0&quot;&gt;&amp;quot;
&amp;nbsp;
# Создаем резервную копию каталога tools с сохранением прав доступа
tar -C &amp;quot;&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot; -Jcf &amp;quot;&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;$BACKUP_DIR&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;$BACKUP_NAME&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot; tools
&amp;nbsp;
echo &amp;quot;&lt;/span&gt;=== &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;УСПЕХ&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; Резервная копия успешно создана&lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt; ===&lt;span class=&quot;st0&quot;&gt;&amp;quot;
echo &amp;quot;&lt;/span&gt;Файл архива: &lt;span class=&quot;re1&quot;&gt;$BACKUP_DIR&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;$BACKUP_NAME&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;
echo &amp;quot;&lt;/span&gt;Размер архива: $&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;du&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-sh&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es2&quot;&gt;$BACKUP_DIR&lt;/span&gt;/&lt;span class=&quot;es2&quot;&gt;$BACKUP_NAME&lt;/span&gt;&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;cut&lt;/span&gt; -f1&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;
EOF
&amp;nbsp;
chmod +x ~/lfs-builder/scripts/backup_tools.sh&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h4 id=&quot;запуск_архивации&quot;&gt;2. Запуск архивации&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Запустите процесс создания слепка:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=63&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;cd&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder
.&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;scripts&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;backup_tools.sh&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
После завершения команды в вашей домашней директории появится папка lfs-backups с готовым архивом [12.1]. Вы официально зафиксировали свой прогресс и полностью защитили систему от случайных сбоев на следующем этапе [12.1].
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;1. \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0441\u043a\u0440\u0438\u043f\u0442\u0430 \u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e \u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f scripts\/backup_tools.sh&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435_\u0441\u043a\u0440\u0438\u043f\u0442\u0430_\u0440\u0435\u0437\u0435\u0440\u0432\u043d\u043e\u0433\u043e_\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f_scripts_backup_toolssh&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:62,&amp;quot;secid&amp;quot;:53,&amp;quot;range&amp;quot;:&amp;quot;99261-101223&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit54&quot; id=&quot;кросс-компиляция_временных_инструментов&quot;&gt;Кросс-Компиляция временных инструментов&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
мы можем автоматизировать сборку всех 17 пакетов Главы 6 (Временные инструменты) [12.1] с помощью одного общего управляющего скрипта. Наш движок build.sh уже идеально спроектирован под эту задачу: он автоматически перехватывает ошибки компиляции, мгновенно останавливает весь конвейер и изолирует логи для каждого пакета по отдельности.Чтобы запустить весь «День 5» одной командой, нам нужно сделать две вещи: написать 17 простых файлов пакетов в папку packages и создать один главный файл-диспетчер run_day5.sh.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041a\u0440\u043e\u0441\u0441-\u041a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044f \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043a\u0440\u043e\u0441\u0441-\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u044f_\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445_\u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:64,&amp;quot;secid&amp;quot;:54,&amp;quot;range&amp;quot;:&amp;quot;101224-102219&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit55&quot; id=&quot;как_будет_работать_автоматизация&quot;&gt;1. Как будет работать автоматизация:&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Диспетчер поочередно вызывает build.sh для каждого пакета.
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Если, например, пакет №3 (bash) падает с ошибкой, движок build.sh возвращает код ошибки1.&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Диспетчер перехватывает этот код благодаря инструкции set -e, немедленно останавливает всю сборку и оставляет систему в стабильном состоянии. Вы сможете спокойно изучить файл logs/008-bash.log, исправить его, закомментировать пройденные шаги в диспетчере и продолжить сборку.&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;1. \u041a\u0430\u043a \u0431\u0443\u0434\u0435\u0442 \u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044f:&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043a\u0430\u043a_\u0431\u0443\u0434\u0435\u0442_\u0440\u0430\u0431\u043e\u0442\u0430\u0442\u044c_\u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0437\u0430\u0446\u0438\u044f&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:64,&amp;quot;secid&amp;quot;:55,&amp;quot;range&amp;quot;:&amp;quot;102220-103042&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit56&quot; id=&quot;создание_главного_файла-диспетчера_scripts_run_day5sh&quot;&gt;2. Создание главного файла-диспетчера scripts/run_day5.sh&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Этот скрипт содержит точную последовательность и имена архивов для Главы 6 книги LFS 12.1 [12.1]:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=64&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;EOF&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;scripts&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;run_day5.sh
&lt;span class=&quot;co0&quot;&gt;#!/bin/bash&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# Останавливать скрипт при любой ошибке внутри цепочки&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re2&quot;&gt;LFS_BUILDER_ROOT&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es4&quot;&gt;$(cd &amp;quot;$(dirname &amp;quot;${BASH_SOURCE}&amp;quot;)&lt;/span&gt;/..&amp;quot;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;pwd&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;
cd &amp;quot;&lt;/span&gt;&lt;span class=&quot;re1&quot;&gt;$LFS_BUILDER_ROOT&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;
&amp;nbsp;
echo &amp;quot;&lt;/span&gt;========================================================&lt;span class=&quot;st0&quot;&gt;&amp;quot;
echo &amp;quot;&lt;/span&gt;   СТАРТ АВТОМАТИЧЕСКОЙ СБОРКИ: ДЕНЬ &lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;ГЛАВА &lt;span class=&quot;nu0&quot;&gt;6&lt;/span&gt; LFS&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;    &lt;span class=&quot;st0&quot;&gt;&amp;quot;
echo &amp;quot;&lt;/span&gt;========================================================&lt;span class=&quot;st0&quot;&gt;&amp;quot;
&amp;nbsp;
# Поочередный запуск всех 17 пакетов Главы 6 LFS
./scripts/build.sh m4-1.4.19.tar.xz              packages/006-m4.sh
./scripts/build.sh ncurses-6.4-20230520.tar.xz   packages/007-ncurses.sh
./scripts/build.sh bash-5.2.21.tar.gz            packages/008-bash.sh
./scripts/build.sh coreutils-9.4.tar.xz          packages/009-coreutils.sh
./scripts/build.sh diffutils-3.10.tar.xz         packages/010-diffutils.sh
./scripts/build.sh file-5.45.tar.gz              packages/011-file.sh
./scripts/build.sh findutils-4.9.0.tar.xz        packages/012-findutils.sh
./scripts/build.sh gawk-5.3.0.tar.xz             packages/013-gawk.sh
./scripts/build.sh grep-3.11.tar.xz              packages/014-grep.sh
./scripts/build.sh gzip-1.13.tar.xz              packages/015-gzip.sh
./scripts/build.sh make-4.4.1.tar.gz             packages/016-make.sh
./scripts/build.sh patch-2.7.6.tar.xz            packages/017-patch.sh
./scripts/build.sh sed-4.9.tar.xz                packages/018-sed.sh
./scripts/build.sh tar-1.35.tar.xz               packages/019-tar.sh
./scripts/build.sh xz-5.4.6.tar.xz               packages/020-xz.sh
./scripts/build.sh binutils-2.42.tar.xz          packages/021-binutils-p2.sh
./scripts/build.sh gcc-13.2.0.tar.xz             packages/022-gcc-p2.sh
&amp;nbsp;
echo &amp;quot;&lt;/span&gt;========================================================&lt;span class=&quot;st0&quot;&gt;&amp;quot;
echo &amp;quot;&lt;/span&gt;   УСПЕХ&lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt; Все &lt;span class=&quot;nu0&quot;&gt;17&lt;/span&gt; временных инструментов Главы &lt;span class=&quot;nu0&quot;&gt;6&lt;/span&gt; собраны&lt;span class=&quot;sy0&quot;&gt;!&lt;/span&gt;  &lt;span class=&quot;st0&quot;&gt;&amp;quot;
echo &amp;quot;&lt;/span&gt;========================================================&lt;span class=&quot;st0&quot;&gt;&amp;quot;
EOF
&amp;nbsp;
chmod +x ~/lfs-builder/scripts/run_day5.sh&lt;/span&gt;&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h4 id=&quot;пример_наполнения_файлов_пакетов&quot;&gt;3. Пример наполнения файлов пакетов&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Чтобы этот диспетчер работал, внутри папки packages должны физически лежать соответствующие 17 скриптов сборки [12.1]. Они пишутся по точно такому же шаблону, как мы делали ранее.Например, первые три пакета (M4, Ncurses, Bash) создаются следующими командами:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=65&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;# 006-m4.sh&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;EOF&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;006-m4.sh
&lt;span class=&quot;co0&quot;&gt;#!/bin/bash&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt;
..&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;configure &lt;span class=&quot;re5&quot;&gt;--prefix&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr &lt;span class=&quot;re5&quot;&gt;--host&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS_TGT&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--build&lt;/span&gt;=$&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;build-aux&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;config.guess&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$MAKEFLAGS&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;DESTDIR&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;install&lt;/span&gt;
EOF
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# 007-ncurses.sh&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;EOF&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;007-ncurses.sh
&lt;span class=&quot;co0&quot;&gt;#!/bin/bash&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# Нам нужно явно указать компилятору хоста не использовать системные библиотеки&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; build
&lt;span class=&quot;kw3&quot;&gt;cd&lt;/span&gt; build
..&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;configure
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-C&lt;/span&gt; include
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-C&lt;/span&gt; progs tic
&lt;span class=&quot;kw3&quot;&gt;cd&lt;/span&gt; ..
&amp;nbsp;
.&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;configure &lt;span class=&quot;re5&quot;&gt;--prefix&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr \
            &lt;span class=&quot;re5&quot;&gt;--host&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS_TGT&lt;/span&gt; \
            &lt;span class=&quot;re5&quot;&gt;--build&lt;/span&gt;=$&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;.&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;config.guess&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; \
            &lt;span class=&quot;re5&quot;&gt;--mandir&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;man&lt;/span&gt; \
            &lt;span class=&quot;re5&quot;&gt;--with-shared&lt;/span&gt; \
            &lt;span class=&quot;re5&quot;&gt;--without-debug&lt;/span&gt; \
            &lt;span class=&quot;re5&quot;&gt;--without-ada&lt;/span&gt; \
            &lt;span class=&quot;re5&quot;&gt;--without-normal&lt;/span&gt; \
            &lt;span class=&quot;re5&quot;&gt;--enable-widec&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$MAKEFLAGS&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;DESTDIR&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;TIC_PATH&lt;/span&gt;=$&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;pwd&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;build&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;progs&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tic &lt;span class=&quot;kw2&quot;&gt;install&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;ln&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-sv&lt;/span&gt; libncursesw.so &lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lib&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;libncurses.so
&lt;span class=&quot;kw2&quot;&gt;sed&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;s/^#include &amp;lt;curses.h&amp;gt;/#include &amp;lt;ncurses.h&amp;gt;/&#039;&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-i&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;include&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;curses.h
EOF
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# 008-bash.sh&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;EOF&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;008-bash.sh
&lt;span class=&quot;co0&quot;&gt;#!/bin/bash&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt;
.&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;configure &lt;span class=&quot;re5&quot;&gt;--prefix&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr \
            &lt;span class=&quot;re5&quot;&gt;--host&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS_TGT&lt;/span&gt; \
            &lt;span class=&quot;re5&quot;&gt;--build&lt;/span&gt;=$&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;support&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;config.guess&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; \
            &lt;span class=&quot;re5&quot;&gt;--without-bash-malloc&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$MAKEFLAGS&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;DESTDIR&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;install&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;ln&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-sfv&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;bash&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;bin&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;sh&lt;/span&gt;
EOF
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;chmod&lt;/span&gt; +x ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;006-m4.sh ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;007-ncurses.sh ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;008-bash.sh&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Сценарии для остальных 14 пакетов пишутся аналогичным лаконичным образом строго по книге LFS Глава 6 [12.1].
&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Ниже представлен готовый монолитный сценарий, который в один клик создаст оставшиеся 14 скриптов сборки (от Coreutils до второго прохода GCC) внутри папки packages. Все сценарии полностью адаптированы под архитектуру вашего движка build.sh и учитывают работу под пользователем root без изоляции среды lfs [12.1].
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;2. \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0433\u043b\u0430\u0432\u043d\u043e\u0433\u043e \u0444\u0430\u0439\u043b\u0430-\u0434\u0438\u0441\u043f\u0435\u0442\u0447\u0435\u0440\u0430 scripts\/run_day5.sh&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435_\u0433\u043b\u0430\u0432\u043d\u043e\u0433\u043e_\u0444\u0430\u0439\u043b\u0430-\u0434\u0438\u0441\u043f\u0435\u0442\u0447\u0435\u0440\u0430_scripts_run_day5sh&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:64,&amp;quot;secid&amp;quot;:56,&amp;quot;range&amp;quot;:&amp;quot;103043-108128&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit57&quot; id=&quot;🛠️_наполнение_оставшихся_14_пакетов_для_дня_5&quot;&gt;🛠️ Наполнение оставшихся 14 пакетов для Дня 5&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Скопируйте и выполните этот блок команд в терминале. Он сгенерирует файлы с номерами от 009 до 022:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=66&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;# 009-coreutils.sh&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;EOF&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;009-coreutils.sh
&lt;span class=&quot;co0&quot;&gt;#!/bin/bash&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt;
.&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;configure &lt;span class=&quot;re5&quot;&gt;--prefix&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr \
            &lt;span class=&quot;re5&quot;&gt;--host&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS_TGT&lt;/span&gt; \
            &lt;span class=&quot;re5&quot;&gt;--build&lt;/span&gt;=$&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;build-aux&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;config.guess&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; \
            &lt;span class=&quot;re5&quot;&gt;--enable-install-program&lt;/span&gt;=&lt;span class=&quot;kw2&quot;&gt;hostname&lt;/span&gt; \
            &lt;span class=&quot;re5&quot;&gt;--enable-no-install-program&lt;/span&gt;=&lt;span class=&quot;kw3&quot;&gt;kill&lt;/span&gt;,&lt;span class=&quot;kw2&quot;&gt;uptime&lt;/span&gt; \
            &lt;span class=&quot;re2&quot;&gt;gl_cv_macro_MB_CUR_MAX_good&lt;/span&gt;=y
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$MAKEFLAGS&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;DESTDIR&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;install&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;mv&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-v&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;bin&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;chroot&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sbin
&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-pv&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;man&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;man8
&lt;span class=&quot;kw2&quot;&gt;mv&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-v&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;man&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;man1&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;chroot.1 &lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;man&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;man8&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;chroot.8
&lt;span class=&quot;kw2&quot;&gt;sed&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-i&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;s/&amp;quot;1&amp;quot;/&amp;quot;8&amp;quot;/&#039;&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;man&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;man8&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;chroot.8
EOF
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# 010-diffutils.sh&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;EOF&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;010-diffutils.sh
&lt;span class=&quot;co0&quot;&gt;#!/bin/bash&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt;
.&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;configure &lt;span class=&quot;re5&quot;&gt;--prefix&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr &lt;span class=&quot;re5&quot;&gt;--host&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS_TGT&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--build&lt;/span&gt;=$&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;build-aux&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;config.guess&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$MAKEFLAGS&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;DESTDIR&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;install&lt;/span&gt;
EOF
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# 011-file.sh&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;EOF&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;011-file.sh
&lt;span class=&quot;co0&quot;&gt;#!/bin/bash&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; build
&lt;span class=&quot;kw3&quot;&gt;cd&lt;/span&gt; build
..&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;configure &lt;span class=&quot;re5&quot;&gt;--disable-bzlib&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--disable-libseccomp&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--disable-xzlib&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--disable-zlib&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt;
&lt;span class=&quot;kw3&quot;&gt;cd&lt;/span&gt; ..
.&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;configure &lt;span class=&quot;re5&quot;&gt;--prefix&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr &lt;span class=&quot;re5&quot;&gt;--host&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS_TGT&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--build&lt;/span&gt;=$&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;.&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;config.guess&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$MAKEFLAGS&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;FILE_COMPILE&lt;/span&gt;=$&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw3&quot;&gt;pwd&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;build&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;src&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;file&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;DESTDIR&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;install&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;rm&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-v&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lib&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;libmagic.la
EOF
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# 012-findutils.sh&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;EOF&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;012-findutils.sh
&lt;span class=&quot;co0&quot;&gt;#!/bin/bash&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt;
.&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;configure &lt;span class=&quot;re5&quot;&gt;--prefix&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr &lt;span class=&quot;re5&quot;&gt;--host&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS_TGT&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--build&lt;/span&gt;=$&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;build-aux&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;config.guess&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--localstatedir&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;var&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lib&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;locate&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$MAKEFLAGS&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;DESTDIR&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;install&lt;/span&gt;
EOF
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# 013-gawk.sh&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;EOF&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;013-gawk.sh
&lt;span class=&quot;co0&quot;&gt;#!/bin/bash&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;sed&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-i&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;s/dir_name/gawk_dir_name/&#039;&lt;/span&gt; dirfunc.c
.&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;configure &lt;span class=&quot;re5&quot;&gt;--prefix&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr &lt;span class=&quot;re5&quot;&gt;--host&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS_TGT&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--build&lt;/span&gt;=$&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;build-aux&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;config.guess&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$MAKEFLAGS&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;DESTDIR&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;install&lt;/span&gt;
EOF
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# 014-grep.sh&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;EOF&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;014-grep.sh
&lt;span class=&quot;co0&quot;&gt;#!/bin/bash&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt;
.&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;configure &lt;span class=&quot;re5&quot;&gt;--prefix&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr &lt;span class=&quot;re5&quot;&gt;--host&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS_TGT&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--build&lt;/span&gt;=$&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;build-aux&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;config.guess&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$MAKEFLAGS&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;DESTDIR&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;install&lt;/span&gt;
EOF
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# 015-gzip.sh&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;EOF&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;015-gzip.sh
&lt;span class=&quot;co0&quot;&gt;#!/bin/bash&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt;
.&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;configure &lt;span class=&quot;re5&quot;&gt;--prefix&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr &lt;span class=&quot;re5&quot;&gt;--host&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS_TGT&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$MAKEFLAGS&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;DESTDIR&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;install&lt;/span&gt;
EOF
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# 016-make.sh&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;EOF&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;016-make.sh
&lt;span class=&quot;co0&quot;&gt;#!/bin/bash&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt;
.&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;configure &lt;span class=&quot;re5&quot;&gt;--prefix&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr &lt;span class=&quot;re5&quot;&gt;--without-guile&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--host&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS_TGT&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--build&lt;/span&gt;=$&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;build-aux&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;config.guess&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$MAKEFLAGS&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;DESTDIR&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;install&lt;/span&gt;
EOF
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# 017-patch.sh&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;EOF&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;017-patch.sh
&lt;span class=&quot;co0&quot;&gt;#!/bin/bash&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt;
.&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;configure &lt;span class=&quot;re5&quot;&gt;--prefix&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr &lt;span class=&quot;re5&quot;&gt;--host&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS_TGT&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--build&lt;/span&gt;=$&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;build-aux&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;config.guess&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$MAKEFLAGS&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;DESTDIR&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;install&lt;/span&gt;
EOF
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# 018-sed.sh&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;EOF&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;018-sed.sh
&lt;span class=&quot;co0&quot;&gt;#!/bin/bash&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt;
.&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;configure &lt;span class=&quot;re5&quot;&gt;--prefix&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr &lt;span class=&quot;re5&quot;&gt;--host&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS_TGT&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--build&lt;/span&gt;=$&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;build-aux&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;config.guess&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$MAKEFLAGS&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;DESTDIR&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;install&lt;/span&gt;
EOF
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# 019-tar.sh&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;EOF&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;019-tar.sh
&lt;span class=&quot;co0&quot;&gt;#!/bin/bash&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt;
.&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;configure &lt;span class=&quot;re5&quot;&gt;--prefix&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr &lt;span class=&quot;re5&quot;&gt;--host&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS_TGT&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--build&lt;/span&gt;=$&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;build-aux&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;config.guess&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$MAKEFLAGS&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;DESTDIR&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;install&lt;/span&gt;
EOF
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# 020-xz.sh&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;EOF&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;020-xz.sh
&lt;span class=&quot;co0&quot;&gt;#!/bin/bash&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt;
.&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;configure &lt;span class=&quot;re5&quot;&gt;--prefix&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr &lt;span class=&quot;re5&quot;&gt;--host&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS_TGT&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--build&lt;/span&gt;=$&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;build-aux&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;config.guess&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--disable-static&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--docdir&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;share&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;doc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;xz-5.4.6
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$MAKEFLAGS&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;DESTDIR&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;install&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;rm&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-v&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lib&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;liblzma.la
EOF
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# 021-binutils-p2.sh&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;EOF&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;021-binutils-p2.sh
&lt;span class=&quot;co0&quot;&gt;#!/bin/bash&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;sed&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;6309s@.*@  static bfd_boolean initialised = FALSE;\n  if (initialised) return;\n  initialised = TRUE;@&#039;&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-i&lt;/span&gt; bfd&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;bfd.c
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-v&lt;/span&gt; build
&lt;span class=&quot;kw3&quot;&gt;cd&lt;/span&gt;       build
&amp;nbsp;
..&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;configure \
    &lt;span class=&quot;re5&quot;&gt;--prefix&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr \
    &lt;span class=&quot;re5&quot;&gt;--build&lt;/span&gt;=$&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;..&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;config.guess&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; \
    &lt;span class=&quot;re5&quot;&gt;--host&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS_TGT&lt;/span&gt; \
    &lt;span class=&quot;re5&quot;&gt;--disable-nls&lt;/span&gt; \
    &lt;span class=&quot;re5&quot;&gt;--enable-shared&lt;/span&gt; \
    &lt;span class=&quot;re5&quot;&gt;--enable-gprofng&lt;/span&gt;=no \
    &lt;span class=&quot;re5&quot;&gt;--disable-werror&lt;/span&gt; \
    &lt;span class=&quot;re5&quot;&gt;--enable-64-bit-bfd&lt;/span&gt; \
    &lt;span class=&quot;re5&quot;&gt;--enable-default-hash-style&lt;/span&gt;=gnu
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$MAKEFLAGS&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;DESTDIR&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;install&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;rm&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-v&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lib&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lib&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;bfd,ctf,ctf-nobfd,opcodes,sframe&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;.&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;a,la&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
EOF
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# 022-gcc-p2.sh&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;EOF&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;022-gcc-p2.sh
&lt;span class=&quot;co0&quot;&gt;#!/bin/bash&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;tar&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-xf&lt;/span&gt; ..&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mpfr-4.2.1.tar.xz &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;mv&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-v&lt;/span&gt; mpfr-4.2.1 mpfr
&lt;span class=&quot;kw2&quot;&gt;tar&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-xf&lt;/span&gt; ..&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;gmp-6.3.0.tar.xz  &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;mv&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-v&lt;/span&gt; gmp-6.3.0 gmp
&lt;span class=&quot;kw2&quot;&gt;tar&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-xf&lt;/span&gt; ..&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mpc-1.3.1.tar.gz  &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;mv&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-v&lt;/span&gt; mpc-1.3.1 mpc
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;case&lt;/span&gt; $&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;uname&lt;/span&gt; -m&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt;
  x86_64&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw2&quot;&gt;sed&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;/m64=/s/lib64/lib/&#039;&lt;/span&gt; -i.bak gcc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;config&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;i386&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;t-linux64
 &lt;span class=&quot;sy0&quot;&gt;;;&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;esac&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;sed&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;/Dialogue on/d&#039;&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-i&lt;/span&gt; gcc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;cp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;cfns.gperf &lt;span class=&quot;sy0&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;true&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-v&lt;/span&gt; build
&lt;span class=&quot;kw3&quot;&gt;cd&lt;/span&gt;       build
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-pv&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$LFS_TGT&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;libstdc++-v3&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;src&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;.libs
&amp;nbsp;
..&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;configure \
    &lt;span class=&quot;re5&quot;&gt;--build&lt;/span&gt;=$&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;..&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;config.guess&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; \
    &lt;span class=&quot;re5&quot;&gt;--host&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS_TGT&lt;/span&gt; \
    &lt;span class=&quot;re5&quot;&gt;--target&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS_TGT&lt;/span&gt; \
    &lt;span class=&quot;re5&quot;&gt;--prefix&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr \
    &lt;span class=&quot;re5&quot;&gt;--with-glibc-version&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;2.39&lt;/span&gt; \
    &lt;span class=&quot;re5&quot;&gt;--with-sysroot&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt; \
    &lt;span class=&quot;re5&quot;&gt;--enable-languages&lt;/span&gt;=c,&lt;span class=&quot;kw2&quot;&gt;c++&lt;/span&gt; \
    &lt;span class=&quot;re5&quot;&gt;--enable-default-pie&lt;/span&gt; \
    &lt;span class=&quot;re5&quot;&gt;--enable-default-ssp&lt;/span&gt; \
    &lt;span class=&quot;re5&quot;&gt;--disable-nls&lt;/span&gt; \
    &lt;span class=&quot;re5&quot;&gt;--disable-multilib&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$MAKEFLAGS&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;DESTDIR&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;install&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;ln&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-sfv&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;gcc&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;bin&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;cc&lt;/span&gt;
EOF
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Делаем всю пачку исполняемой&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;chmod&lt;/span&gt; +x ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;01&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;.sh ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;02&lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;.sh&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h4 id=&quot;🏁_всё_готово_к_тотальному_запуску&quot;&gt;🏁 Всё готово к тотальному запуску&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Папка packages/ теперь полностью укомплектована всеми 17 пакетами (включая созданные на предыдущем шаге 006, 007, 008) [12.1].Запуск всего конвейера Дня 5 осуществляется одной командой из корня сборщика:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=67&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;cd&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder
.&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;scripts&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;run_day5.sh&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
На скриншоте зафиксирована ошибка: ../configure: No such file or directory [12.1].
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;в_чем_причина_ошибки&quot;&gt;В чем причина ошибки&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
В отличие от первого прохода Binutils и GCC, утилита m4 (и большинство остальных 15 пакетов) настраивается прямо из корня своей распакованной папки, а не из изолированной директории build. Скрипт попытался прыгнуть на уровень выше через ../configure и закономерно упал [12.1].
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\ud83d\udee0\ufe0f \u041d\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u043e\u0441\u0442\u0430\u0432\u0448\u0438\u0445\u0441\u044f 14 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 \u0434\u043b\u044f \u0414\u043d\u044f 5&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\ud83d\udee0\ufe0f_\u043d\u0430\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435_\u043e\u0441\u0442\u0430\u0432\u0448\u0438\u0445\u0441\u044f_14_\u043f\u0430\u043a\u0435\u0442\u043e\u0432_\u0434\u043b\u044f_\u0434\u043d\u044f_5&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:66,&amp;quot;secid&amp;quot;:57,&amp;quot;range&amp;quot;:&amp;quot;108129-114292&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit58&quot; id=&quot;🛠️_исправление_и_оптимизация_скрипта_packages_006-m4sh&quot;&gt;🛠️ Исправление и оптимизация скрипта packages/006-m4.sh&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Так как вы компилируете на современном дистрибутиве Ubuntu 24.04 (и планируете на 26.10), в пакете m4 версии 1.4.19 также присутствует старый код, который вызовет сбой error: &amp;#039;vfprintf&amp;#039; из-за конфликта со встроенными функциями новой библиотеки Glibc. Мы исправим обе проблемы сразу [12.1].Выполните команду для перезаписи скрипта m4:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=68&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;EOF&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;006-m4.sh
&lt;span class=&quot;co0&quot;&gt;#!/bin/bash&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Исправление совместимости старого кода M4 с новой Glibc на Ubuntu 24.04/26.10&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;sed&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-i&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;s/free (x/free (ext/&#039;&lt;/span&gt; lib&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;free.c &lt;span class=&quot;sy0&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;true&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Вызываем configure прямо из текущего каталога исходников (./ вместо ../)&lt;/span&gt;
.&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;configure &lt;span class=&quot;re5&quot;&gt;--prefix&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr \
            &lt;span class=&quot;re5&quot;&gt;--host&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS_TGT&lt;/span&gt; \
            &lt;span class=&quot;re5&quot;&gt;--build&lt;/span&gt;=$&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;build-aux&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;config.guess&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$MAKEFLAGS&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;DESTDIR&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;install&lt;/span&gt;
EOF
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;chmod&lt;/span&gt; +x ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;006-m4.sh&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h4 id=&quot;🚀_повторный_старт_дня_5&quot;&gt;🚀 Повторный старт Дня 5&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;/div&gt;

&lt;h5 id=&quot;конвейер_остановился_на_пакете_008-bash_из-за_отсутствия_целевой_директорииlnfailed_to_create_symbolic_link_mnt_lfs_bin_shno_such_file_or_directory_121&quot;&gt;Конвейер остановился на пакете 008-bash из-за отсутствия целевой директории: ln: failed to create symbolic link &amp;#039;/mnt/lfs/bin/sh&amp;#039;: No such file or directory [12.1].&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;🔍_в_чем_причина_ошибки&quot;&gt;🔍 В чем причина ошибки&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
По книге LFS 12.1 в Главе 6 все утилиты этого этапа должны устанавливаться строго с префиксом –prefix=/usr [12.1]. Соответственно, бинарник bash устанавливается в каталог /usr/bin/bash (внутри LFS это /mnt/lfs/usr/bin/bash) [12.1].В коде нашего скрипта 008-bash.sh была допущена ошибка в путях символической ссылки: команда пыталась создать линк в несуществующей на данном этапе корневой папке /mnt/lfs/bin/sh вместо стандартной /mnt/lfs/usr/bin/sh или /mnt/lfs/bin/sh (которая в чистом LFS 12.1 теперь является ссылкой на usr/bin) [12.1].
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\ud83d\udee0\ufe0f \u0418\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0438 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f \u0441\u043a\u0440\u0438\u043f\u0442\u0430 packages\/006-m4.sh&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\ud83d\udee0\ufe0f_\u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435_\u0438_\u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f_\u0441\u043a\u0440\u0438\u043f\u0442\u0430_packages_006-m4sh&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:68,&amp;quot;secid&amp;quot;:58,&amp;quot;range&amp;quot;:&amp;quot;114293-116714&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit59&quot; id=&quot;🛠️_исправление_и_оптимизация_скрипта_packages_008-bashsh&quot;&gt;🛠️ Исправление и оптимизация скрипта packages/008-bash.sh&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Мы исправим пути символической ссылки, а также превентивно создадим необходимые базовые симлинки папок (/bin, /sbin, /lib), чтобы все последующие утилиты (Coreutils, Tar, Sed) без проблем находили нужные им стандартные пути [12.1].Выполните команду для полной перезаписи сценария Bash:
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;🚀_возобновление_сборки&quot;&gt;🚀 Возобновление сборки&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Так как пакеты 006-m4 и 007-ncurses уже успешно собрались ранее, нам не нужно пересобирать их заново. Мы можем временно скорректировать диспетчер или просто запустить исправившийся Bash вручную через build.sh, а затем вернуть управление общему диспетчеру.Выполните команды в терминале:
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;ручной_дозапуск_исправившегося_bash&quot;&gt;1.Ручной дозапуск исправившегося Bash:&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Возврат в общий конвейер автоматизации:Как только Bash выдаст статус [УСПЕХ], отредактируйте файл scripts/run_day5.sh (например, закомментировав символом # первые три строки с m4, ncurses и bash) и запустите его снова для завершения оставшихся пакетов [12.1]:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=69&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;.&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;scripts&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;run_day5.sh&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\ud83d\udee0\ufe0f \u0418\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0438 \u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f \u0441\u043a\u0440\u0438\u043f\u0442\u0430 packages\/008-bash.sh&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\ud83d\udee0\ufe0f_\u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435_\u0438_\u043e\u043f\u0442\u0438\u043c\u0438\u0437\u0430\u0446\u0438\u044f_\u0441\u043a\u0440\u0438\u043f\u0442\u0430_packages_008-bashsh&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:69,&amp;quot;secid&amp;quot;:59,&amp;quot;range&amp;quot;:&amp;quot;116715-118406&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit60&quot; id=&quot;автоматическая_корректировка_диспетчера_run_day5sh&quot;&gt;1. Автоматическая корректировка диспетчера run_day5.sh&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Выполните эту команду в терминале. Она закомментирует первые три успешно пройденных шага в вашем файле автоматизации:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=70&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sed&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-i&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;/006-m4/s/^/#/&#039;&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;/007-ncurses/s/^/#/&#039;&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;/008-bash/s/^/#/&#039;&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;scripts&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;run_day5.sh&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h4 id=&quot;🚀_запуск_продолжения_конвейера_дня_5&quot;&gt;🚀 Запуск продолжения конвейера Дня 5&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
После выполнения команды выше ваш диспетчер готов продолжить сборку с 9-го пакета (Coreutils). Нажмите на старт:
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;🔍_в_чем_причина_ошибки1&quot;&gt;🔍 В чем причина ошибки&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
В версии Gawk 5.3.0 (которая идет в LFS 12.1) файл dirfunc.c был перенесен разработчиками пакета в подкаталог extension/dirfunc.c [12.1]. Утилита sed в корне распакованного архива его не нашла и остановила сборку [12.1].
====🛠️ Исправление скрипта packages/013-gawk.sh====Мы обновим путь к файлу в команде sed, чтобы замена имени функции dir_name прошла корректно, и компилятор успешно собрал утилиту [12.1].Выполните команду в терминале для перезаписи сценария Gawk:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=71&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;EOF&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;013-gawk.sh
&lt;span class=&quot;co0&quot;&gt;#!/bin/bash&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Исправленный путь к файлу dirfunc.c в версии Gawk 5.3.0&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;sed&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-i&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;s/dir_name/gawk_dir_name/&#039;&lt;/span&gt; extension&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dirfunc.c
&amp;nbsp;
.&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;configure &lt;span class=&quot;re5&quot;&gt;--prefix&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr \
            &lt;span class=&quot;re5&quot;&gt;--host&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS_TGT&lt;/span&gt; \
            &lt;span class=&quot;re5&quot;&gt;--build&lt;/span&gt;=$&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;build-aux&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;config.guess&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$MAKEFLAGS&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;DESTDIR&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;install&lt;/span&gt;
EOF
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;chmod&lt;/span&gt; +x ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;013-gawk.sh&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;1. \u0410\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u043a\u0430 \u0434\u0438\u0441\u043f\u0435\u0442\u0447\u0435\u0440\u0430 run_day5.sh&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f_\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u043a\u0430_\u0434\u0438\u0441\u043f\u0435\u0442\u0447\u0435\u0440\u0430_run_day5sh&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:70,&amp;quot;secid&amp;quot;:60,&amp;quot;range&amp;quot;:&amp;quot;118407-120371&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit61&quot; id=&quot;🏁_перезапуск_автоматической_сборки&quot;&gt;🏁 Перезапуск автоматической сборки&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Запускайте конвейер заново, он подхватит работу прямо с исправленного 13-го пакета:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=72&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;cd&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder
.&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;scripts&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;run_day5.sh&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
На новом скриншоте видно, что sed снова выдал ошибку No such file or directory, но уже для пути extension/dirfunc.c [12.1].
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;🔍_в_чем_реальная_причина&quot;&gt;🔍 В чем реальная причина&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
В книге LFS версии 12.1 используется пакет gawk-5.3.0.tar.xz [12.1]. Однако команда sed для исправления dirfunc.c официально требуется только в более старых версиях книги LFS (например, 11.x, где собирался Gawk 5.1.x), чтобы избежать конфликтов имен функций [12.1]. В современной версии gawk-5.3.0 разработчики полностью переписали этот модуль, убрали конфликтное объявление, а сам исходный код был перенесен в глубокие поддиректории плагинов (из-за чего пути и не совпадают) [12.1].&lt;br/&gt;

Для версии книги LFS 12.1 эта замена через sed больше вообще не требуется [12.1]. Мы можем просто удалить эту строку из сценария, и пакет скомпилируется в чистом виде [12.1].
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\ud83c\udfc1 \u041f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a \u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439 \u0441\u0431\u043e\u0440\u043a\u0438&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\ud83c\udfc1_\u043f\u0435\u0440\u0435\u0437\u0430\u043f\u0443\u0441\u043a_\u0430\u0432\u0442\u043e\u043c\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0439_\u0441\u0431\u043e\u0440\u043a\u0438&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:72,&amp;quot;secid&amp;quot;:61,&amp;quot;range&amp;quot;:&amp;quot;120372-122001&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit62&quot; id=&quot;🛠️_упрощение_и_исправление_скрипта_packages_013-gawksh&quot;&gt;🛠️ Упрощение и исправление скрипта packages/013-gawk.sh&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Выполните команду для перезаписи сценария Gawk без лишних модификаций, строго по спецификации LFS 12.1 [12.1]:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=73&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;EOF&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;013-gawk.sh
&lt;span class=&quot;co0&quot;&gt;#!/bin/bash&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Для gawk-5.3.0 в LFS 12.1 никакие предварительные патчи sed не нужны&lt;/span&gt;
&amp;nbsp;
.&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;configure &lt;span class=&quot;re5&quot;&gt;--prefix&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr \
            &lt;span class=&quot;re5&quot;&gt;--host&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS_TGT&lt;/span&gt; \
            &lt;span class=&quot;re5&quot;&gt;--build&lt;/span&gt;=$&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;build-aux&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;config.guess&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$MAKEFLAGS&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;DESTDIR&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;install&lt;/span&gt;
EOF
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;chmod&lt;/span&gt; +x ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;013-gawk.sh&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h4 id=&quot;🚀_запуск_конвейерапоскольку_диспетчер_run_day5sh&quot;&gt;🚀 Запуск конвейераПоскольку диспетчер run_day5.sh&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
 не менялся, а предыдущие пакеты вы уже закомментировали на прошлом шаге, просто перезапустите конвейер заново:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=74&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;cd&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder
.&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;scripts&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;run_day5.sh&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
На скриншоте видно, что sed всё ещё пытается выполниться. Это значит, что файл packages/013-gawk.sh не обновился (возможно, команда cat « &amp;#039;&lt;abbr title=&quot;End of file&quot;&gt;EOF&lt;/abbr&gt;&amp;#039; не перезаписала его из-за открытого процесса или ошибки прав).Давайте решим этот вопрос фундаментально: исправим файл Gawk, принудительно закомментируем в диспетчере run_day5.sh абсолютно все пакеты с 6 по 12, чтобы скрипт физически начинал работу строго с 13-го пакета, и запустим конвейер.
&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;гарантированное_исправление_скрипта_gawk_без_sed&quot;&gt;1. Гарантированное исправление скрипта Gawk (Без sed)&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Выполните команду удаления старого файла и записи чистого скрипта без каких-либо модификаций:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=75&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;rm&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-f&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;013-gawk.sh
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;EOF&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;013-gawk.sh
&lt;span class=&quot;co0&quot;&gt;#!/bin/bash&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt;
&amp;nbsp;
.&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;configure &lt;span class=&quot;re5&quot;&gt;--prefix&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr \
            &lt;span class=&quot;re5&quot;&gt;--host&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS_TGT&lt;/span&gt; \
            &lt;span class=&quot;re5&quot;&gt;--build&lt;/span&gt;=$&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;build-aux&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;config.guess&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$MAKEFLAGS&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;DESTDIR&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;install&lt;/span&gt;
EOF
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;chmod&lt;/span&gt; +x ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;013-gawk.sh&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h4 id=&quot;принудительное_отключение_пакетов_006-012_в_диспетчере&quot;&gt;2. Принудительное отключение пакетов 006-012 в диспетчере&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Эта команда гарантирует, что при запуске общего диспетчера run_day5.sh пакеты с 6 по 12 будут полностью пропущены, и сборка начнется строго с 13-го шага:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=76&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sed&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-i&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;/006-m4/s/^/#/&#039;&lt;/span&gt; \
       &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;/007-ncurses/s/^/#/&#039;&lt;/span&gt; \
       &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;/008-bash/s/^/#/&#039;&lt;/span&gt; \
       &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;/009-coreutils/s/^/#/&#039;&lt;/span&gt; \
       &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;/010-diffutils/s/^/#/&#039;&lt;/span&gt; \
       &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;/011-file/s/^/#/&#039;&lt;/span&gt; \
       &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;/012-findutils/s/^/#/&#039;&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;scripts&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;run_day5.sh&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h4 id=&quot;запуск_общего_конвейера_с_13-го_пакета_и_выше&quot;&gt;3. Запуск общего конвейера с 13-го пакета и выше&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Теперь запускайте общий диспетчер. Он пропустит первые шаги, мгновенно перейдет к обновленному 013-gawk.sh и в случае успеха автоматически погонит сборку дальше по цепочке (Grep, Gzip, Make и т.д.):
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=77&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;cd&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder
.&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;scripts&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;run_day5.sh&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
На скриншоте зафиксирован сбой на пакете 021-binutils-p2 [12.1]. Это означает, что вся пачка базовых текстовых и архивных утилит (от Grep до Xz) успешно собралась в автоматическом режиме, и мы дошли до финальных пакетов Главы 6 [12.1].
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;🔍_в_чем_причина_ошибки2&quot;&gt;🔍 В чем причина ошибки&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Команда sed в начале скрипта 021-binutils-p2.sh выполняет патчинг файла bfd/bfd.c по жестко заданному номеру строки (6309s@…) [12.1]. Однако в версии Binutils 2.42 (из LFS 12.1) структура этого файла изменилась, из-за чего слепая замена по номеру строки либо повреждает синтаксис кода, либо ломает генерацию заголовочных файлов, приводя к Error 2 при вызове make [12.1].Официальное руководство LFS 12.1 для пакета Binutils Pass 2 не требует ручного патчинга этого файла через sed. Вместо этого книга требует передавать конфигурационные флаги для правильной линковки библиотек [12.1].
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\ud83d\udee0\ufe0f \u0423\u043f\u0440\u043e\u0449\u0435\u043d\u0438\u0435 \u0438 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u043a\u0440\u0438\u043f\u0442\u0430 packages\/013-gawk.sh&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\ud83d\udee0\ufe0f_\u0443\u043f\u0440\u043e\u0449\u0435\u043d\u0438\u0435_\u0438_\u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435_\u0441\u043a\u0440\u0438\u043f\u0442\u0430_packages_013-gawksh&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:73,&amp;quot;secid&amp;quot;:62,&amp;quot;range&amp;quot;:&amp;quot;122002-127067&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit63&quot; id=&quot;🛠️_исправление_скрипта_packages_021-binutils-p2sh&quot;&gt;🛠️ Исправление скрипта packages/021-binutils-p2.sh&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Мы полностью уберем ошибочную строку sed и перепишем скрипт строго по спецификации второго прохода книги LFS 12.1 [12.1].Выполните команду для перезаписи сценария:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=78&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;EOF&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;021-binutils-p2.sh
&lt;span class=&quot;co0&quot;&gt;#!/bin/bash&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Мы находимся в корне распакованного binutils-2.42&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# Патч по номеру строки удален во избежание повреждения исходного кода&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-v&lt;/span&gt; build
&lt;span class=&quot;kw3&quot;&gt;cd&lt;/span&gt;       build
&amp;nbsp;
..&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;configure \
    &lt;span class=&quot;re5&quot;&gt;--prefix&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr \
    &lt;span class=&quot;re5&quot;&gt;--build&lt;/span&gt;=$&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;..&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;config.guess&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; \
    &lt;span class=&quot;re5&quot;&gt;--host&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS_TGT&lt;/span&gt; \
    &lt;span class=&quot;re5&quot;&gt;--disable-nls&lt;/span&gt; \
    &lt;span class=&quot;re5&quot;&gt;--enable-shared&lt;/span&gt; \
    &lt;span class=&quot;re5&quot;&gt;--enable-gprofng&lt;/span&gt;=no \
    &lt;span class=&quot;re5&quot;&gt;--disable-werror&lt;/span&gt; \
    &lt;span class=&quot;re5&quot;&gt;--enable-64-bit-bfd&lt;/span&gt; \
    &lt;span class=&quot;re5&quot;&gt;--enable-default-hash-style&lt;/span&gt;=gnu
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$MAKEFLAGS&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;DESTDIR&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;install&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Удаляем ненужные статические libtool-архивы, как требует книга&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;rm&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-v&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lib&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lib&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;bfd,ctf,ctf-nobfd,opcodes,sframe&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;.&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;a,la&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
EOF
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;chmod&lt;/span&gt; +x ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;021-binutils-p2.sh&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h4 id=&quot;🚀_отключение_пройденных_шагов_и_перезапуск&quot;&gt;🚀 Отключение пройденных шагов и перезапуск&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Чтобы диспетчер не тратил время на повторную проверку и сборку утилит с 013 по 020, закомментируем их одной командой sed:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=79&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;sed&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-i&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;/013-gawk/s/^/#/&#039;&lt;/span&gt; \
       &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;/014-grep/s/^/#/&#039;&lt;/span&gt; \
       &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;/015-gzip/s/^/#/&#039;&lt;/span&gt; \
       &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;/016-make/s/^/#/&#039;&lt;/span&gt; \
       &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;/017-patch/s/^/#/&#039;&lt;/span&gt; \
       &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;/018-sed/s/^/#/&#039;&lt;/span&gt; \
       &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;/019-tar/s/^/#/&#039;&lt;/span&gt; \
       &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;/020-xz/s/^/#/&#039;&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;scripts&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;run_day5.sh&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\ud83d\udee0\ufe0f \u0418\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u043a\u0440\u0438\u043f\u0442\u0430 packages\/021-binutils-p2.sh&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\ud83d\udee0\ufe0f_\u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435_\u0441\u043a\u0440\u0438\u043f\u0442\u0430_packages_021-binutils-p2sh&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:78,&amp;quot;secid&amp;quot;:63,&amp;quot;range&amp;quot;:&amp;quot;127068-128911&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit64&quot; id=&quot;🏁_запуск_конвейера&quot;&gt;🏁 Запуск конвейера&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Запускайте диспетчер заново. Он мгновенно начнет работу со строго исправленного пакета 021-binutils-p2 [12.1]:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=80&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;cd&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder
.&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;scripts&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;run_day5.sh&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
На &lt;strong&gt;скриншоте iso_lfs_server_x_44.png&lt;/strong&gt; видно, что 021-binutils-p2 снова упал с той же ошибкой Error 2 [12.1]. Это означает, что файл packages/021-binutils-p2.sh не обновился (команда cat не применилась, либо старая версия скрипта осталась заблокированной в памяти).Давайте удалим старый файл вручную, запишем чистый рабочий скрипт без sed и заглянем в логи, если это не поможет.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\ud83c\udfc1 \u0417\u0430\u043f\u0443\u0441\u043a \u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\ud83c\udfc1_\u0437\u0430\u043f\u0443\u0441\u043a_\u043a\u043e\u043d\u0432\u0435\u0439\u0435\u0440\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:80,&amp;quot;secid&amp;quot;:64,&amp;quot;range&amp;quot;:&amp;quot;128912-129820&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit65&quot; id=&quot;🛠️_1_гарантированное_исправление_скрипта_пакета&quot;&gt;🛠️ 1. Гарантированное исправление скрипта пакета&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Выполните команду удаления старого файла и записи нового:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=81&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;rm&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-f&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;021-binutils-p2.sh
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;EOF&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;021-binutils-p2.sh
&lt;span class=&quot;co0&quot;&gt;#!/bin/bash&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-v&lt;/span&gt; build
&lt;span class=&quot;kw3&quot;&gt;cd&lt;/span&gt;       build
&amp;nbsp;
..&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;configure \
    &lt;span class=&quot;re5&quot;&gt;--prefix&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr \
    &lt;span class=&quot;re5&quot;&gt;--build&lt;/span&gt;=$&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;..&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;config.guess&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; \
    &lt;span class=&quot;re5&quot;&gt;--host&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS_TGT&lt;/span&gt; \
    &lt;span class=&quot;re5&quot;&gt;--disable-nls&lt;/span&gt; \
    &lt;span class=&quot;re5&quot;&gt;--enable-shared&lt;/span&gt; \
    &lt;span class=&quot;re5&quot;&gt;--enable-gprofng&lt;/span&gt;=no \
    &lt;span class=&quot;re5&quot;&gt;--disable-werror&lt;/span&gt; \
    &lt;span class=&quot;re5&quot;&gt;--enable-64-bit-bfd&lt;/span&gt; \
    &lt;span class=&quot;re5&quot;&gt;--enable-default-hash-style&lt;/span&gt;=gnu
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$MAKEFLAGS&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;DESTDIR&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;install&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;rm&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-v&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lib&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lib&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;bfd,ctf,ctf-nobfd,opcodes,sframe&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;.&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;a,la&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
EOF
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;chmod&lt;/span&gt; +x ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;021-binutils-p2.sh&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\ud83d\udee0\ufe0f 1. \u0413\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0435 \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u043a\u0440\u0438\u043f\u0442\u0430 \u043f\u0430\u043a\u0435\u0442\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\ud83d\udee0\ufe0f_1_\u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0435_\u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435_\u0441\u043a\u0440\u0438\u043f\u0442\u0430_\u043f\u0430\u043a\u0435\u0442\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:81,&amp;quot;secid&amp;quot;:65,&amp;quot;range&amp;quot;:&amp;quot;129821-130619&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit66&quot; id=&quot;🚀_2_точечный_запуск_binutils_pass_2&quot;&gt;🚀 2. Точечный запуск Binutils Pass 2&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Запустим пакет отдельно от общего скрипта, чтобы убедиться, что он подхватил новую конфигурацию:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=82&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;cd&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder
.&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;scripts&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;build.sh binutils-&lt;span class=&quot;nu0&quot;&gt;2.42&lt;/span&gt;.tar.xz packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;021-binutils-p2.sh&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h5 id=&quot;🔍_3_что_делать_если_снова_упадет&quot;&gt;🔍 3. Что делать, если снова упадет?&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Если сборка опять мгновенно выдаст Error 2, значит, компилятор споткнулся на специфическом заголовочном файле хоста Ubuntu 24.04. Выведите последние 20 строк лога компиляции, чтобы мы увидели скрытый текст ошибки:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=83&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;tail&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-n&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;20&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;logs&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;021-binutils-p2.log&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aiso_lfs_server%3Aiso_lfs_server&amp;amp;media=software:linux_server:iso_lfs_server:iso_lfs_server_x_45.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:iso_lfs_server:iso_lfs_server_x_45.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:iso_lfs_server:iso_lfs_server_x_45.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Судя по выводу tail -n 20, ошибка Error 2 происходит на самом верхнем уровне Makefile сразу после завершения этапа конфигурирования (генерации файлов config.status, Makefile и т.д.) [12.1]. Лог обрывается, так как реальная ошибка компиляции из-за многопоточности make -j$(nproc) улетела выше по тексту [12.1].&lt;br/&gt;

При сборке Binutils (Pass 2) в Главе 6 книги LFS 12.1 на хостах с современным GCC (как в Ubuntu 24.04/26.10) эта проблема возникает из-за жесткого конфликта утилиты makeinfo или отсутствия флага –with-lib-path. Без этого флага второй проход не понимает, где искать библиотеки новой собранной Glibc [12.1].&lt;br/&gt;

Кроме того, по книге LFS 12.1, перед конфигурацией Binutils Pass 2 требуется применить важный сед-патч к файлу Makefile.in (а не к bfd.c, как было раньше), чтобы сборка не зацикливалась на генерации документации [12.1].
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\ud83d\ude80 2. \u0422\u043e\u0447\u0435\u0447\u043d\u044b\u0439 \u0437\u0430\u043f\u0443\u0441\u043a Binutils Pass 2&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\ud83d\ude80_2_\u0442\u043e\u0447\u0435\u0447\u043d\u044b\u0439_\u0437\u0430\u043f\u0443\u0441\u043a_binutils_pass_2&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:82,&amp;quot;secid&amp;quot;:66,&amp;quot;range&amp;quot;:&amp;quot;130620-132926&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit67&quot; id=&quot;🛠️_исправление_скрипта_packages_021-binutils-p2sh1&quot;&gt;🛠️ Исправление скрипта packages/021-binutils-p2.sh&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aiso_lfs_server%3Aiso_lfs_server&amp;amp;media=software:linux_server:iso_lfs_server:iso_lfs_server_x_48.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:iso_lfs_server:iso_lfs_server_x_48.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:iso_lfs_server:iso_lfs_server_x_48.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
Отличная работа с выводом grep! Вы вытащили корень проблемы. Ошибка на строке 384 лога: configure: error: could not determine x86_64-lfs-linux-gnu-ar interface [12.1].
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;🔍_в_чем_реальная_причина_сбоя&quot;&gt;🔍 В чем реальная причина сбоя&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Вы собираете второй проход Binutils, используя созданный кросс-компилятор (–host=$LFS_TGT) [12.1]. Скрипт конфигурации пытается запустить кросс-архиватор x86_64-lfs-linux-gnu-ar, чтобы проверить его интерфейс. Но система возвращает ошибку, потому что путь к вашему кросс-компилятору /mnt/lfs/tools/bin отсутствует в системной переменной PATH root-пользователя (eva) в текущей сессии терминала.&lt;br/&gt;

Поскольку в PATH нет кросс-инструментов, скрипт не может их вызвать, пугается и аварийно останавливает make [12.1].
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\ud83d\udee0\ufe0f \u0418\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u043a\u0440\u0438\u043f\u0442\u0430 packages\/021-binutils-p2.sh&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\ud83d\udee0\ufe0f_\u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435_\u0441\u043a\u0440\u0438\u043f\u0442\u0430_packages_021-binutils-p2sh1&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:84,&amp;quot;secid&amp;quot;:67,&amp;quot;range&amp;quot;:&amp;quot;132927-134245&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit68&quot; id=&quot;🛠️_исправление_и_запуск&quot;&gt;🛠️ Исправление и запуск&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Чтобы решить эту проблему раз и навсегда, нам нужно временно экспортировать правильный PATH с приоритетом для $LFS/tools/bin перед запуском сборки [12.1].Для этого даже не нужно менять скрипт пакета — достаточно импортировать путь в самом терминале хоста хост-системы. Выполните следующие команды последовательно:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=84&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;co0&quot;&gt;# 1. Экспортируем путь к кросс-компилятору Главы 5 в системное окружение&lt;/span&gt;
&lt;span class=&quot;kw3&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;PATH&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tools&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;bin:&lt;span class=&quot;re1&quot;&gt;$PATH&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# 2. Проверяем, что система теперь видит нужную утилиту (должен отобразиться путь)&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;which&lt;/span&gt; x86_64-lfs-linux-gnu-ar
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# 3. Запускаем сборку пакета заново&lt;/span&gt;
&lt;span class=&quot;kw3&quot;&gt;cd&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder
.&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;scripts&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;build.sh binutils-&lt;span class=&quot;nu0&quot;&gt;2.42&lt;/span&gt;.tar.xz packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;021-binutils-p2.sh&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
После добавления пути конфигуратор успешно определит интерфейс архиватора ar, и компиляция второго прохода Binutils прорвется к финалу [12.1].
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\ud83d\udee0\ufe0f \u0418\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0438 \u0437\u0430\u043f\u0443\u0441\u043a&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\ud83d\udee0\ufe0f_\u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435_\u0438_\u0437\u0430\u043f\u0443\u0441\u043a&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:84,&amp;quot;secid&amp;quot;:68,&amp;quot;range&amp;quot;:&amp;quot;134246-135627&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit69&quot; id=&quot;успех&quot;&gt;Успех!!!!&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0423\u0441\u043f\u0435\u0445!!!!&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0443\u0441\u043f\u0435\u0445&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:85,&amp;quot;secid&amp;quot;:69,&amp;quot;range&amp;quot;:&amp;quot;135628-135667&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit70&quot; id=&quot;🛠️_превентивная_подготовка_скрипта_packages_022-gcc-p2sh&quot;&gt;🛠️ Превентивная подготовка скрипта packages/022-gcc-p2.sh&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Так как сборка второго прохода GCC очень чувствительна к окружению и путям, мы должны убедиться, что внутри сценария нет скрытых ловушек, а сам компилятор правильно зафиксирует пути к новой Glibc [12.1].&lt;br/&gt;

Давайте обновим файл 022-gcc-p2.sh эталонным кодом, который учитывает очистку флагов хоста (unset) и правильную сборку внутренних математических библиотек (mpfr, gmp, mpc) [12.1]:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=85&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;EOF&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;022-gcc-p2.sh
&lt;span class=&quot;co0&quot;&gt;#!/bin/bash&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Очищаем переменные хоста, чтобы они не ломали кросс-компиляцию&lt;/span&gt;
&lt;span class=&quot;kw3&quot;&gt;unset&lt;/span&gt; CFLAGS
&lt;span class=&quot;kw3&quot;&gt;unset&lt;/span&gt; CXXFLAGS
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Распаковываем математические библиотеки внутрь корня GCC&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;tar&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-xf&lt;/span&gt; ..&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mpfr-4.2.1.tar.xz &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;mv&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-v&lt;/span&gt; mpfr-4.2.1 mpfr
&lt;span class=&quot;kw2&quot;&gt;tar&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-xf&lt;/span&gt; ..&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;gmp-6.3.0.tar.xz  &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;mv&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-v&lt;/span&gt; gmp-6.3.0 gmp
&lt;span class=&quot;kw2&quot;&gt;tar&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-xf&lt;/span&gt; ..&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mpc-1.3.1.tar.gz  &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;mv&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-v&lt;/span&gt; mpc-1.3.1 mpc
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Настройка динамического линкера под x86_64&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;case&lt;/span&gt; $&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;uname&lt;/span&gt; -m&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt;
  x86_64&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw2&quot;&gt;sed&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;/m64=/s/lib64/lib/&#039;&lt;/span&gt; -i.bak gcc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;config&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;i386&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;t-linux64
 &lt;span class=&quot;sy0&quot;&gt;;;&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;esac&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Отключаем устаревший макрос Dialogue, если он присутствует&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;sed&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;/Dialogue on/d&#039;&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-i&lt;/span&gt; gcc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;cp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;cfns.gperf &lt;span class=&quot;sy0&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;true&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-v&lt;/span&gt; build
&lt;span class=&quot;kw3&quot;&gt;cd&lt;/span&gt;       build
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Предотвращаем конфликты сборки лимитов libstdc++&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-pv&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$LFS_TGT&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;libstdc++-v3&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;src&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;.libs
&amp;nbsp;
..&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;configure \
    &lt;span class=&quot;re5&quot;&gt;--build&lt;/span&gt;=$&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;..&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;config.guess&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; \
    &lt;span class=&quot;re5&quot;&gt;--host&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS_TGT&lt;/span&gt; \
    &lt;span class=&quot;re5&quot;&gt;--target&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS_TGT&lt;/span&gt; \
    &lt;span class=&quot;re5&quot;&gt;--prefix&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr \
    &lt;span class=&quot;re5&quot;&gt;--with-glibc-version&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;2.39&lt;/span&gt; \
    &lt;span class=&quot;re5&quot;&gt;--with-sysroot&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt; \
    &lt;span class=&quot;re5&quot;&gt;--enable-languages&lt;/span&gt;=c,&lt;span class=&quot;kw2&quot;&gt;c++&lt;/span&gt; \
    &lt;span class=&quot;re5&quot;&gt;--enable-default-pie&lt;/span&gt; \
    &lt;span class=&quot;re5&quot;&gt;--enable-default-ssp&lt;/span&gt; \
    &lt;span class=&quot;re5&quot;&gt;--disable-nls&lt;/span&gt; \
    &lt;span class=&quot;re5&quot;&gt;--disable-multilib&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$MAKEFLAGS&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;DESTDIR&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;install&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Создаем критически важную ссылку на cc, чтобы chroot-среда видела компилятор по умолчанию&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;ln&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-sfv&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;gcc&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;bin&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;cc&lt;/span&gt;
EOF
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;chmod&lt;/span&gt; +x ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;022-gcc-p2.sh&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h4 id=&quot;🚀_запуск_финальной_компиляции_дня_5&quot;&gt;🚀 Запуск финальной компиляции Дня 5&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Поскольку нам критически важно сохранить измененный PATH (в котором находится x86_64-lfs-linux-gnu-ar), мы запустим этот пакет напрямую через движок сборки в текущей сессии терминала [12.1]:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=86&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;cd&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder
.&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;scripts&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;build.sh gcc-13.2.0.tar.xz packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;022-gcc-p2.sh&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h5 id=&quot;⏳_вниманиеэтот_пакет_абсолютный_рекордсмен_по_времени_сборки_компилятор_будет_собирать_сам_себя_используя_новые_инструменты_процесс_займет_продолжительное_время_в_зависимости_от_мощности_вашего_процессора&quot;&gt;⏳ Внимание: Этот пакет — абсолютный рекордсмен по времени сборки. Компилятор будет собирать сам себя, используя новые инструменты. Процесс займет продолжительное время в зависимости от мощности вашего процессора&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;📉_что_происходит_во_время_компиляции_gcc_pass_2&quot;&gt;📉 Что происходит во время компиляции GCC Pass 2&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Сборка выполняет самый тяжелый объем работы в этой главе:Компилируются внутренние библиотеки точной математики (gmp, mpfr, mpc) [12.1].&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Создаются чистые компиляторы cc1 и cc1plus, ориентированные на новые системные каталоги [12.1].&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Собирается полноценная разделяемая библиотека libstdc++ [12.1].&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; Итоговые исполняемые файлы прописываются в каталог /mnt/lfs/usr/bin/ [12.1].&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;plugin_note noteshadow&quot;&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Aiso_lfs_server%3Aiso_lfs_server&amp;amp;media=software:linux_server:iso_lfs_server:iso_lfs_server_x_50.png&quot; class=&quot;media&quot; title=&quot;software:linux_server:iso_lfs_server:iso_lfs_server_x_50.png&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:iso_lfs_server:iso_lfs_server_x_50.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;

&lt;/div&gt;
&lt;p&gt;
На скриншоте зафиксирована классическая ошибка компиляции GCC версии 13 на современных дистрибутивах хост-систем: error: &amp;#039;flags&amp;#039; may be used uninitialized [-Werror=maybe-uninitialized] в файле sanitizer_common/sanitizer_posix.cpp.
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;🔍_в_чем_причина_ошибки3&quot;&gt;🔍 В чем причина ошибки&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Компилятор хоста Ubuntu задействует новые, более строгие правила статического анализа кода [12.1]. Он обнаружил потенциальную проблему, когда переменная flags внутри библиотеки libsanitizer может остаться неинициализированной [12.1]. Из-за встроенного флага -Werror это предупреждение принудительно превратилось в критическую ошибку, которая и остановила весь make [12.1].
&lt;br/&gt;

Поскольку эта внутренняя библиотека отладки (libsanitizer) не критична для работы базового кросс-компилятора временной среды, а книга LFS 12.1 рекомендует полностью подавлять такие ошибки компилятора хоста [12.1], мы решим этот вопрос радикально и надежно. Мы передадим флаг отключения санитайзеров –disable-libsanitizer на этапе конфигурации GCC Pass 2 [12.1].
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\ud83d\udee0\ufe0f \u041f\u0440\u0435\u0432\u0435\u043d\u0442\u0438\u0432\u043d\u0430\u044f \u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u0441\u043a\u0440\u0438\u043f\u0442\u0430 packages\/022-gcc-p2.sh&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\ud83d\udee0\ufe0f_\u043f\u0440\u0435\u0432\u0435\u043d\u0442\u0438\u0432\u043d\u0430\u044f_\u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430_\u0441\u043a\u0440\u0438\u043f\u0442\u0430_packages_022-gcc-p2sh&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:85,&amp;quot;secid&amp;quot;:70,&amp;quot;range&amp;quot;:&amp;quot;135668-141369&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit71&quot; id=&quot;🛠️_модификация_скрипта_packages_022-gcc-p2sh&quot;&gt;🛠️ Модификация скрипта packages/022-gcc-p2.sh&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Выполните команду в терминале хоста для полной перезаписи сценария. В конфигуратор добавлен официальный флаг обхода проблемных отладочных библиотек:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=87&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cat&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;EOF&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;022-gcc-p2.sh
&lt;span class=&quot;co0&quot;&gt;#!/bin/bash&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Очищаем переменные хоста, чтобы они не ломали кросс-компиляцию&lt;/span&gt;
&lt;span class=&quot;kw3&quot;&gt;unset&lt;/span&gt; CFLAGS
&lt;span class=&quot;kw3&quot;&gt;unset&lt;/span&gt; CXXFLAGS
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Распаковываем математические библиотеки внутрь корня GCC&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;tar&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-xf&lt;/span&gt; ..&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mpfr-4.2.1.tar.xz &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;mv&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-v&lt;/span&gt; mpfr-4.2.1 mpfr
&lt;span class=&quot;kw2&quot;&gt;tar&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-xf&lt;/span&gt; ..&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;gmp-6.3.0.tar.xz  &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;mv&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-v&lt;/span&gt; gmp-6.3.0 gmp
&lt;span class=&quot;kw2&quot;&gt;tar&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-xf&lt;/span&gt; ..&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mpc-1.3.1.tar.gz  &lt;span class=&quot;sy0&quot;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;mv&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-v&lt;/span&gt; mpc-1.3.1 mpc
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Настройка динамического линкера под x86_64&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;case&lt;/span&gt; $&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;uname&lt;/span&gt; -m&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;in&lt;/span&gt;
  x86_64&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
    &lt;span class=&quot;kw2&quot;&gt;sed&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-e&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;/m64=/s/lib64/lib/&#039;&lt;/span&gt; -i.bak gcc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;config&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;i386&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;t-linux64
 &lt;span class=&quot;sy0&quot;&gt;;;&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;esac&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Отключаем устаревший макрос Dialogue, если он присутствует&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;sed&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;/Dialogue on/d&#039;&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-i&lt;/span&gt; gcc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;cp&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;cfns.gperf &lt;span class=&quot;sy0&quot;&gt;||&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;true&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-v&lt;/span&gt; build
&lt;span class=&quot;kw3&quot;&gt;cd&lt;/span&gt;       build
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Предотвращаем конфликты сборки лимитов libstdc++&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;mkdir&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-pv&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$LFS_TGT&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;libstdc++-v3&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;src&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;.libs
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# --disable-libsanitizer отключает проблемный модуль отладки памяти&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# --disable-werror гарантирует, что мелкие предупреждения не сорвут сборку&lt;/span&gt;
..&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;configure \
    &lt;span class=&quot;re5&quot;&gt;--build&lt;/span&gt;=$&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;..&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;config.guess&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; \
    &lt;span class=&quot;re5&quot;&gt;--host&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS_TGT&lt;/span&gt; \
    &lt;span class=&quot;re5&quot;&gt;--target&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS_TGT&lt;/span&gt; \
    &lt;span class=&quot;re5&quot;&gt;--prefix&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr \
    &lt;span class=&quot;re5&quot;&gt;--with-glibc-version&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;2.39&lt;/span&gt; \
    &lt;span class=&quot;re5&quot;&gt;--with-sysroot&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt; \
    &lt;span class=&quot;re5&quot;&gt;--enable-languages&lt;/span&gt;=c,&lt;span class=&quot;kw2&quot;&gt;c++&lt;/span&gt; \
    &lt;span class=&quot;re5&quot;&gt;--enable-default-pie&lt;/span&gt; \
    &lt;span class=&quot;re5&quot;&gt;--enable-default-ssp&lt;/span&gt; \
    &lt;span class=&quot;re5&quot;&gt;--disable-nls&lt;/span&gt; \
    &lt;span class=&quot;re5&quot;&gt;--disable-multilib&lt;/span&gt; \
    &lt;span class=&quot;re5&quot;&gt;--disable-libsanitizer&lt;/span&gt; \
    &lt;span class=&quot;re5&quot;&gt;--disable-werror&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$MAKEFLAGS&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;DESTDIR&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;install&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Создаем критически важную ссылку на cc, чтобы chroot-среда видела компилятор по умолчанию&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;ln&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-sfv&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;gcc&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;bin&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;cc&lt;/span&gt;
EOF
&amp;nbsp;
&lt;span class=&quot;kw2&quot;&gt;chmod&lt;/span&gt; +x ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;022-gcc-p2.sh&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;/div&gt;

&lt;h4 id=&quot;🚀_повторный_запуск_компиляции&quot;&gt;🚀 Повторный запуск компиляции&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Так как при падении важный экспорт переменной PATH мог сброситься в текущей сессии вашего терминала, выполните команду вместе с принудительным экспортом, чтобы гарантировать видимость утилит кросс-компилятора [12.1]:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wwoss.direct.quickconnect.to/doku.php?do=export_code&amp;amp;id=software:linux_server:iso_lfs_server:iso_lfs_server&amp;amp;codeblock=88&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_&quot;&gt;#bash&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;cd&lt;/span&gt; ~&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;lfs-builder
&lt;span class=&quot;kw3&quot;&gt;export&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;PATH&lt;/span&gt;=&lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tools&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;bin:&lt;span class=&quot;re1&quot;&gt;$PATH&lt;/span&gt;
.&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;scripts&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;build.sh gcc-13.2.0.tar.xz packages&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;022-gcc-p2.sh&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
Теперь компилятор хоста полностью пропустит сборку проблемной библиотеки libsanitizer, преодолеет этот барьер и успешно доведет компиляцию второго прохода GCC до финального победного статуса [12.1].
&lt;br/&gt;

&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\ud83d\udee0\ufe0f \u041c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f \u0441\u043a\u0440\u0438\u043f\u0442\u0430 packages\/022-gcc-p2.sh&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\ud83d\udee0\ufe0f_\u043c\u043e\u0434\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f_\u0441\u043a\u0440\u0438\u043f\u0442\u0430_packages_022-gcc-p2sh&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:87,&amp;quot;secid&amp;quot;:71,&amp;quot;range&amp;quot;:&amp;quot;141370-144546&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit72&quot; id=&quot;день_7&quot;&gt;День 7&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
 Памятка для продолжения: Где мы находимся и с чего начать завтраЧтобы завтра мгновенно войти в рабочий ритм и продолжить проект без потери контекста, ниже приведено полное техническое описание текущего состояния и пошаговый план старта Дня 6.📂 1. Состояние инфраструктуры на момент остановкиКаталог /mnt/lfs (Диск sdb1): Полностью сформирован «каркас» будущей операционной системы [12.1]. Внутри /mnt/lfs/usr/bin, /mnt/lfs/usr/lib и /mnt/lfs/tools находятся полностью независимые компилятор GCC 13.2.0, утилиты Binutils 2.42, библиотека Glibc 2.39 и 15 базовых утилит автоматизации (Bash, Make, Sed, Tar и др.) [12.1].Каталог ~/lfs-builder (Хост Ubuntu 24.04): Папка packages/ содержит эталонные скрипты с 001 по 022. Все они отработали успешно. Папка scripts/ содержит исправленный движок build.sh, диспетчер run_day5.sh и готовые утилиты для входа в chroot и создания бэкапов.Резервные копии (~/lfs-backups/): Созданы два архива — слепок компилятора первого прохода и финальный слепок всей корневой системы lfs-system-day5-final.tar.xz.🗺️ 2. План действий на завтра: День 6 (Переход в Chroot)Завтра мы полностью изолируем проект от хост-системы. Мы больше не будем использовать компиляторы вашей Ubuntu. Все последующие пакеты будут собираться «внутри себя» [12.1].Пошаговый алгоритм старта следующего дня:Шаг 1. Проверка монтирования диска:После включения машины убедитесь, что диск sdb1 стабильно примонтирован в /mnt/lfs (через вашу рабочую конфигурацию fstab):bashdf -h | grep lfs
&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0414\u0435\u043d\u044c 7&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0434\u0435\u043d\u044c_7&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:89,&amp;quot;secid&amp;quot;:72,&amp;quot;range&amp;quot;:&amp;quot;144547-147099&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit73&quot; id=&quot;🔑_план_на_день_6изоляция_и_подготовка_chroot_глава_7_lfs&quot;&gt;🔑 ПЛАН НА ДЕНЬ 6: ИЗОЛЯЦИЯ И ПОДГОТОВКА CHROOT (Глава 7 LFS)&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Сегодня мы полностью разрываем связь с хост-системой Ubuntu. Все дальнейшие действия происходят внутри изолированной chroot-среды, где ваш диск /mnt/lfs станет корневым разделом / [12.1].Сценарий входа scripts/chroot_enter.sh уже готов, поэтому мы начинаем с выполнения следующих шагов.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\ud83d\udd11 \u041f\u041b\u0410\u041d \u041d\u0410 \u0414\u0415\u041d\u042c 6: \u0418\u0417\u041e\u041b\u042f\u0426\u0418\u042f \u0418 \u041f\u041e\u0414\u0413\u041e\u0422\u041e\u0412\u041a\u0410 CHROOT (\u0413\u043b\u0430\u0432\u0430 7 LFS)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\ud83d\udd11_\u043f\u043b\u0430\u043d_\u043d\u0430_\u0434\u0435\u043d\u044c_6\u0438\u0437\u043e\u043b\u044f\u0446\u0438\u044f_\u0438_\u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430_chroot_\u0433\u043b\u0430\u0432\u0430_7_lfs&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:89,&amp;quot;secid&amp;quot;:73,&amp;quot;range&amp;quot;:&amp;quot;147100-147691&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit74&quot; id=&quot;🛠️_создание_и_запуск_скрипта_scripts_chroot_entersh&quot;&gt;🛠️ Создание и запуск скрипта scripts/chroot_enter.sh&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Выполните эту команду в терминале от пользователя eva. Она запишет файл, выдаст права на исполнение и сразу запустит процесс входа:
Используйте код с осторожностью.Шаг 2. Вход в изолированную chroot-среду:Запустите подготовленный скрипт. Он автоматически примонтирует виртуальные файловые системы ядра хоста (/dev, /proc, /sys) внутрь вашего диска и переключит корень системы [12.1]:bashcd ~/lfs-builder
./scripts/chroot_enter.sh
Используйте код с осторожностью.Ваш терминал изменит вид на: (lfs chroot) root:/#. С этого момента вы находитесь внутри своего собственного Linux-сервера [12.1].Шаг 3. Создание базовой структуры и конфигурации (Глава 7 LFS):Прямо внутри chroot-окружения мы создадим системные файлы пользователей и групп, настроим права доступа и инициализируем пустые файлы системных логов, чтобы полноценный make install финальных пакетов не падал из-за отсутствия пользователя root или группы wheel [12.1].
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\ud83d\udee0\ufe0f \u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0438 \u0437\u0430\u043f\u0443\u0441\u043a \u0441\u043a\u0440\u0438\u043f\u0442\u0430 scripts\/chroot_enter.sh&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\ud83d\udee0\ufe0f_\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435_\u0438_\u0437\u0430\u043f\u0443\u0441\u043a_\u0441\u043a\u0440\u0438\u043f\u0442\u0430_scripts_chroot_entersh&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:89,&amp;quot;secid&amp;quot;:74,&amp;quot;range&amp;quot;:&amp;quot;147692-149344&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit75&quot; id=&quot;написание_скриптов_для_binutils_pass_1_и_gcc_pass_1&quot;&gt;Написание скриптов для Binutils (Pass 1) и GCC (Pass 1).&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432 \u0434\u043b\u044f Binutils (Pass 1) \u0438 GCC (Pass 1).&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043d\u0430\u043f\u0438\u0441\u0430\u043d\u0438\u0435_\u0441\u043a\u0440\u0438\u043f\u0442\u043e\u0432_\u0434\u043b\u044f_binutils_pass_1_\u0438_gcc_pass_1&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:89,&amp;quot;secid&amp;quot;:75,&amp;quot;range&amp;quot;:&amp;quot;149345-149434&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit76&quot; id=&quot;запуск_и_отладка_это_самые_долгие_компиляции&quot;&gt;Запуск и отладка. Это самые долгие компиляции.&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0417\u0430\u043f\u0443\u0441\u043a \u0438 \u043e\u0442\u043b\u0430\u0434\u043a\u0430. \u042d\u0442\u043e \u0441\u0430\u043c\u044b\u0435 \u0434\u043e\u043b\u0433\u0438\u0435 \u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438.&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0437\u0430\u043f\u0443\u0441\u043a_\u0438_\u043e\u0442\u043b\u0430\u0434\u043a\u0430_\u044d\u0442\u043e_\u0441\u0430\u043c\u044b\u0435_\u0434\u043e\u043b\u0433\u0438\u0435_\u043a\u043e\u043c\u043f\u0438\u043b\u044f\u0446\u0438\u0438&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:89,&amp;quot;secid&amp;quot;:76,&amp;quot;range&amp;quot;:&amp;quot;149435-149531&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit77&quot; id=&quot;день_5завершение_временных_инструментов_глава_61&quot;&gt;День 5: Завершение временных инструментов (Глава 6).&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0414\u0435\u043d\u044c 5: \u0417\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445 \u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432 (\u0413\u043b\u0430\u0432\u0430 6).&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0434\u0435\u043d\u044c_5\u0437\u0430\u0432\u0435\u0440\u0448\u0435\u043d\u0438\u0435_\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u044b\u0445_\u0438\u043d\u0441\u0442\u0440\u0443\u043c\u0435\u043d\u0442\u043e\u0432_\u0433\u043b\u0430\u0432\u0430_61&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:89,&amp;quot;secid&amp;quot;:77,&amp;quot;range&amp;quot;:&amp;quot;149532-149638&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit78&quot; id=&quot;сборка_оставшихся_утилит_m4_ncurses_bash_coreutils_и_др_работающих_во_временной_папке&quot;&gt;Сборка оставшихся утилит (M4, Ncurses, Bash, Coreutils и др.), работающих во временной папке.&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u0431\u043e\u0440\u043a\u0430 \u043e\u0441\u0442\u0430\u0432\u0448\u0438\u0445\u0441\u044f \u0443\u0442\u0438\u043b\u0438\u0442 (M4, Ncurses, Bash, Coreutils \u0438 \u0434\u0440.), \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0445 \u0432\u043e \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439 \u043f\u0430\u043f\u043a\u0435.&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u0431\u043e\u0440\u043a\u0430_\u043e\u0441\u0442\u0430\u0432\u0448\u0438\u0445\u0441\u044f_\u0443\u0442\u0438\u043b\u0438\u0442_m4_ncurses_bash_coreutils_\u0438_\u0434\u0440_\u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0445_\u0432\u043e_\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0439_\u043f\u0430\u043f\u043a\u0435&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:89,&amp;quot;secid&amp;quot;:78,&amp;quot;range&amp;quot;:&amp;quot;149639-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Thu, 14 May 2026 17:18:32 +0000</pubDate>
        </item>
    </channel>
</rss>
