<?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:dfs</title>
        <description></description>
        <link>https://wwoss.direct.quickconnect.to/</link>
        <lastBuildDate>Sat, 11 Apr 2026 08:29:36 +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>dfs</title>
            <link>https://wwoss.direct.quickconnect.to/doku.php?id=software:linux_server:dfs:dfs&amp;rev=1743015338</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;debian-from-scratch&quot;&gt;debian-from-scratch&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Руководство по обучению пользователей Linux From Scratch созданию системы Debian.
&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;debian-from-scratch&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;debian-from-scratch&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-165&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;почему_debian_с_нуля&quot;&gt;Почему Debian с нуля?&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Оригинальное руководство &lt;a href=&quot;https://en.wikipedia.org/wiki/Linux_From_Scratch&quot; class=&quot;urlextern&quot; title=&quot;https://en.wikipedia.org/wiki/Linux_From_Scratch&quot; rel=&quot;ugc nofollow&quot;&gt;Linux from Scratch&lt;/a&gt; намеренно неопределенно в отношении того, какую технику следует использовать для управления зависимостями программного обеспечения. Предложения, которые оно дает, хотя, несомненно, являются интересными упражнениями по управлению пакетами, не обязательно являются сложными ответами для системного администратора, который намерен эффективно управлять своим временем.
&lt;/p&gt;

&lt;p&gt;
Недостатком компиляции всего для создания полноценной системы является время. После того, как кто-то впервые построит систему LFS, он/она склонны понимать, что управление зависимостями может быть трудной задачей, мягко говоря. Прохождение невыносимых упражнений по поиску десятков, а возможно, и сотен пакетов, сопоставление зависимостей, настройка и установка этих зависимостей в правильном порядке, только для того, чтобы установить одну часть программного обеспечения, не является жизнеспособной альтернативой системному администратору, который ценит свое время.
&lt;/p&gt;

&lt;p&gt;
Ответ на эту проблему, очевидно, заключается в использовании менеджера пакетов. Существует множество доступных менеджеров пакетов, наиболее популярными из которых являются менеджеры пакетов на основе Debian (dpkg и apt) и менеджеры пакетов на основе Red Hat (rpm и yum).
&lt;/p&gt;

&lt;p&gt;
Это руководство научит вас собирать систему с использованием набора инструментов управления пакетами Debian, используя временную системную среду, созданную в Linux From Scratch.
&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\u043e\u0447\u0435\u043c\u0443 Debian \u0441 \u043d\u0443\u043b\u044f?&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u043e\u0447\u0435\u043c\u0443_debian_\u0441_\u043d\u0443\u043b\u044f&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;166-2837&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;цель_этого_проекта&quot;&gt;Цель этого проекта&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Я решил сделать это руководство, потому что я видел ужасно старые руководства в Интернете, обучающие других, как заставить dpkg и apt работать на их собственном Linux, и люди спрашивали на различных форумах, как установить dpkg и apt, но не получали необходимой помощи. Эти руководства устарели и больше не содержат актуальной информации, что я намерен исправить здесь, в этом руководстве.
&lt;/p&gt;

&lt;p&gt;
Целью данного проекта является создание ресурса сообщества, призванного помочь тем, кто заинтересован в создании собственной системы с нуля, в полной мере используя возможности пакета управления пакетами Debian, dpkg и apt, для решения проблем установки и управления зависимостями пакетов.
&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;\u0426\u0435\u043b\u044c \u044d\u0442\u043e\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0446\u0435\u043b\u044c_\u044d\u0442\u043e\u0433\u043e_\u043f\u0440\u043e\u0435\u043a\u0442\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;2838-4102&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;как_пользоваться_этим_руководством&quot;&gt;Как пользоваться этим руководством?&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Это руководство предназначено для использования после завершения всех инструкций до конца Главы 5 &lt;a href=&quot;http://www.linuxfromscratch.org/lfs/view/7.9/&quot; class=&quot;urlextern&quot; title=&quot;http://www.linuxfromscratch.org/lfs/view/7.9/&quot; rel=&quot;ugc nofollow&quot;&gt;Linux From Scratch book, version 7.9&lt;/a&gt;. Сначала следует следовать инструкциям оригинальной книги LFS и построить временную систему, которая создается в Главе 5 LFS. Требуется иметь полностью функциональную временную систему, которая является результатом Главы 5.
&lt;/p&gt;

&lt;p&gt;
После завершения предварительной подготовки следует обратиться к данному руководству и следовать ему шаг за шагом.
&lt;/p&gt;

&lt;p&gt;
Как и в оригинальном руководстве LFS, при работе с пакетами, которые нужно скомпилировать, каждый раздел уже предполагает, что вы извлекли исходный код и изменили свой основной каталог на основную папку извлеченного контента. Однако при работе с файлами .deb такое извлечение не требуется. Нужно только следовать инструкциям, имея файл .deb в вашем текущем каталоге.
&lt;/p&gt;

&lt;p&gt;
После завершения предварительной подготовки следует обратиться к данному руководству и следовать ему шаг за шагом.
&lt;/p&gt;

&lt;p&gt;
Как и в оригинальном руководстве LFS, при работе с пакетами, которые нужно скомпилировать, каждый раздел уже предполагает, что вы извлекли исходный код и изменили свой основной каталог на основную папку извлеченного контента. Однако при работе с файлами .deb такое извлечение не требуется. Нужно только следовать инструкциям, имея файл .deb в вашем текущем каталоге..
&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\u0430\u043a \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f \u044d\u0442\u0438\u043c \u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e\u043c?&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043a\u0430\u043a_\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c\u0441\u044f_\u044d\u0442\u0438\u043c_\u0440\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e\u043c&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;4103-6617&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit5&quot; id=&quot;обзор_нашего_метода_создания_собственной_системы_debian&quot;&gt;Обзор нашего метода создания собственной системы Debian&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
В оригинальной книге Linux From Scratch мы создали кросс-цепочку инструментов, используя собственную цепочку инструментов нашей системы. Затем мы использовали эту кросс-цепочку инструментов для создания собственной цепочки инструментов, которая в итоге стала временной системной средой &lt;code&gt;/tools&lt;/code&gt;. Это было целью Главы 5. Затем мы использовали эту временную систему для создания нашей окончательной системы, что было целью Главы 6.
&lt;/p&gt;

&lt;p&gt;
В Debian From Scratch мы отталкиваемся от конца Главы 5. Вместо того чтобы использовать набор инструментов и другие утилиты, установленные в /toolsдля компиляции каждой отдельной части окончательной системы, мы вместо этого используем этот набор инструментов для компиляции и установки менеджера пакетов Debian, dpkg, в качестве первой части нашей окончательной системы.
&lt;/p&gt;

&lt;p&gt;
Затем мы делаем некоторый взлом зависимостей, чтобы удовлетворить все оставшиеся зависимости, необходимые для установки apt. Это позволяет нам полагаться на apt для подавляющего большинства задач, связанных с установкой программного обеспечения на нашу новую систему, и позволяет нам избегать утомительного упражнения, которое представляет собой ручное управление зависимостями.
&lt;/p&gt;

&lt;p&gt;
Затем мы используем apt для установки всех базовых пакетов, необходимых для корректной работы системы, в правильном порядке, чтобы предотвратить возникновение проблем и поломку пакетов.
&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;\u041e\u0431\u0437\u043e\u0440 \u043d\u0430\u0448\u0435\u0433\u043e \u043c\u0435\u0442\u043e\u0434\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b Debian&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043e\u0431\u0437\u043e\u0440_\u043d\u0430\u0448\u0435\u0433\u043e_\u043c\u0435\u0442\u043e\u0434\u0430_\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f_\u0441\u043e\u0431\u0441\u0442\u0432\u0435\u043d\u043d\u043e\u0439_\u0441\u0438\u0441\u0442\u0435\u043c\u044b_debian&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;6618-9196&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;
Давайте начнем с использования нашей хост-системы для загрузки необходимых нам пакетов и размещения их где-нибудь внутри нашего раздела $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;\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0432\u0441\u0435\u0445 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0445 \u043f\u0430\u043a\u0435\u0442\u043e\u0432&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435_\u0432\u0441\u0435\u0445_\u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0445_\u043f\u0430\u043a\u0435\u0442\u043e\u0432&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;9197-9533&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit7&quot; id=&quot;исходные_файлы&quot;&gt;исходные файлы&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
The only source file you will need to download is the source for dpkg:
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://http.debian.net/debian/pool/main/d/dpkg/dpkg_1.17.27.tar.xz&quot; class=&quot;urlextern&quot; title=&quot;http://http.debian.net/debian/pool/main/d/dpkg/dpkg_1.17.27.tar.xz&quot; rel=&quot;ugc nofollow&quot;&gt;dpkg&lt;/a&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;\u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435 \u0444\u0430\u0439\u043b\u044b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0438\u0441\u0445\u043e\u0434\u043d\u044b\u0435_\u0444\u0430\u0439\u043b\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;9534-9721&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit8&quot; id=&quot;deb_files&quot;&gt;.deb files&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

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

&lt;p&gt;
&lt;a href=&quot;https://packages.debian.org/jessie/apt&quot; class=&quot;urlextern&quot; title=&quot;https://packages.debian.org/jessie/apt&quot; rel=&quot;ugc nofollow&quot;&gt;apt&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://packages.debian.org/jessie/debian-archive-keyring&quot; class=&quot;urlextern&quot; title=&quot;https://packages.debian.org/jessie/debian-archive-keyring&quot; rel=&quot;ugc nofollow&quot;&gt;debian-archive-keyring&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://packages.debian.org/jessie/dpkg&quot; class=&quot;urlextern&quot; title=&quot;https://packages.debian.org/jessie/dpkg&quot; rel=&quot;ugc nofollow&quot;&gt;dpkg&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://packages.debian.org/jessie/gcc-4.9-base&quot; class=&quot;urlextern&quot; title=&quot;https://packages.debian.org/jessie/gcc-4.9-base&quot; rel=&quot;ugc nofollow&quot;&gt;gcc-4.9-base&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://packages.debian.org/jessie/gnupg&quot; class=&quot;urlextern&quot; title=&quot;https://packages.debian.org/jessie/gnupg&quot; rel=&quot;ugc nofollow&quot;&gt;gnupg&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://packages.debian.org/jessie/gpgv&quot; class=&quot;urlextern&quot; title=&quot;https://packages.debian.org/jessie/gpgv&quot; rel=&quot;ugc nofollow&quot;&gt;gpgv&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://packages.debian.org/jessie/libacl1&quot; class=&quot;urlextern&quot; title=&quot;https://packages.debian.org/jessie/libacl1&quot; rel=&quot;ugc nofollow&quot;&gt;libacl1&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://packages.debian.org/jessie/libapt-pkg4.12&quot; class=&quot;urlextern&quot; title=&quot;https://packages.debian.org/jessie/libapt-pkg4.12&quot; rel=&quot;ugc nofollow&quot;&gt;libapt-pkg4.12&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://packages.debian.org/jessie/libattr1&quot; class=&quot;urlextern&quot; title=&quot;https://packages.debian.org/jessie/libattr1&quot; rel=&quot;ugc nofollow&quot;&gt;libattr1&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://packages.debian.org/jessie/libbz2-1.0&quot; class=&quot;urlextern&quot; title=&quot;https://packages.debian.org/jessie/libbz2-1.0&quot; rel=&quot;ugc nofollow&quot;&gt;libbz2-1.0&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://packages.debian.org/jessie/libc6&quot; class=&quot;urlextern&quot; title=&quot;https://packages.debian.org/jessie/libc6&quot; rel=&quot;ugc nofollow&quot;&gt;libc6&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://packages.debian.org/jessie/libgcc1&quot; class=&quot;urlextern&quot; title=&quot;https://packages.debian.org/jessie/libgcc1&quot; rel=&quot;ugc nofollow&quot;&gt;libgcc1&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://packages.debian.org/jessie/liblzma5&quot; class=&quot;urlextern&quot; title=&quot;https://packages.debian.org/jessie/liblzma5&quot; rel=&quot;ugc nofollow&quot;&gt;liblzma5&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://packages.debian.org/jessie/libpcre3&quot; class=&quot;urlextern&quot; title=&quot;https://packages.debian.org/jessie/libpcre3&quot; rel=&quot;ugc nofollow&quot;&gt;libpcre3&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://packages.debian.org/jessie/libreadline6&quot; class=&quot;urlextern&quot; title=&quot;https://packages.debian.org/jessie/libreadline6&quot; rel=&quot;ugc nofollow&quot;&gt;libreadline6&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://packages.debian.org/jessie/libselinux1&quot; class=&quot;urlextern&quot; title=&quot;https://packages.debian.org/jessie/libselinux1&quot; rel=&quot;ugc nofollow&quot;&gt;libselinux1&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://packages.debian.org/jessie/libstdc++6&quot; class=&quot;urlextern&quot; title=&quot;https://packages.debian.org/jessie/libstdc++6&quot; rel=&quot;ugc nofollow&quot;&gt;libstdc++6&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://packages.debian.org/jessie/libtinfo5&quot; class=&quot;urlextern&quot; title=&quot;https://packages.debian.org/jessie/libtinfo5&quot; rel=&quot;ugc nofollow&quot;&gt;libtinfo5&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://packages.debian.org/jessie/libusb-0.1-4&quot; class=&quot;urlextern&quot; title=&quot;https://packages.debian.org/jessie/libusb-0.1-4&quot; rel=&quot;ugc nofollow&quot;&gt;libusb-0.1-4&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://packages.debian.org/jessie/multiarch-support&quot; class=&quot;urlextern&quot; title=&quot;https://packages.debian.org/jessie/multiarch-support&quot; rel=&quot;ugc nofollow&quot;&gt;multiarch-support&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://packages.debian.org/jessie/readline-common&quot; class=&quot;urlextern&quot; title=&quot;https://packages.debian.org/jessie/readline-common&quot; rel=&quot;ugc nofollow&quot;&gt;readline-common&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://packages.debian.org/jessie/tar&quot; class=&quot;urlextern&quot; title=&quot;https://packages.debian.org/jessie/tar&quot; rel=&quot;ugc nofollow&quot;&gt;tar&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://packages.debian.org/jessie/zlib1g&quot; class=&quot;urlextern&quot; title=&quot;https://packages.debian.org/jessie/zlib1g&quot; rel=&quot;ugc nofollow&quot;&gt;zlib1g&lt;/a&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;.deb files&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;deb_files&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;9722-11701&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit9&quot; id=&quot;создание_системы_debian_from_scratch&quot;&gt;Создание системы Debian From Scratch&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Все следующие команды необходимо выполнять как пользователь &lt;code&gt;root&lt;/code&gt;, то есть стать rootпользователем вашей хост-системы:
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;su&lt;/span&gt;&lt;/pre&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\u0438\u0441\u0442\u0435\u043c\u044b Debian From Scratch&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435_\u0441\u0438\u0441\u0442\u0435\u043c\u044b_debian_from_scratch&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;11702-12004&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit10&quot; id=&quot;подготовка_точек_монтирования_файловой_системы_виртуального_ядра&quot;&gt;Подготовка точек монтирования файловой системы виртуального ядра&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Сначала мы создаем каталоги, которые должны содержать виртуальные файловые системы ядра. Это файловые системы, которые находятся только в памяти и создаются динамически каждый раз при загрузке ядра.
&lt;/p&gt;

&lt;p&gt;
Каждый тип имеет свое назначение. &lt;code&gt;devpts&lt;/code&gt; Содержит файлы устройств для каждого псевдотерминала в вашей системе. &lt;code&gt;proc&lt;/code&gt; Содержит информацию о каждом отдельном процессе. &lt;code&gt;sysfs&lt;/code&gt; Содержит информацию о драйверах и устройствах. Это &lt;code&gt;tmpfs&lt;/code&gt; свободно используемое пространство, которое программы могут использовать для хранения информации в памяти.
&lt;/p&gt;

&lt;p&gt;
Поскольку мы еще не построили наше ядро, мы вынуждены использовать те, которые существуют в нашей хостовой системе, смонтировав их в соответствующих местах в нашей целевой системе. Когда наша система будет полностью построена, новое ядро ​​автоматически смонтирует эти файловые системы в соответствующих местах.
&lt;/p&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;re1&quot;&gt;$LFS&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;dev,proc,sys,run&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;mknod&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-m&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;600&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;console c &lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;mknod&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-m&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;666&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;null c &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;3&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;--bind&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev &lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev
&lt;span class=&quot;kw2&quot;&gt;mount&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-vt&lt;/span&gt; devpts devpts &lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;pts &lt;span class=&quot;re5&quot;&gt;-o&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;gid&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;,&lt;span class=&quot;re2&quot;&gt;mode&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;620&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;mount&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-vt&lt;/span&gt; proc proc &lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;proc
&lt;span class=&quot;kw2&quot;&gt;mount&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-vt&lt;/span&gt; sysfs sysfs &lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sys
&lt;span class=&quot;kw2&quot;&gt;mount&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-vt&lt;/span&gt; tmpfs tmpfs &lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;run
&amp;nbsp;
&lt;span class=&quot;kw1&quot;&gt;if&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-h&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;shm &lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;; &lt;span class=&quot;kw1&quot;&gt;then&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;$&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;readlink&lt;/span&gt; &lt;span class=&quot;re1&quot;&gt;$LFS&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;shm&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;fi&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430 \u0442\u043e\u0447\u0435\u043a \u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0433\u043e \u044f\u0434\u0440\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u043e\u0434\u0433\u043e\u0442\u043e\u0432\u043a\u0430_\u0442\u043e\u0447\u0435\u043a_\u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f_\u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439_\u0441\u0438\u0441\u0442\u0435\u043c\u044b_\u0432\u0438\u0440\u0442\u0443\u0430\u043b\u044c\u043d\u043e\u0433\u043e_\u044f\u0434\u0440\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:10,&amp;quot;range&amp;quot;:&amp;quot;12005-14079&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit11&quot; id=&quot;вход_в_нашу_среду_chroot&quot;&gt;Вход в нашу среду chroot&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Теперь мы должны, как &lt;code&gt;root&lt;/code&gt; пользователь нашей хостовой системы, войти в нашу базовую среду, изменив наш корневой каталог на корневой каталог конечной системы, и использовать временную среду, которую мы ранее построили, чтобы построить нашу конечную систему. Используйте следующую команду после того, как вы стали &lt;code&gt;root&lt;/code&gt; на своем хосте:
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;chroot&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es2&quot;&gt;$LFS&lt;/span&gt;&amp;quot;&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;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;env&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-i&lt;/span&gt; \
&lt;span class=&quot;re2&quot;&gt;HOME&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;root                  \
&lt;span class=&quot;re2&quot;&gt;TERM&lt;/span&gt;=&lt;span class=&quot;st0&quot;&gt;&amp;quot;&lt;span class=&quot;es2&quot;&gt;$TERM&lt;/span&gt;&amp;quot;&lt;/span&gt;                \
&lt;span class=&quot;re2&quot;&gt;PS1&lt;/span&gt;=&lt;span class=&quot;st_h&quot;&gt;&#039;\[\033[01m\][ \[\033[01;34m\]\u@\h\[\033[00m\]\[\033[01m\]]\[\033[01;32m\]\w\[\033[00m\]\n\[\033[01;34m\]$\[\033[00m\]&amp;gt; &#039;&lt;/span&gt; \
&lt;span class=&quot;re2&quot;&gt;PATH&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;bin:&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;sbin:&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;sy0&quot;&gt;/&lt;/span&gt;tools&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;bin:&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;tools&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sbin \
&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;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;bash&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--login&lt;/span&gt; +h&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0412\u0445\u043e\u0434 \u0432 \u043d\u0430\u0448\u0443 \u0441\u0440\u0435\u0434\u0443 chroot&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0432\u0445\u043e\u0434_\u0432_\u043d\u0430\u0448\u0443_\u0441\u0440\u0435\u0434\u0443_chroot&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:11,&amp;quot;range&amp;quot;:&amp;quot;14080-15072&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit12&quot; id=&quot;установка_dpkg&quot;&gt;Установка dpkg&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
With our `/tools` environment completely set up, we are ready to directly compile and install `dpkg` into our target environment. Replace the `build` variable with the appropriate architecture if it isn&amp;#039;t 64-bit (which I am assuming that it is):
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&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;--sysconfdir&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc &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;re5&quot;&gt;--build&lt;/span&gt;=x86_64-unknown-linux-gnu
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;install&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h4 id=&quot;создание_базы_данных_dpkg&quot;&gt;Создание базы данных dpkg&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Нам нужно создать &lt;code&gt;dpkg&lt;/code&gt; базу данных , которая представляет собой просто текстовый файл, расположенный в /var/lib/dpkg/status. &lt;code&gt;dpkg&lt;/code&gt; хранит всю информацию о пакете в этом файле, включая версию пакета, архитектуру, зависимости и т. д. В настоящее время он еще не существует. Без этого файла dpkg не будет работать правильно, поэтому важно создать его, прежде чем двигаться дальше.
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;touch&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;dpkg&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;status&lt;/pre&gt;

&lt;/div&gt;

&lt;h4 id=&quot;создание_временных_ссылок_ссылающихся_на_tools_bin_bash&quot;&gt;Создание временных ссылок, ссылающихся на /tools/bin/bash&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Для того, чтобы скрипты до и после установки, которые находятся внутри стандартного файла .deb, работали, они должны иметь доступ к оболочке. Обычно они указывают, используя /bin/shили /bin/bash. Без доступа к оболочке в точном месте, указанном в скрипте, скрипт установки завершится ошибкой, что приведет к ошибке установки самого пакета.
&lt;/p&gt;

&lt;p&gt;
Мы должны решить эту проблему, убедившись, что /binкаталог уже существует, а затем создав символические ссылки из этих двух мест на bash, который находится в нашей временной /toolsсреде.
&lt;/p&gt;

&lt;p&gt;
Когда мы дойдем до момента установки пакетов Debian «priority:essential», которые включают обе эти оболочки, эти символические ссылки будут перезаписаны собственными копиями этих двоичных файлов.
&lt;/p&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;bin
&lt;span class=&quot;kw2&quot;&gt;ln&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;sy0&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;bin&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;bash&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;ln&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;sy0&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;bin&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;sh&lt;/span&gt;&lt;/pre&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 dpkg&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430_dpkg&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:12,&amp;quot;range&amp;quot;:&amp;quot;15073-17719&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit13&quot; id=&quot;установка_apt&quot;&gt;Установка apt&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Прежде чем мы сможем установить &lt;code&gt;apt&lt;/code&gt; и использовать его для автоматической установки большей части остального системного программного обеспечения, нам сначала необходимо установить его непосредственные зависимости в нашей целевой системе.
&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Adfs%3Adfs&amp;amp;media=software:linux_server:dfs:68747470733a2f2f63646e2e7261776769742e636f6d2f73636f747477696c6c69616d626561736c65792f64656269616e2d66726f6d2d736372617463682f6d61737465722f696d616765732f6170742d646570656e64656e636965732e737667.svg&quot; class=&quot;media&quot; title=&quot;software:linux_server:dfs:68747470733a2f2f63646e2e7261776769742e636f6d2f73636f747477696c6c69616d626561736c65792f64656269616e2d66726f6d2d736372617463682f6d61737465722f696d616765732f6170742d646570656e64656e636965732e737667.svg&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:dfs:68747470733a2f2f63646e2e7261776769742e636f6d2f73636f747477696c6c69616d626561736c65792f64656269616e2d66726f6d2d736372617463682f6d61737465722f696d616765732f6170742d646570656e64656e636965732e737667.svg&quot; class=&quot;medialeft&quot; align=&quot;left&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;рисунок_2_дерево_зависимостей_apt_глубина_в_один_уровень&quot;&gt;Рисунок 2. Дерево зависимостей apt, глубина в один уровень&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
Каждая из этих непосредственных зависимостей имеет свой собственный набор зависимостей для выполнения. Мы начнем с завершения дерева зависимостей для &lt;code&gt;debian-archive-keyring&lt;/code&gt;. В отличие от процесса компиляции, необходимого для установки &lt;code&gt;dpkg&lt;/code&gt;, процесс, который мы теперь используем для установки программного обеспечения, заключается в установке . &lt;code&gt;deb&lt;/code&gt; файлов с использованием &lt;code&gt;dpkg&lt;/code&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;\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 apt&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430_apt&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:6,&amp;quot;secid&amp;quot;:13,&amp;quot;range&amp;quot;:&amp;quot;17720-19229&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit14&quot; id=&quot;установка_debian-archive-keyring&quot;&gt;Установка debian-archive-keyring&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Итак, мы начнем выполнять &lt;code&gt;dpkg&lt;/code&gt; зависимости , сначала установив &lt;code&gt;debian-archive-keyring&lt;/code&gt;. Однако здесь есть проблема - у нас есть циклическая зависимость, как показано ниже.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/detail.php?id=software%3Alinux_server%3Adfs%3Adfs&amp;amp;media=software:linux_server:dfs:68747470733a2f2f63646e2e7261776769742e636f6d2f73636f747477696c6c69616d626561736c65792f64656269616e2d66726f6d2d736372617463682f6d61737465722f696d616765732f64656269616e2d617263686976652d6b657972696e672d646570732e7376.svg&quot; class=&quot;media&quot; title=&quot;software:linux_server:dfs:68747470733a2f2f63646e2e7261776769742e636f6d2f73636f747477696c6c69616d626561736c65792f64656269616e2d66726f6d2d736372617463682f6d61737465722f696d616765732f64656269616e2d617263686976652d6b657972696e672d646570732e7376.svg&quot;&gt;&lt;img src=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:dfs:68747470733a2f2f63646e2e7261776769742e636f6d2f73636f747477696c6c69616d626561736c65792f64656269616e2d66726f6d2d736372617463682f6d61737465722f696d616765732f64656269616e2d617263686976652d6b657972696e672d646570732e7376.svg&quot; class=&quot;medialeft&quot; align=&quot;left&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;

&lt;h5 id=&quot;рисунок_3_дерево_зависимостей_debian-archive-keyring_циклическая_зависимость_выделена_красным&quot;&gt;Рисунок 3. Дерево зависимостей Debian-Archive-Keyring, циклическая зависимость выделена красным&lt;/h5&gt;
&lt;div class=&quot;level5&quot;&gt;

&lt;p&gt;
&lt;code&gt;libgcc1&lt;/code&gt; зависит от &lt;code&gt;multiarch-support&lt;/code&gt;, который зависит от &lt;code&gt;libc6&lt;/code&gt;, который зависит от &lt;code&gt;libgcc1&lt;/code&gt;. Это серьезная проблема, поскольку ни один из этих пакетов не будет полностью установлен без других.
&lt;/p&gt;

&lt;p&gt;
Чтобы решить эту, казалось бы, неразрешимую проблему, нам придется немного отступить от правил.
&lt;/p&gt;

&lt;p&gt;
Для начала нам необходимо установить &lt;code&gt;gcc-4.9-base&lt;/code&gt;:
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;dpkg&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-i&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;location of gcc-&lt;span class=&quot;nu0&quot;&gt;4.9&lt;/span&gt;-base&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
Затем нам нужно будет сначала установить один пакет частично:
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;dpkg&lt;/span&gt; - i &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;LOCATION_OF_libgcc1&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
ПРИМЕЧАНИЕ: Здесь вы получите сообщение об ошибке, содержащее ошибки, очень похожие на следующие:
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;Unpacking libc6:amd64 &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2.28&lt;/span&gt;-&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; over &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2.28&lt;/span&gt;-&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; ...
dpkg: dependency problems prevent configuration of libc6:amd64:
 libc6:amd64 depends on libgcc1; however:
  Package libgcc1:amd64 is not configured yet.
&amp;nbsp;
dpkg: error processing package libc6:amd64 &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;--install&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;:
 dependency problems - leaving unconfigured
Errors were encountered &lt;span class=&quot;kw1&quot;&gt;while&lt;/span&gt; processing:
 libc6:amd64&lt;/pre&gt;

&lt;p&gt;
Это нормально - на этом этапе вы не можете полностью установить ни один из этих пакетов. Вы можете установить их только частично, что мы исправим позже.
&lt;/p&gt;

&lt;p&gt;
После установки пакета настройте базу данных, чтобы убедиться, что она полностью установлена:
&lt;/p&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;-ir&lt;/span&gt; &lt;span class=&quot;st_h&quot;&gt;&#039;s/not-installed/installed/&#039;&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;dpkg&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;status&lt;/pre&gt;

&lt;p&gt;
Теперь установите два других пакета по порядку:
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;dpkg&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-i&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;location_of_multiarch&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;dpkg&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-i&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;location_of_libc6&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
И переустановите libgcc1, чтобы скрыть наш маленький некрасивый хак и завершить полную установку каждого пакета:
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;dpkg&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-i&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;--reinstall&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;location of libgcc1&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/pre&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 debian-archive-keyring&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430_debian-archive-keyring&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:6,&amp;quot;secid&amp;quot;:14,&amp;quot;range&amp;quot;:&amp;quot;19230-22362&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit15&quot; id=&quot;установка_остальных_зависимостей_apt&quot;&gt;Установка остальных зависимостей apt&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

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

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

&lt;p&gt;
Независимо от фактического дерева зависимостей, есть быстрый и грязный способ установить остальную часть всего дерева зависимостей apt. Просто выполните следующую команду и повторяйте ее столько раз, сколько вам нужно, пока dpkg не перестанет жаловаться:
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;dpkg&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-i&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;*&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
Здесь происходит следующее: dpkg попытается установить все программные пакеты в каталоге. Это неизбежно приведет к сбою, но не волнуйтесь. Просто повторяйте команду, пока все не будет установлено.
&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;
Что происходит, когда мы запускаем команду выше, так это то, что dpkg пытается установить каждый пакет, фактически не принимая во внимание дерево зависимостей. Таким образом, с каждым выполнением команды выше будет выполняться еще один уровень дерева зависимостей, пока не будет успешно подтверждено, что все дерево было установлено. Как только вы больше не получаете никаких ошибок от dpkg, это означает, что все было установлено.
&lt;/p&gt;

&lt;p&gt;
dpkg просто не так умен, как что-то вроде apt, которое автоматически создает карту зависимостей и устанавливает все необходимое программное обеспечение перед попыткой установки программного обеспечения, зависящего от указанного программного обеспечения.
&lt;/p&gt;

&lt;p&gt;
Вы также можете заметить, что сам dpkg является частью файлов .deb, которые необходимо установить. Не волнуйтесь, это ничего не сломает. У нас уже есть dpkg, но мы просто устанавливаем официальный пакет для обновления его собственной базы данных, поскольку база данных никогда не содержала себя как часть списка установленных пакетов.
&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;\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445 \u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439 apt&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430_\u043e\u0441\u0442\u0430\u043b\u044c\u043d\u044b\u0445_\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u043e\u0441\u0442\u0435\u0439_apt&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:13,&amp;quot;secid&amp;quot;:15,&amp;quot;range&amp;quot;:&amp;quot;22363-25980&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;
Чтобы быть абсолютно уверенным, вы можете выполнить следующую команду, которая подсчитывает, сколько пакетов dpkg считает установленными в своей базе данных:
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;echo&lt;/span&gt; $&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;$&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;dpkg&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-l&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;wc&lt;/span&gt; -l&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;-&lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
Если возвращается значение 23, то можно с уверенностью предположить, что все установлено так, как задумано.
&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;\u0414\u0432\u0430\u0436\u0434\u044b \u043f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435, \u0432\u0441\u0435 \u043b\u0438 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0434\u0432\u0430\u0436\u0434\u044b_\u043f\u0440\u043e\u0432\u0435\u0440\u044c\u0442\u0435_\u0432\u0441\u0435_\u043b\u0438_\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043b\u0435\u043d\u043e&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:14,&amp;quot;secid&amp;quot;:16,&amp;quot;range&amp;quot;:&amp;quot;25981-26595&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit17&quot; id=&quot;создание_файлов_конфигурации_сети&quot;&gt;Создание файлов конфигурации сети&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Прежде чем приступить к обновлению &lt;code&gt;apt&amp;#039;s&lt;/code&gt; кэша, нам необходимо определить как файлы конфигурации сети системы, так и список репозиториев программного обеспечения apt.
&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 \u0444\u0430\u0439\u043b\u043e\u0432 \u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0441\u0435\u0442\u0438&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435_\u0444\u0430\u0439\u043b\u043e\u0432_\u043a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438_\u0441\u0435\u0442\u0438&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:15,&amp;quot;secid&amp;quot;:17,&amp;quot;range&amp;quot;:&amp;quot;26596-26974&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit18&quot; id=&quot;etc_resolvconf&quot;&gt;/etc/resolv.conf&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;code&gt;/etc/resolv.conf&lt;/code&gt; это файл, необходимый для того, чтобы ваша система имела разрешение &lt;abbr title=&quot;Domain Name System&quot;&gt;DNS&lt;/abbr&gt;. Без этого файла разрешение обычно не происходит, что затрудняет обновление aptкэша устанавливаемых пакетов через &lt;code&gt;/etc/apt/sources.list&lt;/code&gt;.
&lt;/p&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;gt;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;resolv.conf &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;EOF&amp;quot;&lt;/span&gt;
nameserver 8.8.8.8
nameserver 8.8.4.4
EOF&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\/etc\/resolv.conf&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;etc_resolvconf&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:15,&amp;quot;secid&amp;quot;:18,&amp;quot;range&amp;quot;:&amp;quot;26975-27482&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit19&quot; id=&quot;etc_apt_sourceslist&quot;&gt;/etc/apt/sources.list&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;strong&gt;sources.list&lt;/strong&gt; — это файл, который &lt;code&gt;apt&lt;/code&gt; используется для связи с репозиториями, содержащими ваше программное обеспечение. Вы хотите использовать репозитории из одного и только одного дистрибутива как можно чаще, в противном случае вы рискуете нарушить четкую цепочку зависимостей вашего Debian и создать безумный беспорядок в вашей системе.
&lt;/p&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;gt;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;apt&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sources.list &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;EOF&amp;quot;&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# Debian Jessie main repos&lt;/span&gt;
deb http:&lt;span class=&quot;sy0&quot;&gt;//&lt;/span&gt;httpredir.debian.org&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;debian&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; jessie main  
deb-src http:&lt;span class=&quot;sy0&quot;&gt;//&lt;/span&gt;httpredir.debian.org&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;debian&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; jessie main  
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;#Debian Jessie security repos&lt;/span&gt;
deb http:&lt;span class=&quot;sy0&quot;&gt;//&lt;/span&gt;security.debian.org&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; jessie&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;updates main  
deb-src http:&lt;span class=&quot;sy0&quot;&gt;//&lt;/span&gt;security.debian.org&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; jessie&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;updates main  
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# non-free plugins&lt;/span&gt;
deb http:&lt;span class=&quot;sy0&quot;&gt;//&lt;/span&gt;http.debian.net&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;debian&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; jessie non-free contrib main  
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# jessie-updates, previously known as &#039;volatile&#039;&lt;/span&gt;
deb http:&lt;span class=&quot;sy0&quot;&gt;//&lt;/span&gt;httpredir.debian.org&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;debian&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; jessie-updates main  
deb-src http:&lt;span class=&quot;sy0&quot;&gt;//&lt;/span&gt;httpredir.debian.org&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;debian&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; jessie-updates main
EOF&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\/etc\/apt\/sources.list&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;etc_apt_sourceslist&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:16,&amp;quot;secid&amp;quot;:19,&amp;quot;range&amp;quot;:&amp;quot;27483-28734&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit20&quot; id=&quot;etc_hosts&quot;&gt;/etc/hosts&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;code&gt;/etc/hosts&lt;/code&gt; это файл, используемый для хранения сопоставления IP-адресов с именами хостов. Этот файл обычно проверяется перед &lt;abbr title=&quot;Domain Name System&quot;&gt;DNS&lt;/abbr&gt;-запросами, по крайней мере, он должен содержать ваши &lt;code&gt;ipv4&lt;/code&gt; и &lt;code&gt;ipv6&lt;/code&gt; петлевые адреса.
&lt;/p&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;gt;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;hosts &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;EOF&amp;quot;&lt;/span&gt;
127.0.0.1       localhost
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# The following lines are desirable for IPv6 capable hosts&lt;/span&gt;
::&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;     localhost ip6-localhost ip6-loopback
EOF&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\/etc\/hosts&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;etc_hosts&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:17,&amp;quot;secid&amp;quot;:20,&amp;quot;range&amp;quot;:&amp;quot;28735-29313&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit21&quot; id=&quot;etc_hostname&quot;&gt;/etc/hostname&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
&lt;code&gt;/etc/hostname&lt;/code&gt; используется для хранения имени &lt;abbr title=&quot;Domain Name System&quot;&gt;DNS&lt;/abbr&gt; вашего хоста. Отредактируйте это, если хотите.
&lt;/p&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;gt;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;kw2&quot;&gt;hostname&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;EOF&amp;quot;&lt;/span&gt;
debianfromscratch
EOF&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\/etc\/hostname&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;etc_hostname&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:18,&amp;quot;secid&amp;quot;:21,&amp;quot;range&amp;quot;:&amp;quot;29314-29577&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit22&quot; id=&quot;обновление_списков_пакетов_apt&quot;&gt;Обновление списков пакетов apt&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Теперь мы готовы обновить наш список пакетов и в полной мере воспользоваться apt. Для этого мы обновляем нашу локальную связку ключей действительных подписей разработчиков Debian gnu pgp с помощью &lt;code&gt;apt-key update&lt;/code&gt;, а затем обновляем с помощью &lt;code&gt;apt-get update&lt;/code&gt;.
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;apt-key update&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;apt-get update&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u043f\u0438\u0441\u043a\u043e\u0432 \u043f\u0430\u043a\u0435\u0442\u043e\u0432 apt&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u0438\u0435_\u0441\u043f\u0438\u0441\u043a\u043e\u0432_\u043f\u0430\u043a\u0435\u0442\u043e\u0432_apt&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:19,&amp;quot;secid&amp;quot;:22,&amp;quot;range&amp;quot;:&amp;quot;29578-30135&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit23&quot; id=&quot;создание_баз_данных_пользователей_и_групп&quot;&gt;Создание баз данных пользователей и групп&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

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

&lt;/div&gt;

&lt;h4 id=&quot;debianutils&quot;&gt;debianutils&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Мы устанавливаем debianutils, чтобы предоставить &lt;code&gt;tempfile&lt;/code&gt; команду, необходимую одному из &lt;code&gt;base-passwd&lt;/code&gt; установочных скриптов. Без этой команды установка &lt;code&gt;base-passwd&lt;/code&gt; не будет выполнена.
&lt;/p&gt;

&lt;p&gt;
apt-get install debianutils
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;base-passwd&quot;&gt;base-passwd&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Мы устанавливаем &lt;code&gt;base-passwd&lt;/code&gt;, чтобы предоставить стандартный минимальный стандарт &lt;code&gt;/etc/passwd&lt;/code&gt; и &lt;code&gt;/etc/group&lt;/code&gt; файлы, которые одинаковы во всех системах Debian. Это происходит путем запуска &lt;code&gt;update-passwd&lt;/code&gt; двоичного файла при его установке.
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;apt-get install&lt;/span&gt; base-passwd&lt;/pre&gt;

&lt;/div&gt;

&lt;h4 id=&quot;создание_etc_shadow_и_etc_gshadow&quot;&gt;Создание /etc/shadow и /etc/gshadow&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Нам придется вручную создать &lt;code&gt;/etc/shadow&lt;/code&gt; и &lt;code&gt;/etc/gshadow&lt;/code&gt;, так как &lt;code&gt;passwd&lt;/code&gt; пакет не сможет настроиться, если не сможет найти эти файлы:
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;touch&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;shadow &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;gshadow&lt;/pre&gt;

&lt;/div&gt;

&lt;h4 id=&quot;авторизоваться&quot;&gt;авторизоваться&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Затем мы устанавливаем &lt;code&gt;login&lt;/code&gt; пакет, который дает нам возможность устанавливать новые сеансы в системе с &lt;code&gt;login&lt;/code&gt;, повышение привилегий с &lt;code&gt;su&lt;/code&gt;, файлы подключаемого модуля аутентификации Linux (PAM) для обоих указанных двоичных файлов, поддельную оболочку &lt;code&gt;/bin/nologin&lt;/code&gt; и &lt;code&gt;/etc/login.defs&lt;/code&gt; файл, который необходим для создания группы. В этот пакет включено больше функций, но эти наиболее упоминаемые.
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;apt-get install&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;login&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h4 id=&quot;пароль&quot;&gt;пароль&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Затем мы устанавливаем &lt;code&gt;passwd&lt;/code&gt; пакет, который предоставляет львиную долю утилит и файлов конфигурации, используемых для создания и управления информацией об учетных записях пользователей и групп.
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;apt-get install&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;passwd&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h4 id=&quot;adduser&quot;&gt;adduser&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Нам также необходимо установить &lt;code&gt;adduser&lt;/code&gt; пакет, поскольку он предоставляет нам &lt;code&gt;/etc/adduser.conf&lt;/code&gt; файл по умолчанию, который понадобится для правильной установки новых пользователей.
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;apt-get install&lt;/span&gt; adduser&lt;/pre&gt;

&lt;/div&gt;

&lt;h4 id=&quot;установка_пароля_root_и_записей_shadowfile&quot;&gt;Установка пароля root и записей shadowfile&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
После установки всех вышеупомянутых утилит и пакетов наша система теперь способна выполнять все функции управления учетными записями пользователей и групп.
&lt;/p&gt;

&lt;p&gt;
На этом этапе нам следует запустить &lt;code&gt;passwd&lt;/code&gt;, чтобы изменить пароль &lt;code&gt;root&lt;/code&gt;.
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;passwd&lt;/span&gt; root&lt;/pre&gt;

&lt;p&gt;
Затем нам следует запустить &lt;code&gt;pwconv&lt;/code&gt; преобразование наших записей &lt;code&gt;/etc/passwd&lt;/code&gt; в теневые записи в &lt;code&gt;/etc/shadow&lt;/code&gt;:
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;pwconv&lt;/pre&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 \u0431\u0430\u0437 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0438 \u0433\u0440\u0443\u043f\u043f&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435_\u0431\u0430\u0437_\u0434\u0430\u043d\u043d\u044b\u0445_\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439_\u0438_\u0433\u0440\u0443\u043f\u043f&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:20,&amp;quot;secid&amp;quot;:23,&amp;quot;range&amp;quot;:&amp;quot;30136-34343&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;
Наш терминал пока не обладает полной функциональностью, которую можно было бы ожидать от терминала, и стандартные утилиты терминала могут по-прежнему не работать должным образом на этом этапе. Давайте установим соответствующие библиотеки и создадим конфигурации, необходимые для того, чтобы сделать их, прежде чем мы установим
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;создание_файла_etc_inputrc&quot;&gt;Создание файла /etc/inputrc&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
&lt;code&gt;/etc/inputrc&lt;/code&gt; это глобальный файл конфигурации для используемой библиотеки &lt;code&gt;libreadline6&lt;/code&gt;, который большинство оболочек используют для понимания того, как обрабатывать многие особые ситуации с клавиатурой, например, какое поведение должно быть по умолчанию при нажатии клавиш HOME и END. Без этого файла многие особые клавиши и двухклавишные комбинации, такие как ctrl+left, не будут работать.
&lt;/p&gt;

&lt;p&gt;
Поскольку этот файл не создается по умолчанию при установке &lt;code&gt;libreadline6&lt;/code&gt; библиотеки, нам придется создать его самостоятельно.
&lt;/p&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;gt;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;inputrc &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;EOF&amp;quot;&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# /etc/inputrc - global inputrc for libreadline&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# See readline(3readline) and `info rluserman&#039; for more information.&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# Be 8 bit clean.&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; input-meta on
&lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; output-meta on
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# To allow the use of 8bit-characters like the german umlauts, uncomment&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# the line below. However this makes the meta key not work as a meta key,&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# which is annoying to those which don&#039;t need to type in 8-bit characters.&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# set convert-meta off&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# try to enable the application keypad when it is called.  Some systems&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# need this to enable the arrow keys.&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# set enable-keypad on&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# see /usr/share/doc/bash/inputrc.arrows for other codes of arrow keys&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# do not bell on tab-completion&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# set bell-style none&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# set bell-style visible&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# some defaults / modifications for the emacs mode&lt;/span&gt;
&lt;span class=&quot;re1&quot;&gt;$if&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;mode&lt;/span&gt;=emacs
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# allow the use of the Home/End keys&lt;/span&gt;
&lt;span class=&quot;st0&quot;&gt;&amp;quot;\e[1~&amp;quot;&lt;/span&gt;: beginning-of-line
&lt;span class=&quot;st0&quot;&gt;&amp;quot;\e[4~&amp;quot;&lt;/span&gt;: end-of-line
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# allow the use of the Delete/Insert keys&lt;/span&gt;
&lt;span class=&quot;st0&quot;&gt;&amp;quot;\e[3~&amp;quot;&lt;/span&gt;: delete-char
&lt;span class=&quot;st0&quot;&gt;&amp;quot;\e[2~&amp;quot;&lt;/span&gt;: quoted-insert
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# mappings for &amp;quot;page up&amp;quot; and &amp;quot;page down&amp;quot; to step to the beginning/end&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# of the history&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# &amp;quot;\e[5~&amp;quot;: beginning-of-history&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# &amp;quot;\e[6~&amp;quot;: end-of-history&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# alternate mappings for &amp;quot;page up&amp;quot; and &amp;quot;page down&amp;quot; to search the history&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# &amp;quot;\e[5~&amp;quot;: history-search-backward&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# &amp;quot;\e[6~&amp;quot;: history-search-forward&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# mappings for Ctrl-left-arrow and Ctrl-right-arrow for word moving&lt;/span&gt;
&lt;span class=&quot;st0&quot;&gt;&amp;quot;\e[1;5C&amp;quot;&lt;/span&gt;: forward-word
&lt;span class=&quot;st0&quot;&gt;&amp;quot;\e[1;5D&amp;quot;&lt;/span&gt;: backward-word
&lt;span class=&quot;st0&quot;&gt;&amp;quot;\e[5C&amp;quot;&lt;/span&gt;: forward-word
&lt;span class=&quot;st0&quot;&gt;&amp;quot;\e[5D&amp;quot;&lt;/span&gt;: backward-word
&lt;span class=&quot;st0&quot;&gt;&amp;quot;\e\e[C&amp;quot;&lt;/span&gt;: forward-word
&lt;span class=&quot;st0&quot;&gt;&amp;quot;\e\e[D&amp;quot;&lt;/span&gt;: backward-word
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;$if&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;term&lt;/span&gt;=rxvt
&lt;span class=&quot;st0&quot;&gt;&amp;quot;\e[7~&amp;quot;&lt;/span&gt;: beginning-of-line
&lt;span class=&quot;st0&quot;&gt;&amp;quot;\e[8~&amp;quot;&lt;/span&gt;: end-of-line
&lt;span class=&quot;st0&quot;&gt;&amp;quot;\eOc&amp;quot;&lt;/span&gt;: forward-word
&lt;span class=&quot;st0&quot;&gt;&amp;quot;\eOd&amp;quot;&lt;/span&gt;: backward-word
&lt;span class=&quot;re1&quot;&gt;$endif&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# for non RH/Debian xterm, can&#039;t hurt for RH/Debian xterm&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# &amp;quot;\eOH&amp;quot;: beginning-of-line&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# &amp;quot;\eOF&amp;quot;: end-of-line&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# for freebsd console&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# &amp;quot;\e[H&amp;quot;: beginning-of-line&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# &amp;quot;\e[F&amp;quot;: end-of-line&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;re1&quot;&gt;$endif&lt;/span&gt;
EOF&lt;/pre&gt;

&lt;/div&gt;

&lt;h4 id=&quot;библиотеки_и_двоичные_файлы_ncurses&quot;&gt;Библиотеки и двоичные файлы ncurses&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Большое количество утилит командной строки полагаются на библиотеку ncurses для предоставления текстового интерфейса для взаимодействия пользователя через терминал. К ним относятся простые утилиты, такие как &lt;code&gt;less&lt;/code&gt; и &lt;code&gt;nano&lt;/code&gt;. Без этой библиотеки эти утилиты не будут отображаться должным образом. Мы должны установить полный набор библиотеки ncurses, чтобы предотвратить возникновение указанных ошибок:
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;apt-get install&lt;/span&gt; ncurses-base ncurses-bin ncurses-doc&lt;/pre&gt;

&lt;/div&gt;

&lt;h4 id=&quot;dialog&quot;&gt;dialog&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Dialog — это модуль &lt;code&gt;perl&lt;/code&gt;, который некоторые скрипты пытаются использовать для предоставления текстового интерфейса, используемого во время настройки или установки. Вы могли заметить, что некоторые пакеты предупреждали вас, что эта утилита отсутствует во время установки. Давайте исправим это:
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;apt-get install&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;dialog&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h4 id=&quot;less_vim_and_nano&quot;&gt;less, vim and nano&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Теперь, когда мы установили большую часть библиотек и утилит, необходимых для терминальных утилит, давайте установим некоторые из самых основных и часто используемых из них:
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;apt-get install&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;less&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;vim&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;nano&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0418\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0430 \u0438 \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0443\u0442\u0438\u043b\u0438\u0442 \u0447\u0442\u0435\u043d\u0438\u044f\/\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435_\u0442\u0435\u0440\u043c\u0438\u043d\u0430\u043b\u0430_\u0438_\u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435_\u0443\u0442\u0438\u043b\u0438\u0442_\u0447\u0442\u0435\u043d\u0438\u044f_\u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:27,&amp;quot;secid&amp;quot;:24,&amp;quot;range&amp;quot;:&amp;quot;34344-39708&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit25&quot; id=&quot;создание_стандартной_иерархии_файловой_системы_в_системе_debian&quot;&gt;Создание стандартной иерархии файловой системы в системе Debian&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Давайте создадим стандартную структуру папок для системы Debian. Это можно легко сделать, установив &lt;code&gt;base-files&lt;/code&gt;. Сначала нам нужно удалить &lt;code&gt;/var/mail&lt;/code&gt; каталог, иначе он будет жаловаться, что он уже существует.
&lt;/p&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;-rf&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;var&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;mail
&lt;span class=&quot;kw2&quot;&gt;apt-get install&lt;/span&gt; base-files&lt;/pre&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\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0439 \u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0438 \u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0435 Debian&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435_\u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0439_\u0438\u0435\u0440\u0430\u0440\u0445\u0438\u0438_\u0444\u0430\u0439\u043b\u043e\u0432\u043e\u0439_\u0441\u0438\u0441\u0442\u0435\u043c\u044b_\u0432_\u0441\u0438\u0441\u0442\u0435\u043c\u0435_debian&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:31,&amp;quot;secid&amp;quot;:25,&amp;quot;range&amp;quot;:&amp;quot;39709-40260&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit26&quot; id=&quot;создание_системы_документации_для_человека&quot;&gt;Создание системы документации для человека&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
В любой системе Linux обычно есть база данных, полная страниц руководства, доступ к которой осуществляется с помощью &lt;code&gt;man&lt;/code&gt; команды. Большинство программ, которые мы уже установили, уже добавили свои файлы документации в нужное место. Все, что нам нужно сделать сейчас, это установить их &lt;code&gt;man&lt;/code&gt;, чтобы воспользоваться ими, и любыми другими, которые будут добавлены со временем.
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;apt-get install&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;man&lt;/span&gt;&lt;/pre&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\u0438\u0441\u0442\u0435\u043c\u044b \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 \u0434\u043b\u044f \u0447\u0435\u043b\u043e\u0432\u0435\u043a\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435_\u0441\u0438\u0441\u0442\u0435\u043c\u044b_\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438_\u0434\u043b\u044f_\u0447\u0435\u043b\u043e\u0432\u0435\u043a\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:32,&amp;quot;secid&amp;quot;:26,&amp;quot;range&amp;quot;:&amp;quot;40261-41068&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit27&quot; id=&quot;установка_всех_оставшихся_необходимых_пакетов&quot;&gt;Установка всех оставшихся необходимых пакетов&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Мы установили большую часть пакетов, осталось только установить остальные пакеты, отмеченные приоритетом &lt;code&gt;essential&lt;/code&gt; со стороны сопровождающих Debian. Некоторые из них абсолютно необходимы для управления системой, а некоторые вообще вряд ли будут использоваться.
&lt;/p&gt;

&lt;p&gt;
Чтобы соответствовать стандарту Debian, нам необходимо установить все это:
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;apt-get install&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;bash&lt;/span&gt; bsdutils coreutils &lt;span class=&quot;kw2&quot;&gt;dash&lt;/span&gt; diffutils e2fsprogs findutils &lt;span class=&quot;kw2&quot;&gt;grep&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;gzip&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;hostname&lt;/span&gt; libc-bin init &lt;span class=&quot;kw2&quot;&gt;mount&lt;/span&gt; perl-base &lt;span class=&quot;kw2&quot;&gt;sed&lt;/span&gt; sysvinit-utils &lt;span class=&quot;kw2&quot;&gt;tar&lt;/span&gt; util-linux&lt;/pre&gt;

&lt;p&gt;
Ниже приведено краткое описание каждого установленного пакета:
&lt;/p&gt;
&lt;div class=&quot;table sectionedit28&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;/tr&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; &lt;strong&gt;bash&lt;/strong&gt;: &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Оболочка GNU Bourne-again, которая является стандартной оболочкой Linux. &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; &lt;strong&gt;bsdutils&lt;/strong&gt;: &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt; Предоставляет несколько двоичных файлов, наиболее важный reniceиз которых необходим для изменения приоритетов процессов и loggerиспользуется для взаимодействия с системным модулем syslog.&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; &lt;strong&gt;coreutils&lt;/strong&gt;: &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Самая важная группа двоичных файлов, необходимая для того, чтобы сделать любую оболочку полезной. &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; &lt;strong&gt;dash&lt;/strong&gt;: &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Оболочка Debian Almquist, которая представляет собой более быструю версию sh и предназначена в основном для использования в скриптах. &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; &lt;strong&gt;diffutils&lt;/strong&gt;: &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt;Предоставляет утилиты для сравнения содержимого файлов между собой.  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row6&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; &lt;strong&gt;e2fsprogs&lt;/strong&gt;: &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt;Предоставляет утилиты для работы с семейством файловых систем ext.  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row7&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; &lt;strong&gt;findutils&lt;/strong&gt;: &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt;Предоставляет утилиту find для поиска файлов.  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row8&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; &lt;strong&gt;grep&lt;/strong&gt;: &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Предоставляет утилиту grep, используемую для поиска строк в файлах или выводимых в нее данных. &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row9&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; &lt;strong&gt;gzip&lt;/strong&gt;: &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Предоставляет утилиту gzip, используемую для работы с файлами, использующими кодировку LZ77. &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row10&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; &lt;strong&gt;hostname&lt;/strong&gt;: &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Предоставляет набор утилит для управления именем хоста системы. &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row11&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; &lt;strong&gt;libc-bin&lt;/strong&gt;: &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Предоставляет реализацию GNU стандартной библиотеки C. Необходим для создания и использования программ. &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row12&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; &lt;strong&gt;init&lt;/strong&gt;: &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Предоставляет стандартный набор средств инициализации системы для Debian. &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row13&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; &lt;strong&gt;mount&lt;/strong&gt;: &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt;Предоставляет стандартные системные утилиты для монтирования и размонтирования файловых систем, включая файлы подкачки.  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row14&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; &lt;strong&gt;perl-base&lt;/strong&gt;: &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt;Предоставляет язык программирования Perl.  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row15&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; &lt;strong&gt;sed&lt;/strong&gt;: &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt;Предоставляет язык программирования sed, обычно используемый для редактирования текста.  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row16&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; &lt;strong&gt;sysvinit-utils&lt;/strong&gt;: &lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;Предоставляет утилиты типа system-v. &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row17&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; &lt;strong&gt;tar&lt;/strong&gt;: &lt;/td&gt;&lt;td class=&quot;col1 leftalign&quot;&gt;Предоставляет программу tar, используемую для хранения и извлечения файлов из архива на ленте.  &lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row18&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt; &lt;strong&gt;util-linux&lt;/strong&gt;: &lt;/td&gt;&lt;td class=&quot;col1&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;:28,&amp;quot;range&amp;quot;:&amp;quot;42073-45218&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;\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 \u0432\u0441\u0435\u0445 \u043e\u0441\u0442\u0430\u0432\u0448\u0438\u0445\u0441\u044f \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0445 \u043f\u0430\u043a\u0435\u0442\u043e\u0432&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430_\u0432\u0441\u0435\u0445_\u043e\u0441\u0442\u0430\u0432\u0448\u0438\u0445\u0441\u044f_\u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0445_\u043f\u0430\u043a\u0435\u0442\u043e\u0432&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:33,&amp;quot;secid&amp;quot;:27,&amp;quot;range&amp;quot;:&amp;quot;41069-45219&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit29&quot; id=&quot;установка_ядра&quot;&gt;Установка ядра&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Здесь у вас есть два варианта: вы можете либо установить последний образ ядра для архитектуры вашей системы, предоставленный проектом Debian, либо скомпилировать свой собственный.
&lt;/p&gt;

&lt;/div&gt;

&lt;h4 id=&quot;установка_ядра_debian&quot;&gt;Установка ядра Debian&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Если вы хотите установить стандартное ядро ​​Debian, вам нужно будет найти доступные образы, соответствующие вашей архитектуре, а затем установить соответствующий образ.
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;apt-cache search&lt;/span&gt; linux-image
&lt;span class=&quot;kw2&quot;&gt;apt-get install&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;selected image&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/pre&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;p&gt;
Для этого вам понадобится tar-архив исходного кода ядра Linux, который у вас, вероятно, уже есть.
&lt;/p&gt;

&lt;p&gt;
Вам также потребуется установить пакет gcc (который, кстати, устанавливает большую часть другого программного обеспечения, необходимого для компиляции), пакет libncurses5-dev (который предоставляет библиотеки, необходимые для использования утилиты конфигурации командной строки для исходного кода ядра), пакет bc (язык, поддерживающий точные числа) и пакет make (утилита make, используемая для компиляции исходного кода в двоичный файл).
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;apt-get install&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;gcc&lt;/span&gt; libncurses5-dev &lt;span class=&quot;kw2&quot;&gt;bc&lt;/span&gt; &lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
Теперь откройте извлеченный исходный код ядра. Убедитесь, что в дереве исходного кода нет устаревших файлов, оставленных разработчиками:
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; mrproper&lt;/pre&gt;

&lt;p&gt;
Установите файлы заголовков для этого конкретного ядра. Они вам понадобятся в будущем, если вы собираетесь компилировать программное обеспечение, которое будет использовать &lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt; этого ядра в будущем:
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;INSTALL_HDR_PATH&lt;/span&gt;=dest headers_install
&lt;span class=&quot;kw2&quot;&gt;cp&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-rv&lt;/span&gt; dest&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;sy0&quot;&gt;/&lt;/span&gt;usr&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;include&lt;/pre&gt;

&lt;p&gt;
Я рекомендую вам использовать конфигурацию по умолчанию в качестве основы для сборки ядра, так как это, по крайней мере, гарантирует, что ваша система сможет загрузиться с использованием образа, который мы создадим позже.
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; defconfig&lt;/pre&gt;

&lt;p&gt;
Затем настройте свое ядро ​​по своему вкусу.
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; menuconfig&lt;/pre&gt;

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

&lt;p&gt;
После настройки ядра скомпилируйте его.
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
Если вы создали модульное ядро, установите в него скомпилированные модули:
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;make&lt;/span&gt; modules_install&lt;/pre&gt;

&lt;p&gt;
Скопируйте готовое ядро ​​в каталог /boot/ и убедитесь, что его имя начинается с &amp;#039;vmlinuz&amp;#039;. Хорошей идеей будет добавить идентификационную строку к имени этого файла. Номер версии этого ядра подойдет. Мы также копируем файл System.map и конфигурацию для этого ядра (чтобы мы могли легко проверить, как было собрано это ядро). Мы также добавляем к этому нашу идентификационную строку, потому что со временем мы можем захотеть установить больше ядер.
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;cp&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-v&lt;/span&gt; arch&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;x86&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;bzImage &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;vmlinuz-&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;identifier&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span class=&quot;kw2&quot;&gt;cp&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-v&lt;/span&gt; System.map &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;System.map-4.4.2
&lt;span class=&quot;kw2&quot;&gt;cp&lt;/span&gt; &lt;span class=&quot;re5&quot;&gt;-v&lt;/span&gt; .config &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;config-&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;identifier&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/pre&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 \u044f\u0434\u0440\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430_\u044f\u0434\u0440\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:34,&amp;quot;secid&amp;quot;:29,&amp;quot;range&amp;quot;:&amp;quot;45220-50332&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit30&quot; id=&quot;добавление_модульной_функциональности_в_систему&quot;&gt;Добавление модульной функциональности в систему&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Независимо от того, установили ли вы стандартное ядро ​​Debian GNU/Linux или скомпилировали свое собственное, вам потребуется снабдить свою систему двоичными файлами, необходимыми для загрузки, удаления и управления модулями ядра. 
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw2&quot;&gt;apt-get install&lt;/span&gt; kmod&lt;/pre&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;\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u043c\u043e\u0434\u0443\u043b\u044c\u043d\u043e\u0439 \u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438 \u0432 \u0441\u0438\u0441\u0442\u0435\u043c\u0443&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435_\u043c\u043e\u0434\u0443\u043b\u044c\u043d\u043e\u0439_\u0444\u0443\u043d\u043a\u0446\u0438\u043e\u043d\u0430\u043b\u044c\u043d\u043e\u0441\u0442\u0438_\u0432_\u0441\u0438\u0441\u0442\u0435\u043c\u0443&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:43,&amp;quot;secid&amp;quot;:30,&amp;quot;range&amp;quot;:&amp;quot;50333-51442&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit31&quot; id=&quot;делаем_систему_загрузочной&quot;&gt;Делаем систему загрузочной&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;

&lt;h4 id=&quot;переконфигурирование_диска_с_предустановленным_загрузчиком_grub2&quot;&gt;Переконфигурирование диска с предустановленным загрузчиком GRUB2&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Если эта система Debian Linux находится на разделе уже загрузочного диска, все, что нужно сделать, чтобы сделать эту систему загрузочной, — это заменить файл конфигурации загрузчика диска, включив соответствующий раздел этой системы в список загрузочных разделов.
&lt;/p&gt;

&lt;p&gt;
Если вы используете GRUB2, то использование &lt;code&gt;grub2-mkconfig&lt;/code&gt; утилиты делает это очень простым. Просто укажите ей местоположение уже существующего файла grub.cfg:
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;grub2-mkconfig &lt;span class=&quot;re5&quot;&gt;-o&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;path to grub.cfg&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;h4 id=&quot;установка_grub2_на_диск_без_предустановленного_загрузчика&quot;&gt;Установка GRUB2 на диск без предустановленного загрузчика&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
В случае, если раздел находится на диске, на котором еще нет собственного загрузчика, вы должны установить и настроить его самостоятельно. Чтобы установить GRUB2, вы должны сначала выйти из chroot.
&lt;/p&gt;
&lt;pre class=&quot;code bash&quot;&gt;&lt;span class=&quot;kw3&quot;&gt;exit&lt;/span&gt;
grub2-install &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;location of drive that holds this partition&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;`&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
Поскольку в этой установке GRUB2 пока нет файла конфигурации, давайте создадим его с помощью шаблона:
&lt;/p&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;gt;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;grub&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;grub.cfg &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;EOF&amp;quot;&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# Begin /boot/grub/grub.cfg&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;default&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;timeout&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;
&amp;nbsp;
insmod ext2
&lt;span class=&quot;kw1&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;root&lt;/span&gt;=&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;hd0,&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&amp;nbsp;
menuentry &lt;span class=&quot;st0&quot;&gt;&amp;quot;Debian from Scratch GNU/Linux&amp;quot;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
        linux   &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;boot&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;kernel-location&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;re2&quot;&gt;root&lt;/span&gt;=&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;sda2 ro
&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
EOF&lt;/pre&gt;

&lt;p&gt;
Затем отредактируйте этот файл, заменив строку (kernel-location) в файле фактическим местоположением указанного ядра внутри раздела.
&lt;/p&gt;

&lt;p&gt;
После этого используйте ранее упомянутую &lt;code&gt;chroot&lt;/code&gt; команду, приведенную в разделе «Вход в chroot», чтобы вернуться в chroot.
&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;\u0414\u0435\u043b\u0430\u0435\u043c \u0441\u0438\u0441\u0442\u0435\u043c\u0443 \u0437\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u043e\u0439&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0434\u0435\u043b\u0430\u0435\u043c_\u0441\u0438\u0441\u0442\u0435\u043c\u0443_\u0437\u0430\u0433\u0440\u0443\u0437\u043e\u0447\u043d\u043e\u0439&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:44,&amp;quot;secid&amp;quot;:31,&amp;quot;range&amp;quot;:&amp;quot;51443-53876&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit32&quot; id=&quot;создание_etc_fstab&quot;&gt;Создание /etc/fstab&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Перед загрузкой системы вам абсолютно необходимо создать и настроить файл /etc/fstab.
&lt;/p&gt;

&lt;p&gt;
Если у вас нет файла /etc/fstab или вы не указали, какой раздел должен быть смонтирован как корневая файловая система, вы застрянете во временной файловой системе только для чтения, созданной ядром, расположенной только в оперативной памяти. Оно использует ее для переключения на предполагаемую корневую файловую систему. Вы не хотите застрять здесь.
&lt;/p&gt;

&lt;p&gt;
Итак, создаем базу /etc/fstab:
&lt;/p&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;gt;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;etc&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;fstab &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&amp;lt;&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;EOF&amp;quot;&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;# Begin /etc/fstab&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# file system  mount-point  type     options             dump  fsck&lt;/span&gt;
&lt;span class=&quot;co0&quot;&gt;#                                                              order&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&amp;lt;&lt;/span&gt;xxx&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;     &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;            &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;fff&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;    defaults            &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;     &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;
&lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt;dev&lt;span class=&quot;sy0&quot;&gt;/&amp;lt;&lt;/span&gt;yyy&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt;     swap         swap     &lt;span class=&quot;re2&quot;&gt;pri&lt;/span&gt;=&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;               &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;     &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co0&quot;&gt;# End /etc/fstab&lt;/span&gt;
EOF&lt;/pre&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;\u0421\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \/etc\/fstab&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435_etc_fstab&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:47,&amp;quot;secid&amp;quot;:32,&amp;quot;range&amp;quot;:&amp;quot;53877-55494&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;
Поздравляем! Вы завершили сборку своей системы Debian и теперь имеете полный набор функций, ожидаемых от системы Debian, в дополнение к обычной установке 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;\u041a\u043e\u043d\u0435\u0446&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043a\u043e\u043d\u0435\u0446&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:48,&amp;quot;secid&amp;quot;:33,&amp;quot;range&amp;quot;:&amp;quot;55495-55791&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;/p&gt;

&lt;p&gt;
scottwilliambeasley@gmail.com
&lt;/p&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;a href=&quot;https://github.com/scottwilliambeasley/debian-from-scratch/&quot; class=&quot;urlextern&quot; title=&quot;https://github.com/scottwilliambeasley/debian-from-scratch/&quot; rel=&quot;ugc nofollow&quot;&gt;Ссылка на оригинальную статью&lt;/a&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;a href=&quot;https://git.wwoss.ru/lfs/debian-from-scratch&quot; class=&quot;urlextern&quot; title=&quot;https://git.wwoss.ru/lfs/debian-from-scratch&quot; rel=&quot;ugc nofollow&quot;&gt;https://git.wwoss.ru/lfs/debian-from-scratch&lt;/a&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\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438, \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u043e\u0448\u0438\u0431\u043a\u0438&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0438_\u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u044f_\u043e\u0448\u0438\u0431\u043a\u0438&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:48,&amp;quot;secid&amp;quot;:34,&amp;quot;range&amp;quot;:&amp;quot;55792-56524&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;a href=&quot;https://wwoss.direct.quickconnect.to/lib/exe/fetch.php?media=software:linux_server:dfs:debian-from-scratch-master.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;software:linux_server:dfs:debian-from-scratch-master.zip (16.5 KB)&quot;&gt;debian-from-scratch-master.zip&lt;/a&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;\u0414\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f \u0438 \u0424\u0430\u0439\u043b\u044b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u044f_\u0438_\u0444\u0430\u0439\u043b\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:48,&amp;quot;secid&amp;quot;:35,&amp;quot;range&amp;quot;:&amp;quot;56525-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Wed, 26 Mar 2025 18:55:38 +0000</pubDate>
        </item>
    </channel>
</rss>
